OMRONのPLCとFinsコマンドで接続する
ダウンロード
概略
OMRONのPLCのEthernetポートに対してメッセージ(Finsコマンド)通信を行いPLCの状態やメモリの読み書きをします。
FINSコマンドとは
FINSコマンドはオムロン共通のネットワークメッセージサービスのコマンド体系です。
FinsコマンドをEthernetまたはControllerLinkまたは上位リンクなどで接続しているオムロン製機器に送信することでコマンドに対するレスポンスを受信することができます。
また、CPUユニット以外にも高機能ユニットにも送信出来ます。
ネットワーク中継機能を使って3階層のネットワークを超えてアクセスすることが可能です。
マニュアル
FINSマンドの説明は
通信コマンドリファレンスマニュアルを参照してください
FINS/UDPとFINS/TCPでの送信の仕方は
Ethernetユニットユーザーズマニュアル(アプリケーション構築編)の
「第7章FINS 通信上位アプリケーション作成」を参照してください
Finsファンクションブロック
KV8000シリーズのソケット通信機能を使ってOMRONのPLCとUDP/IP接続するためのファンクションブロックを作成したので使い方を説明します
FB一覧
| FinsRead | メモリエリアの読出し |
| FinsWrite | メモリエリアの書込み |
| FinsFill | メモリエリアの一括書き込み |
| FinsRun | 動作モード変更 |
| FinsStop | プログラムモードに変更 |
| FinsUnitType | CPUユニット情報の読出し |
| FinsSetClock | 時間情報の書込み |
| FinsUdp | FinsUdp通信 |
FB共通入出力
入力
| EN | BOOL | 起動 |
| UnitNo | UINT | ユニット番号 |
| SocketNo | UINT | ソケット番号 |
| SocketSetting | UINT[8] | U_SOPENの設定データ |
| FinsAddress | sFinsAddress | FINSアドレス |
出力
| ENO | BOOL | 起動 |
| Busy | BOOL | 実行中 |
| Done | BOOL | 正常終了 |
| Error | BOOL | 異常終了 |
| SocketStatus | UINT[12] | U_SSTATで読み出すソケット処理ステータス |
| EndCode | UINT | FINS終了コード |
配列
| [0] | 自ポート番号 |
| [1] | 送信先IPアドレス(1byte目) |
| [2] | 送信先IPアドレス(2byte目) |
| [3] | 送信先IPアドレス(3byte目) |
| [4] | 送信先IPアドレス(4byte目) |
| [5] | 送信先ポート番号 |
| [6] | 要求タイムアウト(ms) |
| [7] | UDP送信フラグ |
構造体
| sFinsAddress | |||
| SrcNet | UINT | 送信元ネットワークアドレス | |
| SrcNode | UINT | 送信元ノードアドレス | |
| SrcUnit | UINT | 送信元号機アドレス | |
| DstNet | UINT | 送信先ネットワークアドレス | |
| DstNode | UINT | 送信先ノードアドレス | |
| DstUnit | UINT | 送信先号機アドレス | |
FinsRead (メモリエリアの読出し)
コマンドコード : 0101
連続したI/O メモリエリアの内容を読み出します
FinsWrite (メモリエリアの書込み)
コマンドコード : 0102
連続したI/O メモリエリアにデータを書き込みます
FinsFill (メモリエリアの一括書き込み)
コマンドコード : 0103
連続したI/O メモリエリアに同一のデータを書き込みます
FinsRun (動作モード変更)
コマンドコード : 0401
CPUユニットの動作モードを「モニタ」または「運転」モードに変更します
FinsStop (プログラムモードに変更)
コマンドコード : 0402
CPUユニットの動作モードを「プログラム」モードに変更します
FinsUnitType (CPUユニット情報の読出し)
コマンドコード : 0501
CPUユニットの情報を読み出します
CPUユニットの情報
| CPUユニットの形式 | 20byte |
| CPUユニットの内部システムのバージョン | 20byte |
| システム情報 | 40byte |
| エリア情報 | 12byte |
FinsSetClock (時間情報の書込み)
コマンドコード : 0702
時間情報を書き込みます (KV8000の時計データを書き込みます)
FinsUdp (Fins通信 UDP)
FINSコマンドを送受信します
実装
1. 「SampleFinsUdp.zip」または「FinsUdp.kufb」をダウンロードし、KV STUDIOでプロジェクトに追加します。
2. KV8000のIPアドレスはOMRON PLCのEthernetポートと同じネットワーク内に設定してください。
3. KV8000のソケット機能を有効にします
4. 使用するソケットを「UDP」に設定します
5. PLC間の通信を確認するために、FinsUnitTypeのFBを使用してOMRONのPLCの形式を読み出してみます
6. 上記のようにDoneがONになりPLCの形式が読み出せたら正常に接続できています
うまくいかない場合は「SampleFinsUdp.zip」を使って OMRON PLCのIPアドレスを 192.168.250.1 にし、KVのIPアドレスを 192.168.250.31 にして実行してみてください


