問題タブ [minimalmodbus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python: uint16_t の配列を文字列に変換します (RS-485 経由の Arduino から)
modbus rtu 経由で json を送信しようとしています (modbus の使い方が非常に悪いことはわかっています)。
Arduino USBをCOM5としてPCに接続し、USB-RS485に接続されたRS485コンバータをCOM4としてPCに接続しました。
QModBusアプリケーションを使用して Arduino からデータを読み取ると、大量のバイト (COM4) が表示されます。
制御用: QModBus から「保持レジスタの読み取り」を送信した後、「Arduino USB ポート」(COM5) の Arduino シリアル モニタは有効な文字列を出力します。つまり、modbus バイトは問題ないということです。
私のArduinoコードがあります:
しかし、これらのバイトをPythonでjson文字列に変換する方法がわかりません。私のコード:
コードは QModBus と同じ値を出力します:
arduinoのシリアルモニターでわかるように、これらの数値をjson文字列に変換するにはどうすればよいですか?
また、modbus 経由で送信するために Python 文字列を「uint_16t」に変換する方法。
ありがとうございました!
modbus - ネットワーク内の modbus デバイスのスレーブ ID の自動検出
ブロードキャスト メカニズムを介して有効な IP 範囲を取得した後、ネットワークに接続されているデバイスが modbus デバイスであるかどうかを判断する方法、またはゲートウェイに接続されている modbus デバイスのスレーブ ID を自動検出する方法
python - pyserial/Modbus - トラブルシューティング「機器との通信がありません」
ビーグルボーン ブラック ワイヤレス: Ubuntu 16.04、
コンピューター: Ubuntu 16.04、
パイソン 3.5.2
Beaglebone Black を使用して Modbus 経由でデバイスと通信しようとしています。を使用して USB/RS485 ドングルでこれと同じことをしている人を読んだことがありますminimalmodbus
。設定を変更してみました。考えられるすべてのボーレート、短いケーブルなど。このタイプの作業のために設定する必要がある/設定が間違っている何かが Beagle 内にあるに違いありません。
コード
... USB/RS485ドングルを使用。このドングルとコードの組み合わせを使用すると、私のコンピューターでは (過去 4 か月間) 完璧な結果が得られますが、今日の Beagle ではそうではありません。
コンピューター: 受信したメッセージ:
Beagle : エラーを受け取りました:
トラブルシューティングの可能な手段を探しています。ケーブルが長すぎず、USB ドングルも問題ないことを確認しました。コードの問題も除外しました。
lsusb
編集 1: を含めるのを忘れたls /dev/ttyUSB*
:
と
/dev/ttyUSB0
編集2:
pyserial
Rxd と Txd の + 端子と - 端子を使用して短絡することで、ループバック セットアップを実現できます。
編集3:
考えられるすべての配線構成を試しました。コンピューター上で機能する構成は 1 つだけです (Tx+ -> A および Tx- -> B)。デバッグ機能を使用しているminimalmodbus
ときに、Beagle とコンピューターのデバイスに同じメッセージが送信されていることがわかります ( '\x01\x03\x07Ø\x00\x02ED' (01 03 07 D8 00 02 45 44)
)。コンピュータは応答を受信しますが、ビーグルは受信しません。
ビーグルはアダプターを に問題なく取り付け/dev/ttyUSB0
ます。
編集4:
@Carlo Zanocco は次の出力を要求しましたls /dev/ | grep tty
編集5:
の出力stty -F /dev/ttyUSB0 -a
: