Technical
Information
GX/GP/GM
シーケンサとの Ethernet 通信
(MELSEC-Q シリーズ)
TI 04L51B01-06JA
i
はじめに
本書は、当社のペーパレスレコーダ GX10/GX20/GP10/GP20(以下、GX/GP と呼びます)
またはデータアクイジションシステム GM(以下、GM と呼びます)と三菱電機(株)社
製のシーケンサ(MELSEC-Q シリーズ)を Ethernet 通信で接続し、データを送受信する
方法について説明したものです。ラダープログラムのサンプルを掲載していますので参
考にしてください。
■ ご注意
・ 本書の内容は、性能・機能の向上などにより将来予告なしに変更することがあります。
・ 本書の内容に関しては万全を期していますが、万一ご不審の点や誤りなどお気づき
のことがありましたら、お手数ですが、当社支社・支店・営業所までご連絡ください。
■ 商標
・ 本書で使用の当社製品名またはブランド名は、当社の商標または登録商標です。
・ Adobe、Acrobat、および Postscript は、Adobe Systems Incorporated(アドビシステ
ムズ社)の商標です。
・ 本書で使用の各社製品名は、各社の商標、または登録商標です。
・ 本書では各社の登録商標または商標には、™ マーク、® マークは表示していません。
■ サンプルプログラムについて
・ 本書に記載されているプログラムは参考用として作成したもので、動作を保証する
ものではありません。
・ 本プログラムを利用することによって生じた如何なる障害も、当社では責任を負い
かねますのでご了承ください。
・ 本書に掲載されたプログラムへの技術的サポートは行っておりませんので、ご了承
ください。
・ ご使用に当りましては、必ず対象製品のユーザーズマニュアルをお読みいただきま
すようにお願いいたします。
目次 -1
GX/GP/GM
シーケンサとの Ethernet 通信
(MELSEC-Q シリーズ)
TI 04L51B01-06JA
目次
はじめに ... i
1. シーケンサとの通信接続の概要 ...1-1
1.1
通信接続 ...1-1
1.2
Modbus/TCP ...1-2
1.3
シーケンサによる操作例...1-2
2. システム構成 ...2-1
2.1
GX/GP ...2-1
2.2
GM ...2-2
3. 設定 ...3-1
3.1
MELSEC-Q の設定 ...3-1
3.2
GX/GP の設定 ...3-3
3.3
GM の設定 ...3-8
4. 通信 ...4-1
4.1
レジスタ ...4-1
4.2
通信処理 ...4-2
4.3
シーケンサから送信 ...4-3
4.4
シーケンサへの受信 ...4-6
5. サンプルプログラム ...5-1
5.1
サンプルプログラムの概要 ...5-1
5.2
サンプルプログラムの詳細 ...5-1
5.2.1
GX/GP/GM のチャネルを読み出す ...5-3
5.2.2
GX/GP/GM の通信チャネルに値を書き込む ...5-12
5.2.3
GX/GP/GM のメモリスタート / ストップをする ...5-26
5.2.4
シーケンサから GX/GP/GM にフリーメッセージを書き込む ...5-33
6. 注意事項 ...6-1
7. 付録 ...7-1
7.1
ファンクションコード一覧 ...7-1
7.2
Modbus/TCP メッセージ ...7-1
7.2.1
ファンクションコード 1、2 ...7-1
7.2.2
ファンクションコード 3、4 ...7-2
7.2.3
ファンクションコード 5、6 ...7-2
1. シーケンサとの通信接続の概要
1-1
1.
シーケンサとの通信接続の概要
1.1
通信接続
ペーパレスレコーダ GX/GP またはデータアクイジションシステム GM を、三菱電機(株)
社製のシーケンサ(MELSEC-Q シリーズ)へ Ethernet 通信で接続します。Modbus/TCP
を使い、シーケンサから GX/GP/GM のデータの読み出し / 書き込みを行うことができます。
通信のインターフェースとしては、三菱電機(株)社製シーケンサの Ethernet ポート内
蔵 QCPU を使用します。GX/GP/GM には Ethernet 通信機能が標準で備わっています。
GX/GP
Ethernet (100BASE-TX)
Modbus/TCP
MELSEC-Q
GM
1.2
Modbus/TCP
Modbus/TCPはEthernetで動作するModbusプロトコルです。MELSEC-QをModbus/TCPク
ライアント、GX/GP/GMをModbus/TCPサーバにします。
ラダープログラムではGX/GP/GMのレジスタ番号を指定し、データの読み出し/書き込み
を行うModbus/TCPメッセージを作り、GX/GP/GMに送信します。
GX/GP/GMで使用できるファンクションコード、Modbus/TCPメッセージについては付録
をご参照ください。
Modbus/TCP メッセージ
リクエスト送信
レスポンス受信
クライアント
サーバ
MELSEC-Q
GX/GP
1.3
シーケンサによる操作例
・ GX/GP/GM のデータを読み出すことができます。
・ シーケンサから GX/GP/GM へデータの書き込みができます。
・ GX/GP/GM のアラーム、内部スイッチの検出ができます。
・ GX/GP/GM の記録スタート / 記録ストップの制御、シーケンサから GX/GP/GM への
メッセージ書き込みができます。
2. システム構成
2-1
2.
システム構成
2.1
GX/GP
MELSEC-QとGXのEthernet接続図を下記に示します。図の下の数字はローカルIPアドレス
を指しています。
3. GX
Ethernet
(192.168.0.10)
(192.168.0.11)
(192.168.0.20)
2. PC
HUB
1.
MELSEC-Q
No.
機器名
説明
1
MELSEC-Q シリーズ
シーケンサ
ベースユニット、電源ユニット、Ethernet ポート内蔵 QCPU。三菱電機 ( 株 ) 社製。
Q シリーズ
ユニバーサルモデル
Q03UDECPU 以降
※ QCPU(A モード)使用不可
※ Q 対応 Ethernet インタフェースユニットでも可能ですが、設定 / ラダープ
ログラムが少し異なります。詳細は MELSEC-Q シリーズのマニュアルをご
覧ください。
2
PC
GX Developer を搭載した PC
GX Developer:統合プログラミングツール。三菱電機 ( 株 ) 社製。
次ページに続く
No.
機器名
説明
3
GX
GX10、GX20(本体)
形名
タイプ
チャネル数
入出力チャネル 演算チャネル
*1通信チャネル
*2GX10
標準
100
50
50
GX20
標準
100
100
300
大容量
500
100
500
*1 演算機能(/MT)が必要です。
*2 通信チャネル機能(/MC)が必要です。
GX90XA、GX90XD、GX90YD、GX90WD(入出力モジュール)
形名
内容
GX90XA
アナログ入力モジュール
GX90XD
ディジタル入力モジュール
GX90YD
ディジタル出力モジュール
GX90WD
ディジタル入出力モジュール
関連する付加仕様
機能
付加仕様コード
演算機能
/MT
通信チャネル機能
/MC
2.2
GM
MELSEC-QとGMのEthernet接続図を下記に示します。図の下の数字はローカルIPアドレス
を指しています。
3. GM
Ethernet
(192.168.0.10)
(192.168.0.11)
2. PC
HUB
1.
MELSEC-Q
2. システム構成
2-3
No.
機器名
説明
1
MELSEC-Q シリーズ
シーケンサ
ベースユニット、電源ユニット、Ethernetポート内蔵QCPU。三菱電機(株)社製。
Q シリーズ
ユニバーサルモデル
Q03UDECPU 以降
※ QCPU(A モード)使用不可
※ Q 対応 Ethernet インタフェースユニットでも可能ですが、設定 / ラダープ
ログラムが少し異なります。詳細は MELSEC-Q シリーズのマニュアルをご
覧ください。
2
PC
GX Developer を搭載した PC
GX Developer:統合プログラミングツール。三菱電機 ( 株 ) 社製。
3
GM
GM10-1、GM10-2(本体)
形名
タイプ
チャネル数
入出力チャネル 演算チャネル
*1通信チャネル
*2GM10-1
標準
100
100
300
GM10-2
大容量
500
100
500
*1 演算機能(/MT)が必要です。
*2 通信チャネル機能(/MC)が必要です。
GX90XA、GX90XD、GX90YD、GX90WD(入出力モジュール)
形名
内容
GX90XA
アナログ入力モジュール
GX90XD
ディジタル入力モジュール
GX90YD
ディジタル出力モジュール
GX90WD
ディジタル入出力モジュール
GM90PS、GM90MB
形名
内容
GM90PS
電源モジュール
GM90MB
モジュールベース
関連する付加仕様
機能
付加仕様コード
演算機能
/MT
通信チャネル機能
/MC
3.
設定
3.1
MELSEC-Qの設定
MELSEC-Q の設定は三菱電機(株)社製の GX Developer を使用します。
Ethernet ポート内蔵 QCPU(例:Q03UDECPU)の設定について説明します。
1. GX Developer を起動します。
2. プロジェクト新規作成を選択します。
「QCPU(Q モード)」、「Q03UDE」を選択します。プロジェクト名を指定します。
3-2
3. 設定
3. [PC パラメータ]を選択し、[内蔵 Ethernet ポート設定]を選択します。
MELSEC-Q の IP ア ド レ ス を「192.168.0.10」、 サ ブ ネ ッ ト マ ス ク パ タ ー ン を
「255.255.255.0」、デフォルトルータ IP アドレスを「192.168.0.1」と入力します。
次に[オープン設定]を押下します。
4. オープン設定では通信方法を設定します。
コネクション No.1 にプロトコルを「TCP」、オープン方式を「ソケット通信」、TCP
接続方式を「Active」、自局ポート番号
*1を 16 進で「04D2」、交信相手 IP アドレス
を「192.168.0.20」、交信相手ポート番号
*2を 16 進で「01F6」に設定します。
*1 任意の数字を指定します。
*2 Modbus/TCP のデフォルトのポート番号 502(0x01F6)を指定します。
3.2
GX/GPの設定
GX20 の設定について説明します。
1. 再構築を行い、モジュールを認識する。
・ MELSEC-Q から GX のチャネルを読み出すときに必要になる設定です。
・ GX90XA-10-U2(アナログユニバーサル入力モジュール 10CH)をスロット 0 番に
装着した例を説明します。
(a) GX90XA-10-U2 をスロット 0 に装着します。
(b)[MENU]キーを押し、ダッシュボードメニューを表示します。
(c) [画面変更]→[初期化調整]を選択します。
(d) [再構築]→[実行]を選択します。
3-4
3. 設定
(e)
[再構築]を選択し、確認画面で[OK]を選択します。
2. IP アドレスの設定
(a) [MENU]キーを押し、ダッシュボードメニューを表示します。
(b)[画面変更]→[設定]を選択します。
(c) [通信(イーサネット)設定]→[基本設定]を選択します。
(d) [IP アドレスの自動取得]を[Off]にして、
[IP アドレス]に「192.168.0.20」、
[サブネッ
トマスク]に「255.255.255.0」、[デフォルトゲートウェイ]に「192.168.0.1」と入力
します。
3-6
3. 設定
3. Modbus サーバの設定
(a) [通信(イーサネット)設定]→[サーバ設定]→[サーバリスト]を選択します。
(b) [Modbus]を[On]にします。
◇ GX にアクセスできる MELSEC-Q を限定する場合は、
[設定]→[通信 ( イーサネット ) 設定]→[サーバ設定]
→[Modbus 接続制限]で MELSEC-Q の IP アドレスを指定してください。
4. 通信チャネルを On にする。
・ MELSEC-Q から GX の通信チャネルに書き込むときに必要になる設定です。
・ GX に通信チャネル機能 (/MC) が必要です。
(a) [通信チャネル設定]→[On/Off,スパン]を選択します。
(b) [先頭チャネル]を[C001]。「最終チャネル」を[C020]にして、
[On/Off]を「On」
にします。
[保存]を選択します。
3-8
3. 設定
3.3
GMの設定
GM10-1 の設定について説明します。
1. IP アドレスの設定
(a) IP アドレス設定ソフトウェア
*3を使用して GM の IP アドレスを「192.168.0.20」、サ
ブネットマスクを「255.255.255.0」、デフォルトゲートウェイを「192.168.0.1」に設
定します。
*3 IP アドレス設定ソフトウェアは次のサイトからダウンロードできます。
http://www.smartdacplus.com/ja/support/software/gm.html
2. 再構築を行い、モジュールを認識する。
・ MELSEC-Q から GM のチャネルを読みだすときに必要になる設定です。
・ GX90XA-10-U2(アナログユニバーサル入力モジュール 10CH)をスロット 0 番に
装着した例を説明します。
(a) GX90XA-10-U2 をスロット 0 に装着します。
(b) ブラウザを起動して、http://192.168.0.20/ にアクセスします。
(c) [調整]→[再構築]に移り[再構築]を選択して、確認画面で実行を選択します。
3. Modbus サーバの設定
(a) [設定]→[通信(イーサネット)設定]→[サーバ設定サーバリスト]を選択します。
(b)[MODBUS]を「On」にして、[変更]を選択します。
3-10
3. 設定
4. 通信チャネルを On にする。
・ MELSEC-Q から GM の通信チャネルに書き込むときに必要になる設定です。
・ GM に通信チャネル機能(/MC)が必要です。
(a) [設定]→[通信チャネル設定]→[C001-C020]→[On/Off,スパン]を選択します。
(b)[C001]から[C020]を「On」にします。
4.
通信
4.1
レジスタ
GX/GP/GMではチャネル、ステータス情報、および操作の一部をレジスタに割り付けてい
ます。GX/GP/GMのレジスタマップについては付録をご参照ください。
GX/GP/GM のレジスタマップ ( 一部 )
300001
レジスタ番号
内容
チャネル 0001 の
下位ワード
チャネル 0001 の
上位ワード
チャネル 0002 の
下位ワード
:
300002
300003
:
GM
GX/GP
4-2
4. 通信
4.2
通信処理
通信処理の流れを下記の図に示します。
Ethernet ポート内蔵 QCPU
受信データエリア
シーケンサ CPU 内
ワークエリア ( レジスタ )
SP.SOCRCV 命令
GX
1
4
5
受信
SP.SOCSND 命令
リクエスト
レスポンス
2
送信
3
① シーケンサ CPU のワークエリアに送信データを作成します。
② データを SP.SOCSND 命令で GX に送信します。
③ GX からのレスポンスを受信し,受信データエリアに受信データを格納します。
④ SP.SOCRCV 命令で受信データをシーケンサ CPU のワークエリア⑤に格納します。
4.3
シーケンサから送信
シーケンサから読み出し/書き込み命令を下記の手順で行います。
① 送信データをシーケンサ CPU 内のワークエリアに作成します
*4。
② 作成したデータを、SP.SOCSND 命令で GX に送信します。
ここでは、GXのレジスタ300001番地(チャネル0001)から20レジスタ連続で読み出す例
を記載しています。
送信メッセージ
送信
00H
0CH
00H
00H
00H
00H
06H
00H
04H
00H
00H
14H
00H
D1000
D1001
D1002
D1003
D1004
D1005
D1006
FFH
送信データ
シーケンサ CPU 内レジスタ
送信データ長 (12)
転送 ID(0)
ユニット ID(255)
ファンクションコード (4)
ファンクション
コード 4 を使用
します。
開始レジスタ相対番号 (0)
プロトコル ID(0)
バイト数 (6)
レジスタ数 (20)
転送 ID
プロトコル ID
バイト数
開始レジスタ相対番号
レジスタ数
ユニット ID
ファンクションコード
レジスタ 300001
の相対番号は「0」
です。
シーケンサは、送信するときに送信
データの各ワードの上位バイトと下
位バイトを入れ替えます。
2
1
00 00 00 00 00
06
FF 04 00 00 00 14
「7.2 Modbus/TCP
メッセージ」を参照。
*4 シーケンサは送信するときに送信データの上位下位バイトを入れ替えます。TCP/IP ではビッグエンディ
アンに決まっているため,シーケンサ CPU 内レジスタのワークエリアにある送信データの上位下位バイ
トを入れ替えています。
4-4
4. 通信
* SEND(コネクションNo.1) <送信データ長 > 9 1 1 M2029 示 指 D N E S MOV K12 D1000送信デー 長 タ <転送ID > MOV H0 D1001 信 送 デー タ1 <プロトコルID > MOV H0 D1002 信 送 デー タ2 <バイト数 > MOV H600 D1003 信 送 デー タ3 <ユニットID,ファンクションコード > MOV H4FF D1004 信 送 デー タ4 <開始レジスタ相対番号 > MOV H0 D1005 信 送 デー タ5 <レジスタ数 > MOV K20 D1006 信 送 デー タ6 <レジスタ数を格納 > MOV D1006 信 送 デー タ6 D1510 レジスタ 数 <上位バイト下位バイトの入替 > SWAP D1006 信 送 デー タ68 2 2 示 指 D N E S オープン 完了信号 SP.SOCSND "U0" K1 D2030 令 命 D N E S コントロ ールデー タ D1000 信 送 デー 長 タ M2030 令 命 D N E S 完了 時 了 完 行 実 令 命 D N E S * <正常SEND > 2 4 2 M2030 令 命 D N E S 完了 M2031 令 命 D N E S 異常 SET M2032 令 命 D N E S 正常完了 <異常SEND > M2031 令 命 D N E S 異常 SET M2033 令 命 D N E S 異常完了 SET M2039 指 E V I E C E R 示
4-6
4. 通信
4.4
シーケンサへの受信
シーケンサは下記の手順で GX からのデータを受信します。
③ GX からのレスポンスを受信し、受信データエリアに受信データを格納します。
④ SP.SOCRCV 命令で受信データをシーケンサ CPU 内のワークエリア⑤に格納します。
ここでは、GX のレジスタ 300001 番地(チャネル 0001)から 20 レジスタ連続で読
み出す例を記載しています。
受信
D1100
D1101
D1102
D1103
D1104
D1105
D1106
D1124
受信データ
受信命令
…
…
受信メッセージ
受信データエリア
シーケンサCPU内レジスタ
バイトカウント
受信データ長 (49)
転送 ID(0)
ユニット ID(255)
ファンクションコード (4)
バイトカウント (40)
プロトコル ID(0)
バイト数 (43)
GX のチャネル 0001
の下位データ
00H
31H
00H
00H
00H
00H
2BH
00H
04H
FFH
xxH
28H
xxH
yyH
yyH
xxH
転送 ID
プロトコル ID
バイト数
チャネル 0001 ~ 0010 のデータ
ユニット ID
ファンクションコード
3
5
4
シーケンサは、受信するときに受信
データの各ワードの上位バイトと下
位バイトを入れ替えます。
ファンクションコー
ド 4 を返します。
チャネル 0001 から
0010 までのチャネル
データです。
「7.2 Modbus/TCP
メッセージ」を参照。
xx yy:測定データの値です。
xx が上位バイト、yy が下位バイトです。
**:使用しないバイトです。
00 00 00 00 00
2B
FF 04
28 xx
yy xx
...
yy **
4 6 2 M2039 指 E V I E C E R 示 SD1282.0 オープン 完了信号 SD1286.0 受信状態 信号 M2040 命 E V I E C E R 令完了 SP.SOCRCV "U0" K1 D2040 命 E V I E C E R ト ン コ 令 ロールデ ータ D1100 信 受 デー 長 タ M2040 命 E V I E C E R 令完了 時 了 完 行 実 令 命 E V I E C E R * <正常RECEIVE > 1 8 2 M2040 命 E V I E C E R 令完了 M2041 命 E V I E C E R 令異常 SET M2042 命 E V I E C E R 令正常完 了 <エラーチェック > CALL P2 <受信データの移動 > M2050 エラーコ ド ー 受信 CALL P0 <異常RECEIVE > M2041 命 E V I E C E R 令異常 SET M2043 命 E V I E C E R 令異常完 了 RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示
4-8
4. 通信
信 受 * データの移動 <受信データのオフセット > 3 3 3 P0 SM400 時 常 OPEN MOV K0 Z0 <データ移動先のオフセット > MOV K0 Z1 7 6 3 FOR D1510 レジスタ 数 9 6 3 SM400 時 常 OPEN MOV D1105Z0受信デー タ5 D1500 WORK1 MOV D1106Z0 信 受 デー タ6 D1501 WORK2 <下位1バイトをマスク > WAND H0FF00 D1500 WORK1 <上位1バイトをマスク > WAND H0FF D1501 WORK2 <結合 > WOR D1500 WORK1 D1501WORK2 MOV D1501 WORK2 D0Z1チャネル の 1 0 0 0 下 タ ー デ 位 INC Z0 INC Z1 5 1 4 NEXTP0
D1105 ~ D1125 の受信データを D0 ~ D19 に移動します。
xxH 28H
D1500の下位1バイトをマスクします。
xxH 00H
xxH yyH
D1501の上位1バイトをマスクします。
00H yyH
D1500とD1501のORをとり、D1501に代入します。
xxH yyH
D1501をD0に代入します。
この処理を20回繰り返し、D19までデータを格納します。
xxH yyH
データ
デバイス
D1500
(D1105)
D1501
(D1106)
D1501
D0
D1106 の下位バイト
D1105 の上位バイト
5. 通信
5-1
5.
サンプルプログラム
5.1
サンプルプログラムの概要
以下のラダーサンプルプログラムを作成します。
・ GX/GP/GM のチャネルを読み出す(5.2.1 項)
2 秒周期で GX/GP/GM のチャネル 0001 ~ 0010 を読み出します。
・ GX/GP/GM の通信チャネルに値を書き込む(5.2.2 項)
2 秒周期で GX/GP/GM の通信チャネル C001 ~ C020 に1から 20 を書き込みます。
・ GX/GP/GM のメモリスタート / ストップをする(5.2.3 項)
GX/GP/GM の記録スタート(メモリスタート)または記録ストップ(メモリストップ)
を行います。
・ シーケンサから GX/GP/GM へフリーメッセージを書き込む(5.2.4 項)
GX/GP/GM へ英数字半角 12 文字のフリーメッセージを書き込みます
*5 *6。
*5 メモリストップ状態だとフリーメッセージは書き込めません。メモリスタートさせてください。
*6 GX/GP/GM の文字コードは UTF-8 になります。
5.2
サンプルプログラムの詳細
ラダーサンプルプログラムでは下記のデバイスを使用しています。
内部リレー
内容
備考
M98
ストップデータをセット
ON 時にストップデータをセットします。
M99
スタートデータをセット
ON 時にスタートデータをセットします。
M100
開始指示
ON 時に GX/GP/GM と MELSEC-Q の通信処理を開始
します。
M101
終了指示
ON 時に GX/GP/GM と MELSEC-Q の通信処理を終了
させます。
M2000
OPEN 指示
ON 時にコネクションを開く指示を出します。
M2001
OPEN 命令完了
コネクションの確立に成功すると ON になります。
M2002
OPEN 命令異常
コネクションの確立に失敗すると ON になります。
M2003
OPEN 命令正常完了
コネクションの確立が正常時に ON にします。
M2004
OPEN 命令異常完了
コネクションの確立が異常時に ON にします。
M2020
相手機器よりクローズ
通信相手機器が通信を切断すると ON になります。
M2021
CLOSE 指示
ON 時にコネクションを切断する指示を出します。
M2022
CLOSE 命令完了
コネクションの切断に成功すると ON になります。
M2023
CLOSE 命令異常
コネクションの切断に失敗すると ON になります。
M2024
CLOSE 命令実行中
コネクションの切断処理が実行中の場合 ON になりま
す。
M2025
CLOSE 命令正常完了
コネクションの切断が正常時に ON にします。
M2026
CLOSE 命令異常完了
コネクションの切断が異常時に ON にします。
M2029
SEND 指示
ON 時にデータ送信する指示を出します。
M2030
SEND 命令完了
データ送信に成功すると ON になります。
M2031
SEND 命令異常
データ送信に失敗すると ON になります。
データレジスタ
内容
備考
D0
チャネル 0001 の下位データ
GX/GP/GM のチャネル 0001 の下位データを格納しま
す。
D1
チャネル 0001 の上位データ
GX/GP/GM のチャネル 0001 の上位データを格納しま
す。
:
:
:
D18
チャネル 0010 の下位データ
GX/GP/GM のチャネル 0010 の下位データを格納しま
す。
D19
チャネル 0010 の上位データ
GX/GP/GM のチャネル 0010 の上位データを格納しま
す。
D200
通信チャネル C001
GX/GP/GM の通信チャネル C001 に入力するデータを
格納します。
:
:
:
D219
通信チャネル C020
GX/GP/GM の通信チャネル C020 に入力するデータを
格納します。
D500
書き込み方法
書き込み方法を格納します。
D501
メッセージ番号
メッセージ番号を格納します。
D502
グループ番号
グループ番号を格納します。
D503
バッチ番号
バッチ番号指定を格納します。
D504
フリーメッセージ
フリーメッセージを格納します。
:
:
:
D519
フリーメッセージ
フリーメッセージを格納します。
D600
測定スタート / ストップ
GX/GP/GM をスタート / ストップするデータを格納
します。
2:ストップ
1:スタート
D1000
送信データ長
送信用ワークエリアです。
D1001
送信データ 1
送信用ワークエリアです。
:
:
:
D1029
送信データ 29
送信用ワークエリアです。
D1100
受信データ長
受信用ワークエリアです。
D1101
受信データ 1
受信用ワークエリアです。
:
:
:
D1129
受信データ 29
受信用ワークエリアです。
D1300
エラーコード
受信したエラーコードを格納します。
D1500
WORK1
一時的に使用するエリアです。
D1501
WORK2
一時的に使用するエリアです。
D1510
レジスタ数
レジスタ数を格納します。
D2001
OPEN 命令コントロール
システムが利用します。
D2022
CLOSE 命令コントロール
システムが利用します。
D2030
SEND 命令コントロール
システムが利用します。
D2040
RECEIVE 命令コントロール
システムが利用します。
※ データレジスタ D500 ~ D519 は、GX/GP/GM のレジスタマップのレンジスタ番号
409201 ~を参照してください。(7.3 節)
特殊リレー
内容
備考
SM400
常時 OPEN
常時 ON になります。
SM413
2 秒クロック
送信・受信のタイミングを 2 秒周期に設定しています。
5. 通信
5-3
5.2.1
GX/GP/GMのチャネルを読み出す
2 秒周期で GX/GP/GM のチャネル 0001 ~ 0010 の値を読み出し、MELSEC-Q のデータレ
ジスタ D0 ~ D19 に格納します。
以下のレジスタとファンクションコードを使います。
GX/GP/GMのレジスタ
項目
レジスタ
レジスタ相対番号
型
チャネル 0001 のデータ 下位ワード
300001
0
INT32
チャネル 0001 のデータ 上位ワード
300002
1
INT32
:
:
:
:
チャネル 0010 のデータ 下位ワード
300019
18
INT32
チャネル 0010 のデータ 上位ワード
300020
19
INT32
ファンクションコード:4
MELSEC-Qのデータレジスタ
項目
レジスタ
チャネル 0001 のデータ 下位ワード
DO
チャネル 0001 のデータ 上位ワード
D1
:
:
チャネル 0010 のデータ 下位ワード
D18
チャネル 0010 のデータ 上位ワード
D19
[動作]
・ 内部リレー M100 が 0 から 1 に変化したときに、GX/GP/GM とのコネクションをオー
プンして通信を開始します。
・ 2 秒周期で、読み出し命令を送信、GX/GP/GM からのレスポンスの受信を繰り返します。
・ 内部リレー M101 が 0 から 1 に変化したときに、GX/GP/GM とのコネクションをクロー
ズして通信を終了します。
0 SM413 秒 2 クロッ ク SET M2029 示 指 D N E S * 開始指示 3 M100 開始指示 1PLS SD1282.0 オープン 完了信号 SET M2000 示 指 N E P O RST M2020 相手機器 よりクロ ーズ RST M2021 示 指 E S O L C RST M2024 令 命 E S O L C 実行中 RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示 MOV K0 D1300 エラーコ ード * 終了指示 4 1 M101 終了指示 1PLS SET M2021 示 指 E S O L C
5. 通信
5-5
* OPEN(コネクションNo.1) <実行/完了タイプを0にセット > 7 1 M2000 示 指 N E P O SD1282.0 オープン 完了信号 SD1284.0 オープン 要求信号 SD1288.A 蔵 内 Ethe rnetポー 状 続 接 ト 態 MOVP H0 D2001 令 命 N E P O コントロ ールデー タ SP.SOCOPEN "U0" K1 D2001 令 命 N E P O コントロ ールデー タ M2001 令 命 N E P O 完了 時 了 完 行 実 令 命 N E P O * <正常OPEN > 1 5 M2001 令 命 N E P O 完了 M2002 令 命 N E P O 異常 SET M2003 令 命 N E P O 正常完了 <異常OPEN > M2002 令 命 N E P O 異常 SET M2004 令 命 N E P O 異常完了 RST M2000 示 指 N E P O * CLOSE(コネクションNo.1) 3 7 SD1282.0 オープン 完了信号 SD1284.0 オープン 要求信号 SET M2020 相手機器 よりクロ ーズ 7 7 M2021 示 指 E S O L C SD1282.0 オープン 完了信号 M2024 令 命 E S O L C 実行中 SP.SOCCLOSE "U0" K1 D2022 令 命 E S O L C コントロ ールデー タ M2022 令 命 E S O L C 完了 M2020 相手機器 よりクロ ーズ SET M2024 令 命 E S O L C 実行中4 9 M2022 令 命 E S O L C 完了 M2023 令 命 E S O L C 異常 SET M2025 令 命 E S O L C 正常完了 <異常CLOSE > M2023 令 命 E S O L C 異常 SET M2026 令 命 E S O L C 異常完了 RST M2020 相手機器 よりクロ ーズ RST M2021 示 指 E S O L C RST M2024 令 命 E S O L C 実行中
5. 通信
5-7
* SEND(コネクションNo.1) <送信データ長 > 9 1 1 M2029 示 指 D N E S MOV K12 D1000送信デー 長 タ <転送ID > MOV H0 D1001 信 送 デー タ1 <プロトコルID > MOV H0 D1002 信 送 デー タ2 <バイト数 > MOV H600 D1003 信 送 デー タ3 <ユニットID,ファンクションコード > MOV H4FF D1004 信 送 デー タ4 <開始レジスタ相対番号 > MOV H0 D1005 信 送 デー タ5 <レジスタ数 > MOV K20 D1006 信 送 デー タ6 <レジスタ数を格納 > MOV D1006 信 送 デー タ6 D1510 レジスタ 数 <上位バイト下位バイトの入替 > SWAP D1006 信 送 デー タ68 2 2 示 指 D N E S オープン 完了信号 SP.SOCSND "U0" K1 D2030 令 命 D N E S コントロ ールデー タ D1000 信 送 デー 長 タ M2030 令 命 D N E S 完了 時 了 完 行 実 令 命 D N E S * <正常SEND > 2 4 2 M2030 令 命 D N E S 完了 M2031 令 命 D N E S 異常 SET M2032 令 命 D N E S 正常完了 <異常SEND > M2031 令 命 D N E S 異常 SET M2033 令 命 D N E S 異常完了 SET M2039 指 E V I E C E R 示 * RECEIVE(コネクションNo.1) 4 6 2 M2039 指 E V I E C E R 示 SD1282.0 オープン 完了信号 SD1286.0 受信状態 信号 M2040 命 E V I E C E R 令完了 SP.SOCRCV "U0" K1 D2040 命 E V I E C E R ト ン コ 令 ロールデ ータ D1100 信 受 デー 長 タ M2040 命 E V I E C E R 令完了
5. 通信
5-9
時 了 完 行 実 令 命 E V I E C E R * <正常RECEIVE > 1 8 2 M2040 命 E V I E C E R 令完了 M2041 命 E V I E C E R 令異常 SET M2042 命 E V I E C E R 令正常完 了 <エラーチェック > CALL P2 <受信データの移動 > M2050 エラーコ ド ー 受信 CALL P0 <異常RECEIVE > M2041 命 E V I E C E R 令異常 SET M2043 命 E V I E C E R 令異常完 了 RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示 2 3 3 FEND 信 受 * データの移動 <受信データのオフセット > 3 3 3 P0 SM400 時 常 OPEN MOV K0 Z0 <データ移動先のオフセット > MOV K0 Z1 7 6 3 FOR D1510 レジスタ 数9 6 3 時 常 OPEN MOV D1105Z0受信デー タ5 D1500 WORK1 MOV D1106Z0 信 受 デー タ6 D1501 WORK2 <下位1バイトをマスク > WAND H0FF00 D1500 WORK1 <上位1バイトをマスク > WAND H0FF D1501 WORK2 <結合 > WOR D1500 WORK1 D1501WORK2 MOV D1501 WORK2 D0Z1チャネル の 1 0 0 0 下 タ ー デ 位 INC Z0 INC Z1 5 1 4 NEXT 6 1 4 RET
5. 通信
5-11
* エラーチェック 7 1 4 P2 SM400 時 常 OPEN MOV D1104受信デー タ4 D1500 WORK1 <下位1バイトをマスク > WAND H0FF00 D1500 WORK1 <上位バイト下位バイトの入替 > SWAP D1500 WORK1 <= H80 D1500 WORK1 SET M2050エラーコ ド ー 受信 MOV D1105 信 受 デー タ5 D1501 WORK2 <上位1バイトをマスク > WAND H0FF D1501 WORK2 MOV D1501 WORK2 D1300エラーコ ード > H80 D1500 WORK1 RST M2050エラーコ ド ー 受信 3 8 4 RET 4 8 4 END5.2.2
GX/GP/GMの通信チャネルに値を書き込む
2 秒周期で MELSEC-Q のデータレジスタ D200 ~ D219 のデータを GX/GP/GM の通信チャ
ネル C001 ~ C020 に書き込みます。書き込む値は C001 に 1、C002 に 2、・・・、C20 に
20 とします。
以下のレジスタとファンクションコードを使います。
GX/GP/GMのレジスタ
項目
レジスタ
レジスタ相対番号
型
通信チャネル 0001 のデータ
407001
7000
INT16
:
:
:
:
通信チャネル 0020 のデータ
407020
7019
INT16
ファンクションコード:16
MELSEC-Qのデータレジスタ
項目
レジスタ
通信チャネル 0001 のデータ
D200
:
:
通信チャネル 0020 のデータ
D219
[動作]
・ D200 ~ D219 に、通信チャネルに書き込むデータを格納します。サンプルでは 1 ~
20 になります。
・ 内部リレー M100 が 0 から 1 に変化したときに、GX/GP/GM とのコネクションをオー
プンして通信を開始します。
・ 2 秒周期で、書き込み命令を送信、GX/GP/GM からのレスポンスの受信を繰り返します。
・ 内部リレー M101 が 0 から 1 に変化したときに、GX/GP/GM とのコネクションをクロー
ズして通信を終了します。
5. 通信
5-13
秒 2 * ごとにSEND→RECEIVE 0 SM413 秒 2 クロッ ク SET M2029 示 指 D N E S * 開始指示 3 M100 開始指示 1PLS SD1282.0 オープン 完了信号 SET M2000 示 指 N E P O RST M2020 相手機器 よりクロ ーズ RST M2021 示 指 E S O L C RST M2024 令 命 E S O L C 実行中 RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示 MOV K0 D1300 エラーコ ード <サンプルデータを作成 > CALL P10 * 終了指示 8 2 M101 終了指示 1PLS SET M2021 示 指 E S O L C<実行/完了タイプを0にセット > 1 3 M2000 示 指 N E P O SD1282.0 オープン 完了信号 SD1284.0 オープン 要求信号 SD1288.A 蔵 内 Ethe rnetポー 状 続 接 ト 態 MOVP H0 D2001 令 命 N E P O コントロ ールデー タ SP.SOCOPEN "U0" K1 D2001 令 命 N E P O コントロ ールデー タ M2001 令 命 N E P O 完了 時 了 完 行 実 令 命 N E P O * <正常OPEN > 5 6 M2001 令 命 N E P O 完了 M2002 令 命 N E P O 異常 SET M2003 令 命 N E P O 正常完了 <異常OPEN > M2002 令 命 N E P O 異常 SET M2004 令 命 N E P O 異常完了 RST M2000 示 指 N E P O * CLOSE(コネクションNo.1) 7 8 SD1282.0 オープン 完了信号 SD1284.0 オープン 要求信号 SET M2020 相手機器 よりクロ ーズ 1 9 M2021 示 指 E S O L C SD1282.0 オープン 完了信号 M2024 令 命 E S O L C 実行中 SP.SOCCLOSE "U0" K1 D2022 令 命 E S O L C コントロ ールデー タ M2022 令 命 E S O L C 完了 M2020 相手機器 よりクロ ーズ SET M2024 令 命 E S O L C 実行中
5. 通信
5-15
時 了 完 行 実 令 命 E S O L C * <正常CLOSE > 8 0 1 M2022 令 命 E S O L C 完了 M2023 令 命 E S O L C 異常 SET M2025 令 命 E S O L C 正常完了 <異常CLOSE > M2023 令 命 E S O L C 異常 SET M2026 令 命 E S O L C 異常完了 RST M2020 相手機器 よりクロ ーズ RST M2021 示 指 E S O L C RST M2024 令 命 E S O L C 実行中<レジスタ数 > 4 3 1 M2029 示 指 D N E S MOV K20 D1006送信デー タ6 <レジスタ数を格納 > MOV D1006 信 送 デー タ6 D1510 レジスタ 数 <バイトカウント > * D1006 信 送 デー タ6 K2 D1007 信 送 デー タ7 <バイト数 > + D1007 信 送 デー タ7 K7 D1003 信 送 デー タ3 <送信データ長 > + D1007 信 送 デー タ7 K13 D1000 信 送 デー 長 タ <転送ID > MOV H0 D1001 信 送 デー タ1 <プロトコルID > MOV H0 D1002 信 送 デー タ2 <ユニットIDとファンクションコード> MOV H10FF D1004 信 送 デー タ4 <レジスタ相対番号 >
5. 通信
5-17
<上位バイト下位バイトの入替 > SWAP D1003 信 送 デー タ3 <上位バイト下位バイトの入替 > SWAP D1006 信 送 デー タ6 <送信データの移動1 > CALL P0 <送信データの移動2 > CALL P1 8 9 2 M2029 示 指 D N E S SD1282.0 オープン 完了信号 SP.SOCSND "U0" K1 D2030 令 命 D N E S コントロ ールデー タ D1000 信 送 デー 長 タ M2030 令 命 D N E S 完了 時 了 完 行 実 令 命 D N E S * <正常SEND > 2 1 3 M2030 令 命 D N E S 完了 M2031 令 命 D N E S 異常 SET M2032 令 命 D N E S 正常完了 <異常SEND > M2031 令 命 D N E S 異常 SET M2033 令 命 D N E S 異常完了 SET M2039 指 E V I E C E R 示 * RECEIVE(コネクションNo.1) 4 3 3 M2039 指 E V I E C E R 示 SD1282.0 オープン 完了信号 SD1286.0 受信状態 信号 M2040 命 E V I E C E R 令完了 SP.SOCRCV "U0" K1 D2040 命 E V I E C E R ト ン コ 令 ロールデ ータ D1100 信 受 デー 長 タ M2040 命 E V I E C E R 令完了<正常RECEIVE > 1 5 3 M2040 命 E V I E C E R 令完了 M2041 命 E V I E C E R 令異常 SET M2042 命 E V I E C E R 令正常完 了 <エラーチェック > CALL P2 <異常RECEIVE > M2041 命 E V I E C E R 令異常 SET M2043 命 E V I E C E R 令異常完 了 RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示 9 8 3 FEND
5. 通信
5-19
信 送 * データの移動1 0 9 3 P0 SM400 時 常 OPEN MOV D1007送信デー タ7 D1500 WORK1 MOV D200 信 通 チャ ネルC001 D1501 WORK2 <上位1バイトをマスク > WAND H0FF D1500 WORK1 <下位1バイトをマスク > WAND H0FF00 D1501 WORK2 <結合 > WOR D1500 WORK1 D1501WORK2 MOV D1501 WORK2 D1007送信デー タ7 6 3 4 RET 信 送 * データの移動2 7 3 4 P1 SM400 時 常 OPEN MOV K0 Z0 <データ移動先のオフセット > MOV K0 Z1 8 5 4 FOR D1510 レジスタ 数0 6 4 時 常 OPEN MOV D200Z0通信チャ ネルC001 D1500 WORK1 MOV D201Z0 信 通 チャ ネルC002 D1501 WORK2 <上位1バイトをマスク > WAND H0FF D1500 WORK1 <下位1バイトをマスク > WAND H0FF00 D1501 WORK2 <結合 > WOR D1500 WORK1 D1501WORK2 MOV D1501 WORK2 D1008Z1送信デー タ8 INC Z0 INC Z1 6 0 5 NEXT 7 0 5 RET
5. 通信
5-21
* エラーチェック 8 0 5 P2 SM400 時 常 OPEN MOV D1104受信デー タ4 D1500 WORK1 <下位1バイトをマスク > WAND H0FF00 D1500 WORK1 <上位バイト下位バイトの入替 > SWAP D1500 WORK1 <= H80 D1500 WORK1 SET M2050エラーコ ド ー 受信 MOV D1105 信 受 デー タ5 D1501 WORK2 <上位1バイトをマスク > WAND H0FF D1501 WORK2 MOV D1501 WORK2 D1300エラーコ ード > H80 D1500 WORK1 RST M2050エラーコ ド ー 受信 4 7 5 RET タ ー デ ル プ ン サ * 作成 5 7 5 P10 SM400 時 常 OPEN MOV K0 Z02 8 5 FOR K20 4 8 5 SM400 時 常 OPEN MOV Z1 D200Z0通信チャ ネルC001 INC Z0 INC Z1 9 8 5 NEXT 0 9 5 RET 1 9 5 END
5. 通信
5-23
D1000
D1001
D1002
D1003
D1004
D1005
D1006
D1007
D1008
D1009
D1026
D1027
送信データ
…
…
…
シーケンサCPU内レジスタ
開始レジスタ相対番号
送信データ長 (53)
転送 ID(0)
ユニット ID(255)
ファンクションコード (16)
バイトカウント (40)
開始レジスタ相対番号 (7000)
レジスタ数 (20)
送信
通信チャネル C001(1)
プロトコル ID(0)
バイト数 (47)
通信チャネル C002(2)
通信チャネル C019(19)
通信チャネル C020(20)
00H
35H
00H
00H
2FH
00H
10H
FFH
28H
00H
13H
**H
14H
02H
00H
転送 ID
プロトコル ID
バイト数
レジスタ数
バイトカウント
通信チャネル C001 ~ C020
ユニット ID
ファンクションコード
シーケンサは、送信するときにデータ
の1ワード中の上位バイトと下位バイ
トを入れ替えます。
ファンクション
コード 16 を使用
します。
通信チャネル C001
から C020 に書き込む
値です。レジスタの
上位バイトと、次の
レジスタの下位バイト
で一つのデータに
なります。
「7.2 Modbus/TCP
メッセージ」を参照。
( ) 内は値です。
**:使用しないバイトです。
レジスタ 407001
の相対番号は
「7000」です。
00H
00H
01H
P0 で作成
P1 で作成
00 00 00 00 00
2F
FF 10 1B
58
00 14 28 00 01 00 02 00 ・・・ 13 00 14 **
00H
00H
58H
1BH
14H
00H
P0
送信データを作成します(D1007)。
00H 28H
D1500の上位1バイトをマスクします。
00H 28H
00H 01H
D1501の下位1バイトをマスクします。
00H 00H
D1500とD1501のORをとり、D1501に代入します。
00H 28H
D1501をD1007に代入します。
00H 28H
データ
デバイス
D1500
(D1007)
D1501
(D200)
D1501
D1007
D200 の上位バイト
5. 通信
5-25
P1
送信データを作成します(D1008~D1027)。
00H 01H
D1500の上位1バイトをマスクします。
00H 01H
00H 02H
D1501の下位1バイトをマスクします。
00H 00H
D1500とD1501のORをとり、D1501に代入します。
00H 01H
D1501をD1008に代入します。
この処理を20回繰り返し、D1027までデータを格納します。
00H 01H
データ
デバイス
D1500
(D200)
D1501
(D201)
D1501
D1008
D200 の下位バイト
D201 の上位バイト
5.2.3
GX/GP/GMのメモリスタート/ストップをする
GX/GP/GMの記録スタート(メモリスタート)または記録ストップ(メモリストップ)を
行います。
以下のレジスタとファンクションコードを使います。
GX/GP/GMのレジスタ
項目
レジスタ
レジスタ相対番号
型
記録スタート / 記録ストップ
1: 記録スタート
2: 記録ストップ
409001
9000
INT16
ファンクションコード:6
MELSEC-Qのデータレジスタ
項目
レジスタ
記録スタート / 記録ストップ
1: 記録スタート
2: 記録ストップ
D600
[動作]
・ 内部リレー M98 が 0 から 1 に変化したときに、GX/GP/GM の記録ストップ(メモリ
ストップ)データをデータレジスタ D600 に格納します。
・ 内部リレー M99 が 0 から 1 に変化したときに、GX/GP/GM の記録スタート(メモリ
スタート)データをデータレジスタ D600 に格納します。
・ 内部リレー M100 が 0 から 1 に変化したときに、GX/GP/GM とのコネクションをオー
プンして通信を開始します。
・ 書き込み命令を送信し、GX/GP/GM からのレスポンスを受信したのち、GX/GP/GM
とのコネクションをクローズして通信を終了します。
5. 通信
5-27
* ストップデータをセット <ストップ > 0 M98 ストップ データセ ト ッ 指示 MOV K2 D600 メモリス タート/ス トップ * スタートデータをセット <スタート > 0 1 M99 スタート データセ ト ッ 指示 MOV K1 D600 メモリス タート/ス トップ * 開始指示 0 2 M100 開始指示 1PLS SD1282.0 オープン 完了信号 SET M2000 示 指 N E P O RST M2020 相手機器 よりクロ ーズ RST M2021 示 指 E S O L C RST M2024 令 命 E S O L C 実行中 RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示 MOV K0 D1300 エラーコ ード * 終了指示 1 3 M101 終了指示 SET M2021C LOSE指示<実行/完了タイプを0にセット > 4 3 M2000 示 指 N E P O SD1282.0 オープン 完了信号 SD1284.0 オープン 要求信号 SD1288.A 蔵 内 Ethe rnetポー 状 続 接 ト 態 MOVP H0 D2001 令 命 N E P O コントロ ールデー タ SP.SOCOPEN "U0" K1 D2001 令 命 N E P O コントロ ールデー タ M2001 令 命 N E P O 完了 時 了 完 行 実 令 命 N E P O * <正常OPEN > 8 6 M2001 令 命 N E P O 完了 M2002 令 命 N E P O 異常 SET M2003 令 命 N E P O 正常完了 SET M2029 示 指 D N E S <異常OPEN > M2002 令 命 N E P O 異常 SET M2004 令 命 N E P O 異常完了 RST M2000 示 指 N E P O * CLOSE(コネクションNo.1) 1 9 SD1282.0 オープン 完了信号 SD1284.0 オープン 要求信号 SET M2020 相手機器 よりクロ ーズ 5 9 M2021 示 指 E S O L C SD1282.0 オープン 完了信号 M2024 令 命 E S O L C 実行中 SP.SOCCLOSE "U0" K1 D2022 令 命 E S O L C コントロ ールデー タ M2022 令 命 E S O L C 完了 M2020 相手機器 よりクロ ーズ SET M2024 令 命 E S O L C 実行中
5. 通信
5-29
時 了 完 行 実 令 命 E S O L C * <正常CLOSE > 2 1 1 M2022 令 命 E S O L C 完了 M2023 令 命 E S O L C 異常 SET M2025 令 命 E S O L C 正常完了 <異常CLOSE > M2023 令 命 E S O L C 異常 SET M2026 令 命 E S O L C 異常完了 RST M2020 相手機器 よりクロ ーズ RST M2021 示 指 E S O L C RST M2024 令 命 E S O L C 実行中<送信データ長 > 8 3 1 M2029 示 指 D N E S MOV K12 D1000送信デー 長 タ <転送ID > MOV H0 D1001 信 送 デー タ1 <プロトコルID > MOV H0 D1002 信 送 デー タ2 <バイト数 > MOV H600 D1003 信 送 デー タ3 <ユニットID,ファンクションコード > MOV H6FF D1004 信 送 デー タ4 <開始レジスタ相対番号 > MOV H2823 D1005 信 送 デー タ5 <書き込みデータ > MOV D600 メモリス タート/ス トップ D1006 信 送 デー タ6 <上位バイト下位バイトの入替 > SWAP D1006 信 送 デー タ6 M2029 SD1282.0
5. 通信
5-31
時 了 完 行 実 令 命 D N E S * <正常SEND > 1 5 2 M2030 令 命 D N E S 完了 M2031 令 命 D N E S 異常 SET M2032 令 命 D N E S 正常完了 <異常SEND > M2031 令 命 D N E S 異常 SET M2033 令 命 D N E S 異常完了 SET M2039 指 E V I E C E R 示 * RECEIVE(コネクションNo.1) 3 7 2 M2039 指 E V I E C E R 示 SD1282.0 オープン 完了信号 SD1286.0 受信状態 信号 M2040 命 E V I E C E R 令完了 SP.SOCRCV "U0" K1 D2040 命 E V I E C E R ト ン コ 令 ロールデ ータ D1100 信 受 デー 長 タ M2040 命 E V I E C E R 令完了 時 了 完 行 実 令 命 E V I E C E R * <正常RECEIVE > 0 9 2 M2040 命 E V I E C E R 令完了 M2041 命 E V I E C E R 令異常 SET M2042 命 E V I E C E R 令正常完 了 <エラーチェック > CALL P2 <異常RECEIVE > M2041 命 E V I E C E R 令異常 SET M2043 命 E V I E C E R 令異常完 了 SET M2021 示 指 E S O L C RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示9 2 3 FEND * エラーチェック 0 3 3 P2 SM400 時 常 OPEN MOV D1104受信デー タ4 D1500 WORK1 <下位1バイトをマスク > WAND H0FF00 D1500 WORK1 <上位バイト下位バイトの入替 > SWAP D1500 WORK1 <= H80 D1500 WORK1 SET M2050エラーコ ド ー 受信 MOV D1105 信 受 デー タ5 D1501 WORK2 <上位1バイトをマスク > WAND H0FF D1501 WORK2 MOV D1501 WORK2 D1300エラーコ ード > H80 D1500 WORK1 RST M2050エラーコ ド ー 受信 6 9 3 RET
5. 通信
5-33
5.2.4
シーケンサからGX/GP/GMにフリーメッセージを書き込む
データレジスタ D504 ~ D519 に格納した文字列を、以下の条件で GX/GP/GM に書き込
みます。
・ D500 で示した書き込み方法
・ D501 で示したメッセージ番号
・ D502 で示したメッセージ書き込み先グループ番号(0 を指定すると全てのグループ
に書き込みます)
・ D503 で示したバッチ番号(0 を指定)
ラダーサンプルプログラムでは書き込み方法はフリーメッセージ、メッセージ番号1、
メッセージ書き込み先グループ番号 1、フリーメッセージに「free message」を設定して
います。
以下のレジスタとファンクションコードを使います。
GX/GP/GMのレジスタ
項目
レジスタ
レジスタ相対番号
型
書き込み方法
409201
9200
INT16
メッセージ番号
409202
9201
INT16
書き込み先
409203
9202
INT16
バッチグループ番号
409204
9203
INT16
フリーメッセージ
409205
9204
INT16
:
:
:
:
フリーメッセージ
409213
9212
INT16
* フリーメッセージの文字列は半角 32 文字以下で設定してください。
ファンクションコード:16
MELSEC-Qのデータレジスタ
項目
レジスタ
書き込み方法
D500
メッセージ番号
D501
書き込み先
D502
バッチグループ番号
D503
フリーメッセージ
D504
:
:
フリーメッセージ
D512
* フリーメッセージの文字列は半角 32 文字以下で設定してください。
[動作]
・ 内部リレー M100 が 0 から 1 に変化したときに、GX/GP/GM とのコネクションをオー
プンして通信を開始します。
・ メッセージ書き込み命令を送信し、GX/GP/GM からのレスポンスを受信したのち、
GX/GP/GM とのコネクションをクローズして通信を終了します。
0 M100 開始指示 1PLS SD1282.0 オープン 完了信号 SET M2000 示 指 N E P O RST M2020 相手機器 よりクロ ーズ RST M2021 示 指 E S O L C RST M2024 令 命 E S O L C 実行中 RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示 MOV K0 D1300 エラーコ ード <書き込みメッセージを作成 > CALL P10 * 終了指示 7 2 M101 終了指示 1PLS SET M2021 示 指 E S O L C
5. 通信
5-35
* OPEN(コネクションNo.1) <実行/完了タイプを0にセット > 0 3 M2000 示 指 N E P O SD1282.0 オープン 完了信号 SD1284.0 オープン 要求信号 SD1288.A 蔵 内 Ethe rnetポー 状 続 接 ト 態 MOVP H0 D2001 令 命 N E P O コントロ ールデー タ SP.SOCOPEN "U0" K1 D2001 令 命 N E P O コントロ ールデー タ M2001 令 命 N E P O 完了 時 了 完 行 実 令 命 N E P O * <正常OPEN > 4 6 M2001 令 命 N E P O 完了 M2002 令 命 N E P O 異常 SET M2003 令 命 N E P O 正常完了 SET M2029 示 指 D N E S <異常OPEN > M2002 令 命 N E P O 異常 SET M2004 令 命 N E P O 異常完了 RST M2000 示 指 N E P O * CLOSE(コネクションNo.1) 7 8 SD1282.0 オープン 完了信号 SD1284.0 オープン 要求信号 SET M2020 相手機器 よりクロ ーズ 1 9 M2021 示 指 E S O L C SD1282.0 オープン 完了信号 M2024 令 命 E S O L C 実行中 SP.SOCCLOSE "U0" K1 D2022 令 命 E S O L C コントロ ールデー タ M2022 令 命 E S O L C 完了 M2020 相手機器 よりクロ ーズ SET M2024 令 命 E S O L C 実行中<正常CLOSE > 8 0 1 M2022 令 命 E S O L C 完了 M2023 令 命 E S O L C 異常 SET M2025 令 命 E S O L C 正常完了 <異常CLOSE > M2023 令 命 E S O L C 異常 SET M2026 令 命 E S O L C 異常完了 RST M2020 相手機器 よりクロ ーズ RST M2021 示 指 E S O L C RST M2024 令 命 E S O L C 実行中
5. 通信
5-37
* SEND(コネクションNo.1) <レジスタ数 > 4 3 1 M2029 示 指 D N E S MOV K21 D1006送信デー タ6 <レジスタ数を格納 > MOV D1006 信 送 デー タ6 D1510 レジスタ 数 <バイトカウント > * D1006 信 送 デー タ6 K2 D1007 信 送 デー タ7 <バイト数 > + D1007 信 送 デー タ7 K7 D1003 信 送 デー タ3 <送信データ長 > + D1007 信 送 デー タ7 K13 D1000 信 送 デー 長 タ <転送ID > MOV H0 D1001 信 送 デー タ1 <プロトコルID > MOV H0 D1002 信 送 デー タ2 <ユニットIDとファンクションコード> MOV H10FF D1004 信 送 デー タ4 <レジスタ相対番号 > MOV H0F023 D1005 信 送 デー タ5SWAP D1003 信 送 デー タ3 <上位バイト下位バイトの入替 > SWAP D1006 信 送 デー タ6 <送信データの移動1 > CALL P0 <送信データの移動2 > CALL P1 8 9 2 M2029 示 指 D N E S SD1282.0 オープン 完了信号 SP.SOCSND "U0" K1 D2030 令 命 D N E S コントロ ールデー タ D1000 信 送 デー 長 タ M2030 令 命 D N E S 完了 時 了 完 行 実 令 命 D N E S * <正常SEND > 2 1 3 M2030 令 命 D N E S 完了 M2031 令 命 D N E S 異常 SET M2032 令 命 D N E S 正常完了 <異常SEND > M2031 令 命 D N E S 異常 SET M2033 令 命 D N E S 異常完了 SET M2039 指 E V I E C E R 示 * RECEIVE(コネクションNo.1) 4 3 3 M2039 指 E V I E C E R 示 SD1282.0 オープン 完了信号 SD1286.0 受信状態 信号 M2040 命 E V I E C E R 令完了 SP.SOCRCV "U0" K1 D2040 命 E V I E C E R ト ン コ 令 ロールデ ータ D1100 信 受 デー 長 タ M2040 命 E V I E C E R 令完了
5. 通信
5-39
時 了 完 行 実 令 命 E V I E C E R * <正常RECEIVE > 1 5 3 M2040 命 E V I E C E R 令完了 M2041 命 E V I E C E R 令異常 SET M2042 命 E V I E C E R 令正常完 了 <エラーチェック > CALL P2 <異常RECEIVE > M2041 命 E V I E C E R 令異常 SET M2043 命 E V I E C E R 令異常完 了 SET M2021 示 指 E S O L C RST M2029 示 指 D N E S RST M2039 指 E V I E C E R 示 0 9 3 FEND1 9 3 P0 SM400 時 常 OPEN MOV D1007送信デー タ7 D1500 WORK1 MOV D500 み 込 き 書 方法 D1501 WORK2 <上位1バイトをマスク > WAND H0FF D1500 WORK1 <下位1バイトをマスク > WAND H0FF00 D1501 WORK2 <結合 > WOR D1500 WORK1 D1501WORK2 MOV D1501 WORK2 D1007送信デー タ7 7 3 4 RET 信 送 * データの移動2 <データのオフセット > 8 3 4 P1 SM400 時 常 OPEN MOV K0 Z0 <データ移動先のオフセット > MOV K0 Z1 0 7 4 FOR D1510 レジスタ 数
5. 通信
5-41
2 7 4 SM400 時 常 OPEN MOV D500Z0書き込み 方法 D1500 WORK1 MOV D501Z0 メッセー 号 番 ジ D1501 WORK2 <上位バイト下位バイトの入替 > >= Z0 K3 SWAP D1501 WORK2 <上位バイト下位バイトの入替 > > Z0 K3 SWAP D1500 WORK1 <上位1バイトをマスク > WAND H0FF D1500 WORK1 <下位1バイトをマスク > WAND H0FF00 D1501 WORK2 <結合 > WOR D1500 WORK1 D1501WORK2 MOV D1501 WORK2 D1008Z1送信デー タ8 INC Z0 INC Z1 8 5 5 NEXT0 6 5 P2 SM400 時 常 OPEN MOV D1104受信デー タ4 D1500 WORK1 <下位1バイトをマスク > WAND H0FF00 D1500 WORK1 <上位バイト下位バイトの入替 > SWAP D1500 WORK1 <= H80 D1500 WORK1 SET M2050エラーコ ド ー 受信 MOV D1105 信 受 デー タ5 D1501 WORK2 <上位1バイトをマスク > WAND H0FF D1501 WORK2 MOV D1501 WORK2 D1300エラーコ ード > H80 D1500 WORK1 RST M2050エラーコ ド ー 受信 6 2 6 RET
5. 通信
5-43
書 * き込みメッセージの作成 <フリーメッセージ指定 > 7 2 6 P10 SM400 時 常 OPEN MOV K2 D500書き込み 方法 <メッセージ番号1指定 > MOV K1 D501 メッセー 号 番 ジ <グループ番号1指定 > MOV K1 D502 グループ 番号 <バッチ番号0指定 > MOV K0 D503 チ ッ バ 番 号$MOV "free message" D504 フリーメ ッセージ 2 9 6 RET 3 9 6 END