LS 産電 (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 / ポートをあらかじめ登録しておけば完了です。
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 bit (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 の例を参照してください。