現在、スマートライトのYouTubeチャンネルでNode-RED100本ノックという企画をやっております。
その第29回目に、ModbusRTUで制御できる安定化電源をNode-REDでコントロールする方法を紹介しました。
今回はここで紹介している楠川さんのブログに出ているNode-REDのフローをもとに、Modbusの学習をしていきたいと思います。
激安安定化電源を自動化して試験を楽にする(DPS3005をNode-REDで操作する)|電気/アンテナ/無線|技術開発|TechBLOG|Braveridge TechBLOG
全体のフロー
まずは全体のフローです。
Node-RED Dashboardから電圧・電流値を操作して、電源から出力させます。
電圧設定
電圧設定については、Dashboardで指定した電圧値が”Modbus Write”のノードに送られます。
debugノードをいれると、Modbus Writeにおくられるのはたとえば11.31Vであれば、1131という値がおくられています。
Modbus Writeノードでは、FCが”FC 6: Preset Single Register”となっています。
Modbusのサーバー側(modbus-clientノード)では、Baud rateが9600、Unit-Idが1となっています。
今度はModbus Writeから何がでているのかを確認。addressと電圧の値がでているようです。
よく見ると、Modbus writeノードには2つの出力があるので、両方ともみてみます。
上の出力には、valueとaddress以外にunitid、fc,quantityとmessageIdが追加されていました。
DPS3005のマニュアルで電圧設定の通信を確認
DPS3005のマニュアルの通信サンプルに、「ホストで電圧を24.00Vにする。(ファンクション0x06使用)」がありました。
ModbusRTUで制御できる激安電源DPS3005の通信マニュアルを和訳
先程のDebugノードの内容と比較すると
マニュアル | debug | 値 |
---|---|---|
Slave address | unitid | 1 |
Function code | fc | 6 |
Register address | address | 0 |
The value to write to the register |
value | 1124 |