【上級編】文字列転送$MOV命令 GX Works3 iQ-Rシリーズ

f:id:vv_6ong_3ka_cp:20210604181603p:plain
f:id:vv_6ong_3ka_cp:20210528053316p:plain

文字列転送はPCとのシリアル通信を行う際などに多く使われる機能であり、例えばPLCで0だとしてもPCだとNULLというものになります。

PCへ送る文字列をPLCから送る文字を”LON”と仮定すると実際のデータレジスタには”0x4C4F4E”という16進数を送ってくれます。

つまり、PCなどに送る文字を16進数に簡単に変換してくれる機能が文字列転送命令$MOVです

難しく考えるよりかは、文字をデバイスに格納できると簡単に考えている方がいいかもしれませんね。

シリアル通信には制御コード ”ヘッダ”や”デリミタ”などがあり、それらは制御コードと表現されます。

制御コードは特殊で”STX”は"0x02"で文字と16進数が合わないため、この制御コードを入力する際には注意が必要となります。

今回はGX Works3の文字列転送$MOV命令について紹介します。

www.niwakafa.com

広告


文字列転送命令 $MOV

文字列転送 $MOV命令
f:id:vv_6ong_3ka_cp:20210603124525p:plain

Point.文字列を転送する時は” ”の中に文字を入れる

GX Works3で文字列を転送する際は” ”の中に文字を入力します。

通常、数値をMOV命令で送る場合はK:10進数やH:16進数となるのですが、文字列の場合は” ”のなかで記入しますので注意しましょう。

文字列転送 $MOV機能
f:id:vv_6ong_3ka_cp:20210603124536p:plain

Point.英数字は1文字=1バイト、漢字は1文字=2バイト

英数字は1文字あたり1バイト(1ワード=16ビット、1バイト=8ビット)なのですが、漢字は1文字あたり2バイト(1ワード=16ビット、2バイト=16ビット)のようです

このような特性を知っているのと知らないのとではプログラムを作成する際の注意力が他者と変わりますので、様々な文化に触れるようにしていきましょう。

バーコードリーダー専用通信ユニットN-L20とのシリアル通信プログラムの参考例を下記の記事にまとめてありますので参考にして下さい。

文字列転送やシリアル通信の送受信命令も登場します。

www.niwakafa.com

まとめ
・文字列を転送する時は” ”の中に文字を入れる
・英数字は1文字=1バイト、漢字は1文字=2バイト



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