modbusTCP または modbus シリアル経由で modbus スレーブと通信しようとしています。メーカー。(partlow) には ASCII 通信マニュアル ( http://www.partlow.com/uploadedFiles/Downloads/1160%20ASCII%20Comms%20Manual.pdf ) があり、標準の通信方法 ( http://en ) とは異なるようです。 .wikipedia.org/wiki/Modbus )。そこにある多くの既存のコードは、コイルなどの通常の modbus アドレス指定で動作するようにセットアップされていますが、(少なくとも私には) これらの人たちとは異なるようです。
では、ruby や perl 経由で 16 進データを送信するにはどうすればよいでしょうか。うまくいっているのかもしれませんが、シリアルポートに「0DFA」と書き込んでしまうと……大丈夫ですか?または、最初に下位レイヤーに変換する必要がありますか、それとも何らかの方法でそれを示す必要がありますか?
これに多くの作業を行っていて、自分自身が混乱している可能性があります (物事を実際よりも複雑にするため)。しかし、私はこのメーターで通信を確立しようとしています。TX アクティビティ ライトが点滅しているのに RX が表示されていません。私のデータ形式が間違っていることを意味します...
ほとんどこれに取り組んでいます(そして、いくつかのperlスニペットがあちこちにあり、機能するものを見つけようとしています): http://www.messen-und-deuten.de/modbus.html
modbusTCP(このスクリプトが使用する)を受け入れるターミナルサーバーを介して通信していますが、通信マニュアルの内容を上記のコードに適用して、パケットを正しくフォーマットするのに問題があります。