LS ELECTRIC XGI / XBC / XBM
LS ELECTRIC (旧LS産電) の XGI / XBC / XBM PLCシリーズと FEnet (Fast Ethernet) 標準プロトコルで通信します。
XGTシリーズで最も一般的に使われる通信方式で、ICMP (ping) 到達性を先に確認してから、実際の通信を開始します。
登録フォームの入力値
| 入力欄 | 何を書くか | 例 |
|---|---|---|
| IPアドレス | PLC の FEnet モジュール IP | 192.168.0.80 |
| ポート | FEnet ポート | 2004 (XGT デフォルト) |
| 接続タイムアウト (connect-timeout) | 接続試行の最大時間 (ms) | 3000 |
| 読み取りタイムアウト (read-timeout) | 読み取り応答の最大時間 (ms) | 3000 |
| チェックサム使用 (use-checksum) | BCC チェックサムオプション | 通常 false |
| ビットインデックス16進使用 (use-hex-bit-index) | ビット番号を16進で解釈するか | 通常 false。P 領域で F のような16進インデックスを使う場合のみ true |
PLC 側の設定は、XG5000 で FEnet モジュールの IP / ポートをあらかじめ登録しておけばOKです。
ping 検査
LS PLC は通信試行前に、ゲートウェイが ping で到達可能かどうかを先に確認します。社内ネットワークで ICMP (ping) がブロックされていると、正常な PLC でも “Ping failed” と表示されるため、ファイアウォールポリシーを確認してください。
タグの PLC アドレス表記
LS PLC では短い形式 (D00309) を推奨しており、ゲートウェイが自動的に標準形式 (%DW00309) に変換します。
メモリ領域
| 文字 | 領域 |
|---|---|
D | Data Register — 最も一般的 |
M | Memory (メモリビット) |
K | Keep Relay |
F | Flag |
T | Timer |
C | Counter |
R | (シリーズにより異なる) |
P | I/O |
表記例
| 表記 (短い形式) | 意味 |
|---|---|
D00309 | Data Register 309 (16-bit) |
D00600 | Data Register 600 (32-bit で使うには [形式補助] に DW を指定) |
M02704 | Memory bit 2704 |
P0001F | I/O ビット (16進インデックス使用時) |
LS の同じアドレスを 16-bit / 32-bit / 64-bit / 実数として多様に解釈できるため、[形式補助] が重要です。
データ形式マッチング
| PLC の値 | データ形式 | 形式補助 | PLC アドレス例 |
|---|---|---|---|
| ビット (M, K, T, P) | Boolean | (空欄) | M02704 |
| ワード内の特定ビット | Boolean | BIN[3] (3番目のビット) | D00309 |
| 16-bit 整数 | Integer | (空欄) | D00309 |
| 16-bit 符号なし | Integer | UI | D00300 |
| 32-bit 整数 | Integer | DW | D00600 (D00600~D00601 を使用) |
| 32-bit 符号なし | Integer | UDW | D00690 |
| 64-bit 整数 | Long | (空欄) | D00700 |
| 32-bit 実数 (最も一般的な実数型) | Float | REAL | D00450 |
| 64-bit 実数 | Double | LREAL | D00500 |
| 文字列 N ワード (= 2N 文字) | String | STR[N] | D00500 |
32-bit なのに形式補助を空欄にすると?
16-bit として誤って読み取られ、値が全く別の数字になります。32-bit 整数なら DW、32-bit 実数なら REAL を必ず指定してください。
よくある問題と解決策
| 症状 / メッセージ | 考えられる原因 | 解決策 |
|---|---|---|
| “Ping failed” | ICMP ブロック環境 | ファイアウォールで ICMP を許可。ダメならシステム管理者へ |
| “Connect failed” | FEnet モジュール停止、ポート不一致 | XG5000 で FEnet モジュールの IP/ポート (2004) を確認 |
| 32-bit 値が異常 | 形式補助を空欄にした | DW (整数) / REAL (実数) を指定 |
| ビットが読み取れない | D00100 で登録した (D はワード領域) | M02704 のようなビット領域を使用。または format=BIN[3] でワード内のビットを抽出 |
| 文字列の文字化け | LS が low-byte-first で送信する特性 | ゲートウェイが自動処理します。外部ツールで直接デコードする際は注意 |
よく使う例
一般的なライン PLC 登録
| タグ名 | PLC アドレス | データ形式 | 形式補助 |
|---|---|---|---|
| 稼働ビット | M02704 | Boolean | (空欄) |
| カウンター (16-bit) | D00309 | Integer | (空欄) |
| 累積生産量 (32-bit) | D00600 | Integer | DW |
| 圧力 (実数) | D00100 | Float | REAL |
| 圧力 (kPa, 変換) | D00100 | Float | REAL (計算式 ${VALUE}*0.1) |
| バッチ名 (10ワード) | D00500 | String | STR[10] |
ワード内のビット抽出
同じワード内に複数のビット信号がまとまっている場合、BIN[비트번호] で1行ずつ登録できます。
| タグ名 | PLC アドレス | データ形式 | 形式補助 |
|---|---|---|---|
| Bit 0 | D00309 | Boolean | BIN[0] |
| Bit 3 | D00309 | Boolean | BIN[3] |
| Bit 15 | D00309 | Boolean | BIN[F] (16進 F = 15) |
use-hex-bit-index=true で PLC 登録オプションを設定すると、16進インデックス(F など)が使用可能になります。
より詳細な例 / 自動化登録
上級 — REST API の LS の例を参照してください。