FinsTCP

概略

PCはEthernet経由でFINSコマンドをPLCに送信することでPLCのメモリの値を読み書きすることができます
FinsTCPの場合はFINSフレームの前にFINS-TCPヘッダを付けて送信することになります
全体のメッセージは以下のようになります

FINS-TCPヘッダ FINSフレーム
Header LEN CMD Err FINSヘッダ FINSコマンド
'F' 'I' 'N' 'S'

ここではFinsTCPを使ってDMの値を読み出します
Com

PLCのIPアドレス 192.168.250.1
PCのIPアドレス 192.168.250.48
送信コマンドの内容 DM100から10CH分の値を読出す

PLCのメモリの値
+0 +1 +2 +3 +4 +5 +6 +7 +8 +9
DM100 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A

以下サンプルコードは同期通信でのやり方と非同期通信でのやり方をC#で書いてあります
フォームの作成(ボタンの配置など)は省略しているので適宜ボタンなどは配置してください

同期通信

同期通信はコマンド送信してから受信待ちの状態になります
受信タイムアウトは1000msとしているので1秒以内にレスポンスがなければ受信待ち状態から抜けます