Armadilloフォーラム

CH343G産業用USB/RS485双方向コンバータを利用したRS485通信設定

hiroki.nakatani

2024年10月1日 11時51分

先日、以下のコンバータをArmadilloに接続し、Node-REDにてModbus-Flex-Getterノードにて通信を行ったところ、/dev/ttyUSB0にて通信できました。
WINGONEER USB 2.0 to RS485シリアルコンバータアダプタCP2104 SN75176 FUSE + TVS, FT232よりも安定した二重保護
https://www.amazon.co.jp/WINGONEER-RS485%E3%82%B7%E3%83%AA%E3%82%A2%E3%…

長期運用を考慮して、以下のコンバータに変更してNode-REDにてModbus-Flex-Getterノードにて通信を行ったところ、/dev/ttyACM0に対し通信が失敗しました。
原因と対処について教えてください。

CH343G産業用USB/RS485双方向コンバータを利用したRS485通信設定
https://www.switch-science.com/products/8426?srsltid=AfmBOoobR9RoFMcG-f…

■Node-Redでのデプロイ直後のエラー
Error: Error: Operation not permitted, cannot open /dev/ttyACM0

■Armadillo内のコマンド結果
armadillo:~# ls -la /dev/tty*
crw-rw-rw- 1 root tty 5, 0 Jan 1 1970 /dev/tty
crw--w---- 1 root tty 4, 0 Jan 1 1970 /dev/tty0
crw--w---- 1 root root 4, 1 Oct 1 10:50 /dev/tty1
crw--w---- 1 root tty 4, 10 Jan 1 1970 /dev/tty10
crw--w---- 1 root tty 4, 11 Jan 1 1970 /dev/tty11
crw--w---- 1 root tty 4, 12 Jan 1 1970 /dev/tty12
crw--w---- 1 root tty 4, 13 Jan 1 1970 /dev/tty13
crw--w---- 1 root tty 4, 14 Jan 1 1970 /dev/tty14
crw--w---- 1 root tty 4, 15 Jan 1 1970 /dev/tty15
crw--w---- 1 root tty 4, 16 Jan 1 1970 /dev/tty16
crw--w---- 1 root tty 4, 17 Jan 1 1970 /dev/tty17
crw--w---- 1 root tty 4, 18 Jan 1 1970 /dev/tty18
crw--w---- 1 root tty 4, 19 Jan 1 1970 /dev/tty19
crw--w---- 1 root root 4, 2 Oct 1 10:50 /dev/tty2
crw--w---- 1 root tty 4, 20 Jan 1 1970 /dev/tty20
crw--w---- 1 root tty 4, 21 Jan 1 1970 /dev/tty21
crw--w---- 1 root tty 4, 22 Jan 1 1970 /dev/tty22
crw--w---- 1 root tty 4, 23 Jan 1 1970 /dev/tty23
crw--w---- 1 root tty 4, 24 Jan 1 1970 /dev/tty24
crw--w---- 1 root tty 4, 25 Jan 1 1970 /dev/tty25
crw--w---- 1 root tty 4, 26 Jan 1 1970 /dev/tty26
crw--w---- 1 root tty 4, 27 Jan 1 1970 /dev/tty27
crw--w---- 1 root tty 4, 28 Jan 1 1970 /dev/tty28
crw--w---- 1 root tty 4, 29 Jan 1 1970 /dev/tty29
crw--w---- 1 root root 4, 3 Oct 1 10:50 /dev/tty3
crw--w---- 1 root tty 4, 30 Jan 1 1970 /dev/tty30
crw--w---- 1 root tty 4, 31 Jan 1 1970 /dev/tty31
crw--w---- 1 root tty 4, 32 Jan 1 1970 /dev/tty32
crw--w---- 1 root tty 4, 33 Jan 1 1970 /dev/tty33
crw--w---- 1 root tty 4, 34 Jan 1 1970 /dev/tty34
crw--w---- 1 root tty 4, 35 Jan 1 1970 /dev/tty35
crw--w---- 1 root tty 4, 36 Jan 1 1970 /dev/tty36
crw--w---- 1 root tty 4, 37 Jan 1 1970 /dev/tty37
crw--w---- 1 root tty 4, 38 Jan 1 1970 /dev/tty38
crw--w---- 1 root tty 4, 39 Jan 1 1970 /dev/tty39
crw--w---- 1 root root 4, 4 Oct 1 10:50 /dev/tty4
crw--w---- 1 root tty 4, 40 Jan 1 1970 /dev/tty40
crw--w---- 1 root tty 4, 41 Jan 1 1970 /dev/tty41
crw--w---- 1 root tty 4, 42 Jan 1 1970 /dev/tty42
crw--w---- 1 root tty 4, 43 Jan 1 1970 /dev/tty43
crw--w---- 1 root tty 4, 44 Jan 1 1970 /dev/tty44
crw--w---- 1 root tty 4, 45 Jan 1 1970 /dev/tty45
crw--w---- 1 root tty 4, 46 Jan 1 1970 /dev/tty46
crw--w---- 1 root tty 4, 47 Jan 1 1970 /dev/tty47
crw--w---- 1 root tty 4, 48 Jan 1 1970 /dev/tty48
crw--w---- 1 root tty 4, 49 Jan 1 1970 /dev/tty49
crw--w---- 1 root root 4, 5 Oct 1 10:50 /dev/tty5
crw--w---- 1 root tty 4, 50 Jan 1 1970 /dev/tty50
crw--w---- 1 root tty 4, 51 Jan 1 1970 /dev/tty51
crw--w---- 1 root tty 4, 52 Jan 1 1970 /dev/tty52
crw--w---- 1 root tty 4, 53 Jan 1 1970 /dev/tty53
crw--w---- 1 root tty 4, 54 Jan 1 1970 /dev/tty54
crw--w---- 1 root tty 4, 55 Jan 1 1970 /dev/tty55
crw--w---- 1 root tty 4, 56 Jan 1 1970 /dev/tty56
crw--w---- 1 root tty 4, 57 Jan 1 1970 /dev/tty57
crw--w---- 1 root tty 4, 58 Jan 1 1970 /dev/tty58
crw--w---- 1 root tty 4, 59 Jan 1 1970 /dev/tty59
crw--w---- 1 root root 4, 6 Oct 1 10:50 /dev/tty6
crw--w---- 1 root tty 4, 60 Jan 1 1970 /dev/tty60
crw--w---- 1 root tty 4, 61 Jan 1 1970 /dev/tty61
crw--w---- 1 root tty 4, 62 Jan 1 1970 /dev/tty62
crw--w---- 1 root tty 4, 63 Jan 1 1970 /dev/tty63
crw--w---- 1 root tty 4, 7 Jan 1 1970 /dev/tty7
crw--w---- 1 root tty 4, 8 Jan 1 1970 /dev/tty8
crw--w---- 1 root tty 4, 9 Jan 1 1970 /dev/tty9
crw-rw---- 1 root dialout 166, 0 Oct 1 11:24 /dev/ttyACM0
crw------- 1 root root 207, 18 Oct 1 11:49 /dev/ttymxc2
crw-rw---- 1 root dialout 207, 20 Jan 1 1970 /dev/ttymxc4

armadillo:~# stty -F /dev/ttyACM0 -a
speed 9600 baud;stty: /dev/ttyACM0
line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ;
eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke -flusho -extproc

コメント

at_reika.yamazaki

2024年10月1日 13時37分

お世話になっております。山崎です。

こちら弊社の Node-RED コンテナを利用しているという認識で回答します。
誤りの場合はご使用の環境に読み替えていただけますと幸いです。

エラー内容をみるに Node-RED コンテナ内から /dev/ttyACM0 が見えていないのだと思われます。
Node-RED コンテナ設定ファイルに /dev/ttyACM0 を渡すように修正します。
/etc/atmark/containers/node-red.conf に、以下を追加してください。

add_devices /dev/ttyACM0

記入後はコンテナ設定ファイルを persisit_file コマンドを使って保存し、Node-RED コンテナを再起動してください。

persist_file -rv /etc/atmark/containers/node-red.conf
podman_start node-red

Node-RED コンテナのエラーに変化があるかご確認ください。

以上、どうぞよろしくお願いいたします。

hiroki.nakatani

2024年10月1日 14時59分

山崎様

お世話になっております。早速のご回答ありがとうございます。

> こちら弊社の Node-RED コンテナを利用しているという認識で回答します。
→ご認識の通りです。

ご回答いただいた内容にて設定を行った結果、エラーが解消しました。
Modbus通信も正常に行えております。ありがとうございました。