rikuya-h
2025年3月28日 10時02分
お世話になっております。
Armadillo-IoT G4 にて開発を進めておりますが
RS-485通信を行う必要が出てきたため、以下のUSBとのコンバータを使用
https://www.switch-science.com/products/8426
RS-485通信にあまり知見が無く...試しに
PCとArmadillo-IoT G4間で通信させたく思うのですが
上手く通信させる事が出来ておりません。
ご教授頂けると大変助かります。
※PC(ドライバーインストール済み)及びArmadillo側でのコンバータ認識は出来ております。
コメント
rikuya-h
> アットマークテクノの下山です。
>
> まず、お互いのコンバータのA+・B+・GNDを接続した状態であることを確認してください。
> PC側のコンバータをTeratermなどで表示している場合は、改行コードを送信・受信ともにLFに設定してください。
>
> ■通信設定
> G4の通信設定を以下のように設定します
> ここでは、baudrateを115200として設定してます、PC側も同じbaudrateに設定してください
>
> armadillo:~# stty -F /dev/ttyACM0 speed 115200 parenb -parodd brkint ignpar -icrnl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke >
>
> ■G4から送信する場合
> 以下のコマンドでPC側に文字は表示されますでしょうか?
>
> armadillo:~# echo "hello" > /dev/ttyACM0 >
>
> ■G4が受信する場合
> 以下のコマンドを実行してから、PC側で文字入力+EnterでG4側のコンソールに文字は表示されますでしょうか?
>
> armadillo:~# while read var ; do echo $var ; done < /dev/ttyACM0 >
>
> よろしくお願いします
上記手順でPC側及びG4側で文字出力を確認出来ました!
ありがとうございます。
続けてで恐縮ですが、
これらで実験的にModbus Protocolを用いた通信を行いたいのですが、
どの様に設定し、操作すれば良いかもご教授頂けると大変助かります。
at_shota.shimoyama
rikuya-h
at_shota.shimoyama
> 実運用でもPythonを使用しようと考えていました。
> G4がマスター側になります。
本来はABOSDEでPythonプロジェクトから実行環境などを用意するのが望ましいのですが、
実験的に手っ取り早く確かめるなら、ABOS上に直接インストールしてスクリプトを実行することもできます。
■パッケージ等のインストール
armadillo:~# apk update armadillo:~# apk add python3 py3-pip armadillo:~# pip3 install pymodbus pyserial --break-system-packages
■スクリプト
例えばスレーブIDが1のデバイスの入力レジスタ0x07d0から10ワード読み取る(read_input_registers)処理は次のようになります。
そのあたりやbaudrateについては適宜変更してください。
from pymodbus.client import ModbusSerialClient client = ModbusSerialClient( port='/dev/ttyACM0', baudrate=115200, parity='N', stopbits=1, bytesize=8, timeout=3, ) if client.connect(): print("client.connect() OK") else: print("client.connect() Failed") exit() reg = client.read_input_registers(0x07d0, count=10, slave=1) if not reg.isError(): r = reg.registers print(r) else: print("Error read_input_registers 0x07d0") client.close()
また、/dev/ttyACM0がデバイスファイル名になるだけで、RS-485やModbus/RTUの使用方法においてArmadilloに固有の操作などは特にありませんので、インターネットから得られる一般的な情報を参考にできます。
PyModbusの使用方法などについては
https://pymodbus.readthedocs.io/en/v3.8.6/
などを参照してください。
at_shota.shimoyama
2025年3月28日 12時04分
アットマークテクノの下山です。
まず、お互いのコンバータのA+・B+・GNDを接続した状態であることを確認してください。
PC側のコンバータをTeratermなどで表示している場合は、改行コードを送信・受信ともにLFに設定してください。
■通信設定
G4の通信設定を以下のように設定します
ここでは、baudrateを115200として設定してます、PC側も同じbaudrateに設定してください
■G4から送信する場合
以下のコマンドでPC側に文字は表示されますでしょうか?
■G4が受信する場合
以下のコマンドを実行してから、PC側で文字入力+EnterでG4側のコンソールに文字は表示されますでしょうか?
よろしくお願いします