今回の記事ではRaspberry PI4にインストールされたCodesysに、Ethernet/IP Adapterを立ち上げ、Node-RedでEthernet/IP Scannerを立ち上げ通信します。
(X Twitterのリクエストより)
Node−RedのEthernet/IP ScannerはこちらのNodeを使用します。
https://serafintech.com/GettingStarted
さ、始めよう!
Install node
下記のコマンドでnode-red-contrib-eip-ioをインストールしてください。
npm install @serafintech/node-red-contrib-eip-io
Node-Redでeip-io in /eip-io out2つにノードが追加されました。
Implementation
Codesys Side
Codesys側では今回4 Bytes入出力だけ構築しましたが、アプリケーションに合わせて設定してください。
Reference Link
https://serafintech.com/GettingStarted
NodeRed Side
eip – io in Nodeを追加し、Codesys Ethernet/IP Adapterに関する接続設定を行います。
Connection>Add new eip-io connectionで新規Connectionを追加します。
こちらはAdapterの接続設定画面になります。
鉛筆アイコンをクリックします。
Nameで新規Connection名を設定します。
IP Address
Propertiesの画面に戻ります。
IPをEthernet/IP Adapterに合わせて設定してください。
RPI
RPI更新周期はアプリケーションやネットワーク負荷に合わせて設定してください。
Assembly Settings
次はAssembly 設定を行います。こちらは最終設定ですが、これから1つずつ説明していきます。
EZ-EDSツールを使ってEDS Fileを分析しましょう。
Config Assembly/Size
Config Assembly とConfig SzieをCodesysの場合、Assembly=102、Config Size=2に設定しましょう。
Input Assembly/Size
Input Assembly とInput SzieをCodesysの場合、Assembly=101、Input Size=4(今回の設定)に設定しましょう。
Output Assembly/Size
Output Assembly とOutput SzieをCodesysの場合、Assembly=100、Output Size=4(今回の設定)に設定しましょう。
Input Node
基本の接続設定が完了したら、Implicit Messageの中に取得したい入力データを設定します。下記の設定だと、4Bytesの中に、0 Byte目をUSINTタイプとして取り出します。
Output Node
Implicit Messageを経由してCodesysに渡したい出力データを設定します。下記の設定だと、4Bytesの中に、0 Byte目をUSINTタイプとPayloadで受け取ったデータを渡します。
もちろんScannerの設定項目では先程設定したAdapterを選びましょう。
Change Output Value
最後はCodesysにデータを出力するため、Inject Nodeを入れます。
msg.payllaodをCodesysに書き込みたい数値に設定します。
Flow
こちらは最終Flowになります。
Result
Done!Codesys側ではNode-redと接続されました。
Flowにも緑の”Connected”文字が表示されます。
下記の動画で動作確認できます。