シリアル通信で相手機器から送られてくる情報を読み出す方法はiQ-Rシリーズのユニット専用命令であるGP.BUFRCV命令です。
正直このような命令はシリアル通信を行ったり、特殊な機器を使用する際にしか使用しないため、普段はコンベヤ単体の制御しか行わない方からすると縁もゆかりもないということになるでしょう。
しかし、もし使用する場合はこのような命令でシリアル通信ができるということを知っておくと敷居が低くなると思います。
今回はシーケンサによるシリアル通信受信データ読出しGP.BUFRCV命令について紹介します。
広告
シリアル通信受信データ読出し GP.BUFRCV命令
シリアル通信参考プログラム
www.niwakafa.com
シリアル通信受信データ読出し GP.BUFRCV命令参考プログラム
Point.受信データを読み出す時は受信データ部分を0リセットする
受信データを読み出す場合は、前回の情報が残っていると間違ったことになる可能性があるため、プログラム上で行っている[ FMOV K0 D211 K30 ]のように受信データ部分を0にしましょう。
シリアル通信受信データ読出し GP.BUFRCV命令
Point.ユニットNo.やコネクションNo.を間違えないようにする
ユニットNo.やコネクションNo.を間違えると受信データではなく、送信データ、つまり自身で送っているデータが格納されてしまうので注意しましょう。
コネクションNo.設定方法
www.niwakafa.com
シリアル通信受信データ読出し GP.BUFRCV命令コントロールデータ詳細
Point.手順なし(バイナリ)の場合はバイトで設定。2バイト=1ワード、1文字=1バイト
今回のシリアル通信設定では手順なし(バイナリ)のためバイトでデータ長を指定します。
2バイト=1ワード、1文字=1バイトと覚えてもらえればわかりやすいかと思います。
まとめ
・受信データを読み出す時は受信データ部分を0リセットする
・ユニットNo.やコネクションNo.を間違えないようにする
・手順なし(バイナリ)の場合はバイトで設定。2バイト=1ワード、1文字=1バイト