【Modbus TCP】FA通信のハマりどころ|TCPの再接続とUDPを考える
esb-system
0:00 / 0:00
【Modbus TCP】FA通信のハマりどころ|TCPの再接続とUDPを考える
337 просмотров · 2 недели назад
esb-system
356 подписчиков
337 просмотров · 2 недели назад
💡【FA通信は「切れてから」が本番!?】
PLCがない設備でも、Modbus TCPに対応した機器なら、PCやラズパイから直接データを取得できます。
今回はオムロンのDC電源「S8VK-X」を例に、Modbus TCPでデータを取得しながら、FA通信で地味にハマりがちな「通信異常からの復旧」について考えてみます。
特にTCP通信では、通信相手とのコネクションを維持するため、通信が突然切れたときにハーフオープン状態などが絡み、再接続処理が複雑になることがあります。
LANケーブルを抜いて通信異常を再現し、Socketの破棄・再生成による自動再接続を実装。
さらに、TCPの3-way handshakeやKeepAliveにも触れながら、「正常に通信できるか」だけではなく、「通信が切れたとき、どう復旧するのか」まで考えることの重要性を見ていきます。
そして、同じModbusのコマンドをUDPでも試してみると……まさかの通信成功!?
TCPとUDP、どちらが優れているという話ではありません。
TCPは「接続状態を管理する」面倒。
UDPは「応答が届いたことを保証する」面倒。
どちらも面倒ですが、面倒の種類が違います。
FA設備の通信方式を考えるとき、正常時の通信だけでなく、通信異常が起きたときの復旧方法まで考えてみませんか?
⚠️ なお、今回使用したオムロン「S8VK-X09024A」では、マニュアルにModbus TCPの説明しかありませんが、実験ではUDPでもレスポンスが返ってくることを確認しました。
Modbus TCPに対応した機器なら、どんな機器でもUDPで通信できるという意味ではありません。
今回のUDP通信は、あくまで「S8VK-X09024Aで実際に試してみたら通信できた」という実験結果です。
実運用する場合は、メーカー仕様を確認したうえで、十分な連続耐久試験などを行ってください。
🎬 動画の内容をさらに掘り下げたnote記事はこちら
「FA通信は『切れてから』が本番」をテーマに、TCPのハーフオープンやFA機器ごとの復旧挙動、TCPとUDPの「面倒の種類の違い」についてまとめています。
👉 https://note.com/esb_system
🕒 タイムスタンプ
00:00 はじめに:PLCなしでModbus TCP通信
01:22 Modbus TCPでデータを取得してみる
02:40 TCPの通信異常と自動再接続
05:14 TCPの3-way handshakeとKeepAlive
07:41 FA通信は「切れてから」が本番
08:41 UDPなら再接続はどうなる?
10:04 TCPとUDPの「面倒の種類」を考える
📌 今回の重要トピック
・Modbus TCPでPLCなしにFA機器からデータを取得
・TCP通信で通信異常が起きたときの自動再接続
・TCPのハーフオープン状態
・Socketを破棄して新しいSocketで再接続する設計
・TCPの3-way handshakeとKeepAlive
・UDPにはコネクションがないという特徴
・TCPとUDPは「面倒の種類」が違う
・FA通信では正常時だけでなく「通信が切れたとき」まで考える
🔩 主な使用機器・開発環境
・TypeScript / Node.js
・オムロン DC電源 S8VK-X09024A
・Modbus TCP / UDP
・PC
・Ethernet
💡FAチャンネルとは
FA(工場の自動化)をテーマにした専門チャンネル
PLCと連携するPCプログラム・業務端末アプリ開発やDB設計など
実例を交えた技術解説を公開中!!
動画が参考になった!と思っていただけましたら、ぜひ「高評価」と「チャンネル登録」をよろしくお願いいたしますっ!
📺チャンネル: / @esb-system
📨 お問い合わせはこちら!(📽️限定公開の動画あり📽️)
→ https://esb-system.com
📜 動画で語れなかったことはnoteで!
→ https://note.com/esb_system/n/n5f5777...
#Modbus #ModbusTCP #TCP #UDP #FA #PLC #IoT #ラズパイ #データ収集 #見える化 #データ化 #typescript #nodejs #factoryautomation #DX #工場 #改善 #製造業 #制御設計 #エンジニア