ModbusTCP MasterはCodesysから立ち上げます。詳しくこちらへ。
では、ここからはMODBUSTCPのClientをTIA(シーメンス)から実装します。やり方はServerとあまり変わりません。
注意したいのはMB_MODE・MB_DATA_ADDR・MB_DATA_PTRです。
MB_MODEはServerとやり取りしたいRegisterの種類によって値を変換します。
下図はOnline Helpから一部切り落としたものですが、
MB_MODE=103、MB_DATA_ADDR=0、MB_DATA_LEN=10だと、
Holding Register0から10を読み取るのイメージになります。
そしてMB_DATA_PRTはVarient変数で、つまりなんでもいいと近いですね。
アプリケーションによりますが、私はより配列のByteを入れます。
CONNECTはMasterを構築すると同じく、IPなどの設定になります。
ここはあまり詳しく説明しません。
こちらのコードはMODEなどを設定します。
そしてMB_CLIENTを呼び出します。
REQを立つと、繋がっていればDONEがONになり、COUNTが++されます。
Codesys側になにかデータを書き込みます。
そしてこっちらはDeserialize関数を使ってデータ整えた形に変換します。
ですが、Byteの配列を見たら、Codesys側と逆になっています。SmallとBigと違いですね。
ここでCodesysをSwapします。
http://www.plctalk.net/qanda/showthread.php?t=97800
うん、データが大丈夫そうですね。
はーい、お疲れ様です。