• 検索結果がありません。

GX/GP/GMのチャネルを読み出す

5. サンプルプログラム

5.2 サンプルプログラムの詳細

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

デー

タ6

8 2

2 S END オープン 完了信号

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

P0 3 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 D1501 WORK2

MOV D1501

WORK2 D0Z1 チャネル001

0

INC Z0

INC Z1

5 1

4 NEXT

6 1

4 RET

5. 通信

5-11

* エラーチェック 7 1

P2 4 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 END

関連したドキュメント