Перейти к содержимому

【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 #工場 #改善 #製造業 #制御設計 #エンジニア