シーメンスS7-200 SMART Modbus RTUレジスター·アドレスマッピング完全ガイド

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本記事目录
  1. 1. 一、概述
  2. 2. 二、Modbusアドレスタイプ説明
  3. 3. 三、S7-200 SMART Modbusアドレスマッピングテーブル
  4. 4. 3.1 数字量出力区(Q区)→ 0xxxxコイル
  5. 5. 3.2 数字量入力区(I区)→ 1xxxxショップ型入力
  6. 6. 3.3 模拟量入力区(AIW区)→ 3xxxx入力レジスタ。
  7. 7. 3.4 V存储区 → 4xxxxレジスタを保持する。
  8. 8. 四、PLCステーションからの設定步骤
  9. 9. 4.1 インストールModbusスレーブ指令库
  10. 10. 4.2 调用MBUS_INIT指令初期化スレーブ
  11. 11. 4.3 主ポーリングMBUS_SLAVE指令
  12. 12. 4.4 設定V存储区データ
  13. 13. 五、PLCマスター設定与読み取りサンプル
  14. 14. 5.1 调用MBUS_CTRL指令初期化マスター
  15. 15. 5.2 调用MBUS_MSG指令发起読み書きリクエスト
  16. 16. 5.3 リードホールドレジスタサンプル
  17. 17. 六、よくある質問与排障ガイド
  18. 18. 6.1 通讯応答なし。,スレーブ不回话
  19. 19. 6.2 读不到データ或データは間違ってる
  20. 20. 6.3 データ乱码或数值正しくない
  21. 21. 6.4 偶发通信失敗。
  22. 22. 6.5 Errorエラー代码説明
  23. 23. 七、总结
  24. 24. 八、相关链接

一、概述

S7-200 SMART PLC作为Modbus RTUマスター或スレーブ时,其内部存储区(I、Q、AIW、V)与Modbus標準アドレス之间有固定的マッピング关系。本記事基于シーメンス官方技術ドキュメント,详细説明S7-200 SMART的Modbusアドレスマッピングルール,包含完全的アドレス对照表、設定步骤、通讯サンプル和排障ガイド。

S7-200 SMARTサポート两种Modbus工作モード:

  • Modbus RTUmaster(Master):主动发起通讯リクエスト,読み取り或控制スレーブデバイス
  • Modbus RTUslave(Slave):被动レスポンスマスター的読み書きリクエスト

二、Modbusアドレスタイプ説明

Modbusプロトコル定义了四种データエリア,每种エリア有固定的アドレス範囲和機能コード:

Modbusアドレスエリア function code 読み書き属性 data type 对应S7-200 SMART存储区
0xxxx(コイル) 01(リードコイルを読む)/ 05(シングルコイルを書く。)/ 15(マルチコイルを書く) 读/写 位(1 bit) Q区数字量出力
1xxxx(ショップ型入力) 02(read discrete inputs) 読み取り専用 位(1 bit) I区数字量入力
3xxxx(入力レジスタ。) 04(read input registers) 読み取り専用 字(16 bit) AIW模拟量入力
4xxxx(レジスタを保持する。) 03(read holding registers)/ 06(単一レジスタの書き込み)/ 16(マルチレジスタの書き込み) 读/写 字(16 bit) V存储区(可設定)

重要説明:Modbusアドレス采用1-based编号,即从1开始计数。而PLC内部アドレス通常是0-based,Start from 0。

三、S7-200 SMART Modbusアドレスマッピングテーブル

3.1 数字量出力区(Q区)→ 0xxxxコイル

数字量出力Qゾーンマッピング到Modbus的0xxxxコイルエリア,サポート读書き込み操作。。

Modbusaddress S7-200 SMARTaddress 説明
00001 Q0.0 No.0通道第0位
00002 Q0.1 No.0通道第1位
00003 Q0.2 No.0通道第2位
00004 Q0.3 No.0通道第3位
00005 Q0.4 No.0通道第4位
00006 Q0.5 No.0通道第5位
00007 Q0.6 No.0通道第6位
00008 Q0.7 No.0通道第7位
00009 Q1.0 No.1通道第0位
00010 Q1.1 No.1通道第1位
00011 Q1.2 No.1通道第2位
00012 Q1.3 No.1通道第3位
00013 Q1.4 No.1通道第4位
00014 Q1.5 No.1通道第5位
00015 Q1.6 No.1通道第6位
00016 Q1.7 No.1通道第7位
00017 Q2.0 No.2通道第0位
00018 Q2.1 No.2通道第1位
依次类推,每8アドレスはこちら。对应一バイト単位。
00256 Q31.7 最大アドレス(最多サポート32バイト単位。出力)

計算公式:Modbusaddress = 通道号 × 8 + 位号 + 1

example:要アクセスQ2.3,Modbusaddress = 2×8 + 3 + 1 = 00020

function code

  • read coil status:function code01
  • write single coil:function code05
  • write multiple coils:function code15(0x0F)

Precautions

  • Q区アドレスマッピング是固定的,必要なし。额外設定
  • 实际可用的Q区数量取决于CPU型号和扩展モジュール
  • もし硬件上不存在对应的Q点,读出来的值始终为0

3.2 数字量入力区(I区)→ 1xxxxショップ型入力

数字量入力Iゾーンマッピング到Modbus的1xxxxショップ型入力エリア,読み取り専用。

Modbusaddress S7-200 SMARTaddress 説明
10001 I0.0 No.0通道第0位
10002 I0.1 No.0通道第1位
10003 I0.2 No.0通道第2位
10004 I0.3 No.0通道第3位
10005 I0.4 No.0通道第4位
10006 I0.5 No.0通道第5位
10007 I0.6 No.0通道第6位
10008 I0.7 No.0通道第7位
10009 I1.0 No.1通道第0位
10010 I1.1 No.1通道第1位
10011 I1.2 No.1通道第2位
10012 I1.3 No.1通道第3位
10013 I1.4 No.1通道第4位
10014 I1.5 No.1通道第5位
10015 I1.6 No.1通道第6位
10016 I1.7 No.1通道第7位
10017 I2.0 No.2通道第0位
10018 I2.1 No.2通道第1位
依次类推,每8アドレスはこちら。对应一バイト単位。
10256 I31.7 最大アドレス(最多サポート32バイト単位。入力)

計算公式:Modbusaddress = 10000 + 通道号 × 8 + 位号 + 1

example:要アクセスI3.5,Modbusaddress = 10000 + 3×8 + 5 + 1 = 10030

function code:離散入力の読み取り用機能コード02

Precautions

  • I区アドレスマッピング是固定的,必要なし。额外設定
  • ショップ型入力是読み取り専用的,マスター書けない。
  • 实际可用的I区数量取决于CPU型号和扩展モジュール

3.3 模拟量入力区(AIW区)→ 3xxxx入力レジスタ。

模拟量入力AIWゾーンマッピング到Modbus的3xxxx入力レジスタ。エリア,読み取り専用。

Modbusaddress S7-200 SMARTaddress 説明
30001 AIW0 No.1路模拟量入力
30002 AIW2 No.2路模拟量入力
30003 AIW4 No.3路模拟量入力
30004 AIW6 No.4路模拟量入力
30005 AIW8 No.5路模拟量入力
30006 AIW10 No.6路模拟量入力
30007 AIW12 No.7路模拟量入力
30008 AIW14 No.8路模拟量入力
30009 AIW16 No.9路模拟量入力
30010 AIW18 No.10路模拟量入力
依次类推,步长为2
30056 AIW110 No.56路模拟量入力(最大)

計算公式:Modbusaddress = 30000 + AIW编号 / 2 + 1

example:要読み取りAIW20,Modbusaddress = 30000 + 20/2 + 1 = 30011

function code:読み取り入力レジスタ用機能コード04

Precautions

  • AIW是字寻址,每个AIW占2バイト単位。,所以アドレス步长为1对应AIW步长2
  • 入力レジスタ。是読み取り専用的,マスター書けない。
  • 模拟量入力值範囲通常是0-32767(单极性)或-32768-32767(双极性)
  • 实际可用的AIW数量取决于アナログモジュール的路数

3.4 V存储区 → 4xxxxレジスタを保持する。

V存储区的マッピング是可設定的,経由Modbusスレーブ指令MBUS_INIT的2つ参数定义:

  • HoldStart:レジスタを保持する。区的起始Vaddress(如&VB1000)
  • MaxHold:レジスタを保持する。区的字数(単位:字,即VW的数量)

マッピングルール

Modbusaddress S7-200 SMARTaddress 説明
40001 VW[HoldStart] The first oneレジスタを保持する。
40002 VW[HoldStart + 2] the secondレジスタを保持する。
40003 VW[HoldStart + 4] The third oneレジスタを保持する。
40004 VW[HoldStart + 6] The fourth oneレジスタを保持する。
依次类推,步长为2バイト
400XX VW[HoldStart + 2 × (XX – 1)] No.XXレジスタを保持する。

完全な例:もしHoldStart = &VB1000,MaxHold = 100

Modbusaddress V存储区アドレス バイト範囲 説明
40001 VW1000 VB1000-VB1001 The first oneレジスタを保持する。
40002 VW1002 VB1002-VB1003 the secondレジスタを保持する。
40003 VW1004 VB1004-VB1005 The third oneレジスタを保持する。
40004 VW1006 VB1006-VB1007 The fourth oneレジスタを保持する。
40005 VW1008 VB1008-VB1009 The 5th oneレジスタを保持する。
40100 VW1198 VB1198-VB1199 The 100th oneレジスタを保持する。(最后一个)

function code

  • read holding registers:function code03
  • write single register:function code06
  • write multiple registers:function code16(0x10)

Precautions

  • V存储ゾーンマッピング是可設定的,経由MBUS_INIT指令的HoldStart和MaxHold参数設定
  • HoldStart必须指向VBaddress,如&VB1000
  • MaxHold的単位是(VW),ではないバイト(VB)
  • レジスタを保持する。エリア不能与PLC程序中已使用的V存储区冲突
  • もしMaxHold设为100,则占用VB1000-VB1199共200バイト単位。

四、PLCステーションからの設定步骤

4.1 インストールModbusスレーブ指令库

  1. openSTEP 7-Micro/WIN SMARTプログラミング软件
  2. 在指令树中找到「库」文件夹
  3. もしないModbus Slave库,需要先导入:右クリック「库」→「导入库」→ ChoiceModbus Slave库文件
  4. 库文件通常在シーメンス官方网站下载,名称为「Modbus Slave」

4.2 调用MBUS_INIT指令初期化スレーブ

在第1回のスキャンサイクル(SM0.1)调用MBUS_INIT指令,参数説明如下:

参数名 取值範囲 説明
Mode 0 / 1 0=無効Modbusslave,恢复为普通自由口;1=EnableModbusslave
Baud 1200-115200 Baud rate,共通の値:9600、19200、38400、115200
Parity 0 / 1 / 2 Verification method:0=検証なし。,1=odd parity,2=even parity
Port 0 / 1 通信ポート。:0=板载RS485口,1=信号板SB CM01的RS485口
SlaveAddr 1-247 Modbusslave address,同一バス不能重复
HoldStart &VBxxx レジスタを保持する。区起始Vアドレス指针,如&VB1000
MaxHold 0-10000 レジスタを保持する。区字数(単位:字),如100表示100个VW
Done BOOL 初期化完了フラグ位
Error BYTE エラー代码

4.3 主ポーリングMBUS_SLAVE指令

在主程序循环中,每个スキャンサイクル都要调用MBUS_SLAVE指令:

  • 该指令负责処理Modbusマスター发来的リクエスト
  • もし不调用,スレーブ将无法レスポンスマスター
  • parameter:Done(完了フラグ)、Error(エラー代码)

4.4 設定V存储区データ

在HoldStart指定的Vアドレス区存放要読み書き的データ:

  • マスター写过来的データ会存到这个エリア
  • PLC程序从这个エリア読み取りデータ进行処理
  • 注意不要与程序中其他已使用的Vアドレス冲突

五、PLCマスター設定与読み取りサンプル

5.1 调用MBUS_CTRL指令初期化マスター

在第1回のスキャンサイクル(SM0.1)调用MBUS_CTRL指令初期化Modbusmaster:

参数名 取值範囲 説明
Mode 0 / 1 0=無効Modbusmaster,1=EnableModbusmaster
Baud 1200-115200 Baud rate,必须与スレーブ一致
Parity 0 / 1 / 2 チェック方式,必须与スレーブ一致
Port 0 / 1 通信ポート。:0=板载RS485,1=信号板
Timeout 1-32767 ms 待機中スレーブレスポンス的タイムアウト時間,建议1000ms
Done BOOL 初期化完了フラグ位
Error BYTE エラー代码

5.2 调用MBUS_MSG指令发起読み書きリクエスト

MBUS_MSGコマンド用。于发起一次Modbus読み書きリクエスト:

参数名 取值範囲 説明
First BOOL 首次执行脉冲,检测到アップサイド·エッジ时发起リクエスト
Slave 1-247 slave address
RW 0 / 1 0=读リクエスト,1=写リクエスト
Addr Modbusaddress 要アクセス的Modbusaddress,如40001表示リードホールドレジスタThe first one
Count 1-120 読み書き的レジスタ/コイルの数
DataPtr &VBxxx データバッファ指针,如&VB2000
Done BOOL 本次リクエスト完了フラグ位
Error BYTE エラー代码

5.3 リードホールドレジスタサンプル

假设要読み取りアドレス为1的スレーブデバイス的10レジスタを保持する。(40001-40010):

  1. First:用一个脉冲信号触发
  2. Slave:1
  3. RW:0(读)
  4. Addr:40001
  5. Count:10
  6. DataPtr:&VB2000

読み取り成功后,VB2000始まりました。20バイト単位。中存放了101つのレジスタ的データ。

六、よくある質問与排障ガイド

6.1 通讯応答なし。,スレーブ不回话

  • チェック配線:RS485的A+和B-是否接反,这是最も一般的な的エラー
  • チェック参数一致性:マスター·マスター駅的ボーレート、data bit、stop bit、チェックビット必须完全一致
  • チェック駅からの住所:SlaveAddr是否正确,バス上不能有重复アドレス
  • 测量バス电压:A线(D+)应高于B线(D-)约200mV以上
  • 終端抵抗のチェック:バス两端是否加了120Ω終端抵抗(距离远时需要)
  • チェックPortparameter:是否选对了通信ポート。(0或1)

6.2 读不到データ或データは間違ってる

  • チェックアドレス格式:Modbusアドレス有1-based和0-based两种写法,注意区分
  • チェックHoldStart:確認保持レジスタ開始アドレス設定是否正确
  • チェックMaxHold:確認レジスタを保持する。数量是否足够
  • チェックアドレス範囲:要读的アドレス是否在MaxHold定义的範囲内
  • チェックバイトオーダー:32ビット·データ的高低字顺序是否与マスターマッチング

6.3 データ乱码或数值正しくない

  • チェックデータ格式:確認是16ビット整数、32ビット整数まだ浮動小数点数
  • チェックバイトオーダー:ビッグエンディアン序(Big-Endian)和リトルエンディアン序(Little-Endian)是否一致
  • チェック字序:32ビット·データ的高低字顺序是否正确
  • チェック缩放比例:是否需要乘以倍率(如0.1℃単位的要除以10)
  • チェック负数処理:负数是用补码表示的,注意記号付き。数和符号なし。数違いはありません

6.4 偶发通信失敗。

  • チェックシールド線:RS485线是否用了シールドツイストペア,シールド層是否シングルエンド接地
  • チェックバスの長さ:9600bps下最大1200米,115200bps下最大约100米
  • チェックスレーブ数量:一条RS485バス最多挂32个スレーブ(不带リピーター)
  • チェック電磁干渉による干渉:通讯线是否与动力线平行走线,是否干渉源がある
  • チェックタイムアウトの設定:Timeout参数是否设得太小,适当调大试试

6.5 Errorエラー代码説明

エラー代码 説明 解決方法
0 エラーなし。
1 奇偶検証エラー チェックチェックビット設定
2 ボーレートサポートなし。 チェックボーレート参数
3 タイムアウトエラー チェック配線、スレーブ电源、タイムアウトの設定
4 駅からの住所エラー チェックSlaveAddrparameter
5 確認未收到 スレーブ応答なし。,チェック配線和参数
10 ゲートウェイエラー チェックゲートウェイの構成

七、总结

S7-200 SMART的Modbusアドレスマッピングルール清晰明了:

  • 0xxxxコイルエリア → 对应Q区数字量出力,読み書き
  • 1xxxxショップ型入力エリア → 对应I区数字量入力,読み取り専用
  • 3xxxx入力レジスタ。エリア → 对应AIW模拟量入力,読み取り専用
  • 4xxxxレジスタを保持する。エリア → 对应V存储区,可設定,読み書き

掌握这个マッピング关系,就能快速実装S7-200 SMART与第三方デバイス的Modbus RTUCommunication。实际应用中,建议先用Modbus Poll等デバッグ软件测试通讯,確認アドレスマッピング正确后再编写PLC程序。

八、相关链接

  • Modbus RTU通讯基础チュートリアル
  • ModbusDetailed explanation of function codes
  • シーメンスS7-200 SMART Modbusマスター設定实例
  • RS485バス配線の仕様
技术术语(共 9 个)—— Click to Expand
Modbus RTU基于串行链路的ModbusProtocol,使用二进制编码和CRC check
RS485工业常用的差分串行通信標準,サポート多点通信
function codeModbus機能コード指定读/書き込み操作。タイプ,如01リードコイルを読む、03リードホールドレジスタ
registerModbus レジスタ存储データユニット,分コイル/ショップ型入力/保持/入力レジスタ。四类
PLC可プログラミング逻辑コントローラーは,工业自動化控制的核心デバイス
Baud rate串行通信每秒传输符号数,Modbus RTU常用9600/19200
ゲートウェイプロトコル変換デバイス,如 Modbus RTU ↔ Modbus TCP
コイルModbus位可读データの書き込み,アドレス从00001开始
レジスタを保持する。Modbus 16位可读データの書き込み,アドレス从40001开始
来源/工具信息 —— Click to Expand
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbuscommunication protocol technical community Category other technical materials 字数 5490 字 · 阅读约 14 分 更新 2026-09-20 永久链接 https://www.modbus.cn/53051.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus debugging tool,サポート Modbus RTU/TCP 实时通信デバッグ、レジスタ読み書き、コイル控制、データモニタリング和报文分析。 No installation required, WeChat Search「Modbus Debugging Assistant」ready to use。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.