シーメンス S7
シーメンス (SIEMENS) SIMATIC S7 シリーズの標準通信規約 (ISO-on-TCP / S7 プロトコル) で通信します。
対応シリーズ: S7-300 / S7-400 / S7-1200 / S7-1500 (+ S7-200 / S7-200 SMART / SINUMERIK 828D)
登録フォームの入力値
| 入力欄 | 記入内容 | 例 |
|---|---|---|
| IP アドレス | PLC の IP | 192.168.0.70 |
| ポート | S7 通信ポート | 102 (標準 / 変更は非推奨) |
| Controller Type (controller-type) | PLC シリーズ | S7_400 (デフォルト) / S7_300 / S7_200 / S7_200_SMART / S7_1200 / S7_1500 / SINUMERIK_828D |
| Rack (local-rack) | rack 番号 | 通常 0 |
| Slot (local-slot) | CPU slot 番号 | シリーズごとに異なる (下表参照) — 未指定時は 3 |
| マルチリード (multi-read) | チャンク単位で 1 往復一括読み出しを使用するか | チェック時 true (デフォルトは未使用 — タグ単位の個別読み出し) |
| マルチリード最大アイテム数 (multi-read-max-items) | チャンクあたりのアイテム数上限 | 18 (デフォルト、PDU 240 の予算) |
シリーズ別 rack / slot
| シリーズ | rack | slot |
|---|---|---|
| S7-300 | 0 | 2 |
| S7-400 | 0 | 3 (CPU スロットにより異なる場合あり) |
| S7-1200 | 0 | 0 (または 1) |
| S7-1500 | 0 | 0 (または 1) |
TIA Portal 側の事前設定
シーメンス PLC はセキュリティ上、外部から値を読み出すには以下の設定が必要です。
- TIA Portal で PLC のプロパティ → Protection & Security → “Permit access with PUT/GET communication from remote partner” を有効化
- データブロック (DB) のプロパティ → Optimized block access を OFF (絶対アドレスモードに変更)
この 2 つが設定されていないと “Address out of range” または “Connection rejected” が発生します。
タグの PLC アドレス表記
シーメンス標準のメモリ表記をそのまま使用します。% で始まります。
| 表記 | 意味 |
|---|---|
%DB1.DBX0.0 | DB1 の byte 0 の bit 0 (ブール値) |
%DB1.DBB0 | DB1 の byte 0 (8-bit) |
%DB1.DBW0 | DB1 の word 0 (16-bit) |
%DB1.DBD0 | DB1 の double word 0 (32-bit / 実数) |
%I0.0 | 入力ビット 0.0 |
%Q0.0 | 出力ビット 0.0 |
%M0.0 | メモリビット 0.0 |
%MW100 | メモリ word 100 |
%MD100 | メモリ double 100 (32-bit) |
% なしでも動作はしますが、マニュアルや他ツールとの一貫性のため % を付けることを推奨します。
データ形式の対応
| PLC の値 | データ形式 | 形式補助 | PLC アドレス例 |
|---|---|---|---|
| ブール (Bool) | Boolean | (空欄) | %DB1.DBX0.0, %I0.0, %M0.0 |
| 8-bit | Integer | B | %DB1.DBB0 |
| 16-bit 整数 | Integer | (空欄) | %DB1.DBW0, %MW100 |
| 32-bit 整数 | Integer | DW | %DB1.DBD0, %MD100 |
| 32-bit 実数 (最も一般的な実数型) | Float | REAL | %DB1.DBD0 |
| 64-bit 実数 | Double | LREAL | %DB1.DBD8 |
| 文字列 (S7 STRING) | String | STR[N] | %DB1.DBB100 |
Bool 表記の確認
Bool は必ず %DB1.DBX{byte}.{bit} 形式です。末尾の .0 ~ .7 を忘れないでください。
よくある問題と解決
| 症状 / メッセージ | 考えられる原因 | 解決 |
|---|---|---|
| “Connection refused” | ポート 102 の遮断、PUT/GET が無効 | TIA Portal で PUT/GET 通信の許可を有効化 |
| “Connection rejected by remote” | rack/slot の不一致 | 上表を参照して rack/slot を修正 |
| “Address out of range” | DB が Optimized モード (絶対アドレスモードでない) | TIA Portal で DB プロパティ → Optimized block access を OFF |
すべての値が 0 | DB 番号 / オフセットの誤り | TIA Portal の Watch table で同じアドレスが実際に動作するか確認 |
| Bool だけ読めない | .bit の欠落 | %DB1.DBX0.0 のように .bit まで正確に記述 |
よく使う例
ライン PLC 1 台にまとめられることが多いタグ
| タグ名 | PLC アドレス | データ形式 | 形式補助 |
|---|---|---|---|
| ポンプ稼働 (DB) | %DB1.DBX0.0 | Boolean | (空欄) |
| 入力信号 | %I0.0 | Boolean | (空欄) |
| 圧力 (kPa、実数) | %DB1.DBD8 | Float | REAL |
| 積算カウンタ | %MD100 | Integer | DW |
| バッチ名 | %DB1.DBB100 | String | STR[16] |
より詳しい例 / 自動登録
高度な設定 — REST API の S7 の例を参照してください。