OMRON FINS
FINS (Factory Interface Network Service) は、日本の OMRON PLC の標準通信プロトコルです。CJ / CS / CP / NJ / NX シリーズなど、OMRON のほぼすべてのシリーズが FINS/TCP または FINS/UDP に対応しています。
自動車部品/飲食料品/医薬品パッケージングラインで頻繁に見られる PLC です。
登録フォームの入力値
| 入力欄 | 何を入力するか | 例 |
|---|---|---|
| IP アドレス | PLC の IP | 192.168.0.110 |
| ポート | FINS ポート | 9600 (標準) |
| ネットワーク番号 (network) | FINS ネットワーク番号 | 0 (単一ネットワーク) |
| ノード番号 (node) | PLC のノード番号 | 通常は IP の最終オクテット (110) |
| ユニット番号 (unit) | マルチ CPU 環境の unit | 0 |
PLC の CX-Programmer / Sysmac Studio で [内蔵イーサネット設定] → FINS/TCP または FINS/UDP が有効になっている必要があります。
ノード番号の正解
OMRON では一般に IP の最終オクテットをノード番号として使用します (例: 192.168.0.110 → ノード 110)。ただし CX-Programmer の [PLC 設定] → [内蔵イーサネット] で任意に変更できるため、PLC 画面の値に従ってください。
タグの PLC アドレス表記
OMRON のメモリ領域と短縮表記:
| 表記 | 領域 | 備考 |
|---|---|---|
D100 | Data Memory 100 | 最も一般的、16-bit |
W50 | Work Area 50 | 16-bit |
H10 | Holding Area 10 | 16-bit、電源 OFF 後も保持 |
A100 | Auxiliary Area | 16-bit |
CIO0 | Core I/O word 0 | 16-bit |
CIO0.5 | CIO word 0 の bit 5 | 1 ビット |
E0_100 | Extended DM bank 0, addr 100 | 16-bit |
ビット / ワード表記
<area><number>→ 16-bit ワード (例:D100)<area><number>.<bit>→ ビット (例:CIO0.5)<area><number>:<data-type>→ データ型の明示 (例:D100:DINT)
データ形式のマッチング
| PLC の値 | データ形式 | 形式補助 | PLC アドレス例 |
|---|---|---|---|
| ビット (CIO bit / W bit) | Boolean | (空欄) | CIO0.5, W50.0 |
| 16-bit 整数 | Integer | (空欄) | D100 |
| 16-bit 符号なし | Integer | UI | D100 |
| 32-bit 整数 (D100~D101) | Integer | DW | D100 |
| 32-bit 実数 | Float | REAL | D200 |
| 64-bit 実数 | Double | LREAL | D300 |
| 文字列 (BCD/ASCII) | String | STR[N] | D500 |
OMRON は 32-bit データを 2 ワード一組 で格納します (例: D100 = lower、D101 = upper)。DINT / REAL を使用する場合は、十分な余裕ワードを空けておいてください。
よくある問題と解決
| 症状 / メッセージ | 考えられる原因 | 解決 |
|---|---|---|
| "Connection refused" | FINS が無効 | CX-Programmer / Sysmac Studio で FINS/TCP または FINS/UDP を有効化 |
| "Network not found" / "Node not found" | network/node 番号の不一致 | PLC の [内蔵イーサネット設定] のネットワーク/ノード値をそのまま入力 |
値が常に 0 | 領域の mismatch (D なのに W で読んでいる等) | マニュアルで「FINS メモリ領域コード」を再確認 |
| 32-bit 実数が壊れる | 2 ワードの順序 (LSWORD/MSWORD) の違い | 形式補助に REAL (既定) で試し、不可なら REAL_LSWORD_FIRST |
よく使う例
| タグ名 | PLC アドレス | データ形式 | 形式補助 |
|---|---|---|---|
| 運転フラグ | CIO0.0 | Boolean | (空欄) |
| 生産カウンタ | D100 | Integer | (空欄) |
| 圧力 (kPa) | D200 | Float | REAL |
| 累積時間 (h) | D102 | Integer | DW |
| バッチ ID | D500 | String | STR[10] |
より詳しい例 / 自動登録
高度 — REST API の FINS 例を参照してください。