メインコンテンツまでスキップ

シーメンス 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 の IP192.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

シリーズrackslot
S7-30002
S7-40003 (CPU スロットにより異なる場合あり)
S7-120000 (または 1)
S7-150000 (または 1)

TIA Portal 側の事前設定

シーメンス PLC はセキュリティ上、外部から値を読み出すには以下の設定が必要です。

  1. TIA Portal で PLC のプロパティ → Protection & Security → “Permit access with PUT/GET communication from remote partner” を有効化
  2. データブロック (DB) のプロパティ → Optimized block access を OFF (絶対アドレスモードに変更)

この 2 つが設定されていないと “Address out of range” または “Connection rejected” が発生します。


タグの PLC アドレス表記

シーメンス標準のメモリ表記をそのまま使用します。% で始まります。

表記意味
%DB1.DBX0.0DB1 の byte 0 の bit 0 (ブール値)
%DB1.DBB0DB1 の byte 0 (8-bit)
%DB1.DBW0DB1 の word 0 (16-bit)
%DB1.DBD0DB1 の 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-bitIntegerB%DB1.DBB0
16-bit 整数Integer(空欄)%DB1.DBW0, %MW100
32-bit 整数IntegerDW%DB1.DBD0, %MD100
32-bit 実数 (最も一般的な実数型)FloatREAL%DB1.DBD0
64-bit 実数DoubleLREAL%DB1.DBD8
文字列 (S7 STRING)StringSTR[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
すべての値が 0DB 番号 / オフセットの誤りTIA Portal の Watch table で同じアドレスが実際に動作するか確認
Bool だけ読めない.bit の欠落%DB1.DBX0.0 のように .bit まで正確に記述

よく使う例

ライン PLC 1 台にまとめられることが多いタグ

タグ名PLC アドレスデータ形式形式補助
ポンプ稼働 (DB)%DB1.DBX0.0Boolean(空欄)
入力信号%I0.0Boolean(空欄)
圧力 (kPa、実数)%DB1.DBD8FloatREAL
積算カウンタ%MD100IntegerDW
バッチ名%DB1.DBB100StringSTR[16]

より詳しい例 / 自動登録

高度な設定 — REST API の S7 の例を参照してください。