西门子S7-1200 PLC的Modbus RTURegister Mapping表指令

freeFree Technical Resource

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

西门子S7-1200 PLC的Modbus RTURegister Mapping表指令缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 一、Modbus RTU 指令的使用
  2. 2. 二、Modbus RTU 主站编程
  3. 3. 三、详细说明

一、Modbus RTU 指令的使用

西门子S7-1200 PLC的Modbus RTURegister Mapping表指令插图

二、Modbus RTU 主站编程

  • 主站编程需调用 Modbus Comm_LoadModbus_Master指令:
  • Modbus_Comm_Load 指令通过 Modbus RTU Protocol对Communication模块进行Configuration;
  • Modbus Master 指令可通过由 Modbus Comm Load 指念Configuration的端口作为 Modbus 主站进行Communication。

Modbus RTU 主站指令 Modbus Comm Load 参数

引脚说明
REQ上升沿触发
PORTCommunication端口的硬件标识符
BAUDBaud rate选择: 3600,6000,12000,2400,4800,9600,19200,38400,57600,76800,115200
PARITY奇偶检验选择: 0-无; 1-odd parity; 2-even parity
FLOW_CTRL流控制选择: 0-(默认值) 无流控制
RTS_ON_DLYRTS 延时选择: 0- (默认值)

三、详细说明

Modbus RTU 主站编程

1.Modbus RTU 主站指令 Modbus Comm_Load 参数

RESP_TOResponse超时: 默认值= 1000 ms。Modbus_Master 允许用于从站Response的time(以毫秒为单位)。
MB_DB对Modbus_Master或 Modbus_Slave 指令的背景data块的引用。 MB_DB 参数必须与Modbus_Master 或Modbus_Slave 指今中的静态变量MB_DB参数相连。
DONE如果上一个RequestComplete并且没有Error,DONE位将变为 TRUE并保持一个周期。
ERROR如果上一个RequestComplete出错,则ERROR位将变为TRUE并保持一个周期。STATUS参数中的Error代码仅在ERROR=TRUE的周期内effective。
STATUS端口ConfigurationError代码,请参考 TIAPortal 软件在线帮助或S7-1200system手册

2.Modbus RTU 主站指令 Modbus Master 参数

引脚说明
EN使能端
REQTRUE=Request向 Modbus 从站senddata,建议采用上升沿触发
MB_ADDRModbus RTU slave address。默认address范围:0至247;扩展address范围:至65535。值0被保留用于将消息广播到所有 Modbus 从站
MODE模式选择: 指定RequestType(读取或写入)。
DATA ADDR从站中的starting address: 指定 Modbus 从站中将供访问的data的starting address
DATA_LENdataLength:指定要在该Request中访问的位数或字数。
DATA PTRdata指针: 指向要进行data写入或data读取的 M区或data块address。
DONEComplete位:上一Request已Complete且没有出错后,DONE 位将保持为 TRUE一个扫描周期时
间。
BUSYFALSE-Modbus Master 无激活命令:TRUE -Modbus Master 命令执行中。
ERROR如果上一个RequestComplete出错,则ERROR位将变为TRUE 并保持一个周期。STATUS参数中的Error代码仅在ERROR=TRUE的周期内effective。
STATUS端口ConfigurationError代码,请参考 TIA Portal 软件在线帮助或S7-1200 system手册。

3.MB MODE、MB DATA ADDR、MB DATA LEN、Modbus RTUfunction code等之间的关系

MB_MODEMB_DATA ADDRMB_DATA_LENModbus RTU function codeOperation和data
01-99991-200001读取输出位
每个Request1-2000个位
010001-199991-200002读取输入位
每个Request1-2000个位
0.40001-49999(等同于400001-409999
.400001-465535
1 – 12503Read and hold register
每个Request1-125个字
030001-399991 – 12504读取输入字
每个Request1-125个字
110001 – 19999105写入输出位
每个Request1位
1.40001-49999(等同于400001-409999
.400001-465535
106写入保持register
每个Request1个字
110001 – 199992 -196815写入多个输出位
每个Request2-1968个位
1.40001-49999(等同于400001-409999
.400001-465535
2-12316写入多个保持register
每个Request2-123个字
210001 – 199991 – 196815写入输出位
每个Request1-1968个位
2.40001-49999(等同于400001-409999
.400001-465535
1 -12316写入保存register
每个Request1-123个字
1111详情见下文
80108详情见下文
81108详情见下文
1040-655351-12504读取输入字
每个Request1-125个字

11 (Operation和data) : 读取服务器的状态字和事件计数器:

1.状态字反映了处理的状态(0-未处理,0xFFFFF-正在处理里);

2.ModbusRequest成功执行时,事件计数器将递增。如果执行ModbusFunction时出错则服务器将send消息但不会递增事件计数器。
80(Operation和data) : 通过诊断代码0x0000检查服务器状态(返回循环测试-服务器发回Request

每次调用1个字
81 (Operation和data) : 通过诊断代码0x000A复位服务器的事件计数器:
每次调用1个字

Modbus RTU 从站编程

引脚说明
MB ADDRModbus 从站的标准寻址: 标准寻址范围(1到247),扩展寻址范围(0到65535)
MB_HOLD_REGdata指针,指向 Modbus 保持register的address,Modbus 保持register可以为 M存储区或DB data area
NDR可用的新data:
>FALSE: 无新data。
>TRUE: 表示新data已由 Modbus 主站写入,如果上一个RequestComplete并且没有Error,NDR位将变为 TRUE 并保持一个周期。
DR读取data:
>FALSE:无新data。
>TRUE:表示该指令已将 Modbus 主站receive到的data存储在目标区域中。如果上一个RequestComplete并且没有Error,DR 位将变为 TRUE 并保持一个周期。
ERROR如果上一个RequestComplete出错,则 ERROR 位将变为 TRUE 并保持一个周期。 如果执行因Error而终止,则STATUS 参数中的Error代码仅在ERROR=TRUE的周期内effective.
STATUSError代码

2.Modbus RTU 从站data area定义

address区定义说明
输出位Q0.0 开始Q0.0为address1,Q0.1为address 2,Q0.7为address 8,Q1.0为address 9…
输入位I0.0开始I0.0为address10001,I0.1 为address 10002,I0.7 为address 10008,I1.0 为地10009…
输入registerIW0 开始IW0 为address30001,IW2 为address 30002,IW4 为address 30003…
保持register由MB_HOLD_REG定义指针指向的第一个字为 40001,第二个字为40002.
1.例如:MB_HOLD REG为 P#M100.0 WORD8,则 MW100 为 40001,MW102 为 40002,MW104 为 40003…MW114为40008
2.例如: MB_HOLD_REG为优化 DB 中 INT 数组[0…7],数组名为“XXX”AA,则“XXX”.AA[0]为40001,“XXX”AA[1]为40002,“XXX”.AA[2]为40003.“XXX.AA[7]为40008
Technology术语(共 5 个)—— 点击展开
Modbus RTU基于串行链路的ModbusProtocol,使用binaryCoding和CRC check
function codeModbusfunction code指定读/写OperationType,如01读线圈、03读保持register
registerModbus register存储data单元,分线圈/离散输入/保持/输入register四类
Baud rate串行Communication每秒传输符号数,Modbus RTU常用9600/19200
保持registerModbus 16位可读写data,address从40001开始
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbuscommunication protocol technical community Category 工业物联网 字数 2881 字 · 阅读约 8 分钟 更新 2024-01-08 永久链接 https://www.modbus.cn/26544.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时Communicationdebug、register读写、线圈控制、data监控和message分析。 No installation required, WeChat Search「Modbus DebuggingAssistant」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 *.