【上級編】シリアル通信受信データ読出しGP.BUFRCV命令 GX Works3

f:id:vv_6ong_3ka_cp:20210602130218p:plain
f:id:vv_6ong_3ka_cp:20210528053316p:plain

シリアル通信で相手機器から送られてくる情報を読み出す方法はiQ-Rシリーズのユニット専用命令であるGP.BUFRCV命令です。

正直このような命令はシリアル通信を行ったり、特殊な機器を使用する際にしか使用しないため、普段はコンベヤ単体の制御しか行わない方からすると縁もゆかりもないということになるでしょう。

しかし、もし使用する場合はこのような命令でシリアル通信ができるということを知っておくと敷居が低くなると思います。

今回はシーケンサによるシリアル通信受信データ読出しGP.BUFRCV命令について紹介します。

www.niwakafa.com

広告


シリアル通信受信データ読出し GP.BUFRCV命令

シリアル通信参考プログラム
www.niwakafa.com

シリアル通信受信データ読出し GP.BUFRCV命令参考プログラム
f:id:vv_6ong_3ka_cp:20210530051922p:plain

Point.受信データを読み出す時は受信データ部分を0リセットする

受信データを読み出す場合は、前回の情報が残っていると間違ったことになる可能性があるため、プログラム上で行っている[ FMOV K0 D211 K30 ]のように受信データ部分を0にしましょう

シリアル通信受信データ読出し GP.BUFRCV命令
f:id:vv_6ong_3ka_cp:20210602055939p:plain

Point.ユニットNo.やコネクションNo.を間違えないようにする

ユニットNo.やコネクションNo.を間違えると受信データではなく、送信データ、つまり自身で送っているデータが格納されてしまうので注意しましょう。

コネクションNo.設定方法
www.niwakafa.com

シリアル通信受信データ読出し GP.BUFRCV命令コントロールデータ詳細
f:id:vv_6ong_3ka_cp:20210602055949p:plain

Point.手順なし(バイナリ)の場合はバイトで設定。2バイト=1ワード、1文字=1バイト

今回のシリアル通信設定では手順なし(バイナリ)のためバイトでデータ長を指定します。

2バイト=1ワード、1文字=1バイトと覚えてもらえればわかりやすいかと思います。

まとめ
・受信データを読み出す時は受信データ部分を0リセットする
・ユニットNo.やコネクションNo.を間違えないようにする
・手順なし(バイナリ)の場合はバイトで設定。2バイト=1ワード、1文字=1バイト



www.niwakafa.com
www.niwakafa.com
www.niwakafa.com