68K-B01 デジタルGPシリーズイーサネット実験

テーマ
使用機器
概要
資料作成 001221
資料番号 68K-B01
Application Note
デジタルタッチパネル GP シリーズ イーサネット接続実験
MPC-684,MBK-68,GP-2400 他
タッチパネルのイーサネットを使って MPC-684 データのメンテナンスツールが作れるか。
Microsoft Visual Basic と簡易 DLL(ProEasy.DLL)を使って作成する
使用機器
パソコン
Windows 98
Pro-Server with Pro-Studio (デジタル)
GP-PRO/PRBⅢ(デジタル)
Visual Basic アプリケーション
MPC-684,MBK-68
タッチパネル
GP-2400(デジタル)
パソコンと直結する場合
はクロスケーブル
10Base-T ハブ
RS-422
構内ネット
市販イーサネット
ケーブル
<実験に用いたソフトウェアのバージョン> Pro-Studio Ver2.2、GP-PRO/PBⅢ Win Ver5.00b、Visual Basic 5.0
設定
パソコン
①TCP/IP
コントロールパネル
└ ネットワーク
└ ネットワークの設定
└TCP/IP プロトコルのプロパティ
└ IP アドレス
└ IP アドレスを指定
├ IP アドレス <Ex>192.168.0.5
└ サブネットマスク <Ex>255.255.255.0
②Pro-Studio
ネットワーク参加局リスト
├ GP プロジェクト (GP-2400 の PRO/PBⅢで作成したプロジェクト名)
│
├ 局名 <Ex>新しいプロジェクト
│
├ IP アドレス<Ex> 192.168.0.6 (GP-2400 の IP アドレス)
│
├ サブネットマスク<Ex>255.255.255.0 (GP-2400 のサブネットマスク)
│
├ PLC タイプ (ここは 「松下電工 MEWNET-FP シリーズ」を指定)
│
└ PRO/PBⅢのプロジェクトファイル (参照ボタンで「???.PRW」を指定)
└ _GP1 (パソコン)
├ 局名 <Ex>_GP1
├ IP アドレス <Ex> 192.168.0.5
└ PLC タイプ (ここは 「Windows 搭載コンピュータ」を指定)
GP プロジェクトのシンボル (Read/Write する DT エリアのワードアドレスをシンボル登録する)
├ シンボル名 <Ex>_DT100_WORD
└ デバイスアドレス <Ex>DT100
1
タッチパネル
オフライン メインメニュー
└ 初期設定
└ 動作環境の設定
└ 拡張設定
├ イーサネット情報の設定
│
├ 自局 IP アドレス <Ex> 192.168.0.6
│
└ サブネットマスク <Ex> 255.255.255.0
└ SYSLOG 情報の設定
└ ホスト IP アドレス <例> 192.168.0.5 (パソコンの IP アドレス)
MPC
MBK-68∼GP-2400 は通常の接続。
プログラム先頭に S_MBK 100 864 に追加。これによりタスク 0∼23 の文番号が DT100~123 へ自動的に転写される。
VB アプリケーション
Timer1 インターバル
Timer1 スタート Write イネーブル 実行回数カウンタ
Label1(0)=DT100
~ Label1(23)=DT123
タスク 0∼23 の文番号表
示。これらは MBK 側から常
にリフレッシュされるので
VB アプリケーション側か
ら書き込んでもデータが変
わるのは一瞬。
Label1(24)=DT124
~ Label1(31)=DT131
これらには VB アプリから
書き込んだデータが表示さ
れる。
MPC からは MBK(adr)で読
込み、S_MBK data adr で書
込みができる。
概要
Start ボタンを押すと Timer1 が起動。その中で ProEasy.DLL の関数を実行し読み込んだデータを Label に表示する。
API宣言
BAS モジュールに c:¥Program Files¥Digital¥Pro-Server with Studio¥Pro-SDK¥VB¥Api¥ProEasy.txt の内容をコピー
2
プログラム抜粋
Private
Dim
Dim
Dim
Dim
Sub Form_Load()
i
iErr
ErrMsg
BoolErr
j = 0
Timer1.Enabled = False
Text1.Text = 500
Command1.Caption = "Start"
Command2.Caption = "Stop"
For i = 0 To 31
Label1(i).Caption = ""
Label2(i).Caption = i
Next i
Label3.Caption = "Interval (ms)"
iErr = EasyLoadNetworkProject("c:¥ProPBWin¥database¥prgstepmon¥nettest.npj", 1)
If iErr <> 0 Then
BoolErr = EasyLoadErrorMessage(iErr, ErrMsg)
MsgBox ("Load Error:" + ErrMsg)
End If
‘ネットワークプロジェクトを LOAD
Command3.Caption = "Write"
Text2.Text = 0
Label4.Caption = "0"
Check1.Caption = "Write"
End Sub
Private
Dim
Dim
Dim
Dim
Dim
Sub Timer1_Timer()
iErr
ErrMsg
BoolErr
Data1 As Variant
i
Timer1.Interval = 0
‘GP-2400 自局 IP アドレス
Node = "192.168.0.6"
‘デバイスシンボル名
Device = "_DT100__WORD"
iErr = ReadDeviceVariant(Node, Device, Data1, 32, EASY_AppKind_NULL)
If iErr <> 0 Then
BoolErr = EasyLoadErrorMessage(iErr, ErrMsg)
MsgBox ("Read Error:" + ErrMsg)
Else
For i = 0 To 31
Label1(i).Caption = Str$(Data1(i))
Next i
End If
Timer1.Interval = Val(Text1.Text)
‘データ読込み
Label4.Caption = Str$(Val(Label4.Caption) + 1)
‘チェックされていれば書込み
If Check1.Value Then
For i = 0 To 31
‘書込みデータ作成
Data1(i) = j
Next i
j = j + 1
iErr = WriteDeviceVariant(Node, Device, Data1, 32, EASY_AppKind_NULL)
If iErr <> 0 Then
BoolErr = EasyLoadErrorMessage(iErr, ErrMsg)
MsgBox ("Write Error:" + ErrMsg)
End If
End If
End Sub
3
‘データ書込み
実行結果
①実行後しばらくすると Read/Write レスポンスタイムアウトエラー になる。その後 KERNEL32.DLL エラーになりアプリが
落ちることがある。アプリ側の問題?、Pro-Server(常駐 orDLL)に起因する問題? 不明
Pro-Studio のメインメニュー 設定
└ネットワーク設定
└詳細設定
└TCP/IP タイムアウト の設定値を大きくすると頻度は下がる<Ex>5000
②イーサネットケーブルをハブへ接続すると①のエラーになる頻度が上がる。特に同じハブへ接続されている他の PC でネット
ワークを使う作業(DOS 窓でファイルコピーなど)をすると覿面。
今後の課題
エラー対策
社外からダイアルアップしてアクセスできるか
GP-Web を使ったインターネット/ダイアルアップアクセス
4