問題タブ [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.

0 投票する
1 に答える
2820 参照

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」に変換する方法。

ありがとうございました!

0 投票する
2 に答える
6539 参照

modbus - ネットワーク内の modbus デバイスのスレーブ ID の自動検出

ブロードキャスト メカニズムを介して有効な IP 範囲を取得した後、ネットワークに接続されているデバイスが modbus デバイスであるかどうかを判断する方法、またはゲートウェイに接続されている modbus デバイスのスレーブ ID を自動検出する方法

0 投票する
1 に答える
1686 参照

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:

pyserialRxd と 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: