如何通过 Modbus RTU 协议实现 S7-1200 与 PAC3200 的通信
How to communication between S7-1200 and PAC3200 meter via Modbus RTU protocol
Getting Started Edition (2009 年 12 月)
IA&DT Service & Support
Page 2-27
摘 要 本文介绍了通过 Modbus 协议实现 S7-1200 与 PAC3200 的通信。
关键词 Modbus 协议,S7-1200,PAC3200
Key Words Modbus RTU protocol,S7-1200,SENTRON PAC3200
IA&DT Service & Support
Page 3-27
目 录
如何通过 Modbus RTU 协议实现 S7-1200 与 PAC3200 的通信 ................................................... 1
1.西门子 SENTRON PAC3200 仪
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
介绍.................................................................................... 4
1.1 SENTRON PAC3200 MODBUS RTU 通信扩展模块介绍 .................................................. 4
1.2 SENTRON PAC3200 MODBUS RTU 通信扩展模块的接线............................................... 5
1.3 SENTRON PAC3200 MODBUS RTU 通信的方式 ............................................................. 6
2.西门子 SENTRON PAC3200 仪表与 S7-1200 进行通信的接线图........................................... 7
3.硬件需求................................................................................................................................... 7
3.软件需求................................................................................................................................... 8
4.S7-1200 MODBUS RTU 的通信方式 ....................................................................................... 8
5.S7-1200 与 PAC3200 进行 MODBUS RTU 的通信组态 ........................................................ 11
5. 1 PLC 硬件组态 ................................................................................................................ 11
5. 2 PAC3200 参数设置 ........................................................................................................ 12
6.S71200 与 PAC3200 的 MODBUS RTU 通信原理与编程的实现........................................... 13
6. 1 S7 1200 PLC 与 PAC3200 通过 MODBUS RTU 通信的基本原理.................................. 13
6. 2 S7 1200 PLC 与 PAC3200 通过 MODBUS RTU 通信的编程 ......................................... 16
附录-推荐网址 ........................................................................................................................... 26
IA&DT Service & Support
Page 4-27
西门子 S7-1200 紧凑型 PLC 在当前的市场中有着广泛的应用,作为经常与 SENTRON
PAC3200 系列仪表共同使用的 PLC,其 Modbus 通信协议的使用一直在市场上有着非常广
泛的应用。本文将主要介绍如何使用 Modbus 通信协议来实现 S7-1200 与 SENTRON
PAC3200 仪表的通信。
1.西门子 SENTRON PAC3200 仪表介绍
西门子的 SENTRON PAC3200 多功能电力仪表是一种用于面板安装的仪表,可用来计
量、显示配电系统多达 50 个测量变量,例如电压、电流、功率、有功功率、频率以及最大
值、最小值和平均值。中文大屏幕图形液晶显示使用户可远距离读表。PAC3200 仪表如下图
所示。
图 1:仪表 PAC3200
1.1 SENTRON PAC3200 MODBUS RTU通信扩展模块介绍
PAC3200多功能仪表的本体没有MODBUS RTU通信的功能,如果希望将PAC3200作为
从站连接到MODBUS RTU网络与主站进行数据交换必须选用外部扩展通信模块――SENTRON
PAC RS485模块。(注意: PAC RS485 扩展模块使用错误的固件版本时将不能工作
SENTRON PAC3200 电力监测设备的固件版本最低应为FWV2.0X。 较早的版本不支持
PAC RS485 扩展模块。)该扩展模块具有下列性能特点:
• 可通过设备正面设置参数
• 即插即用
• 支持 4.8/9.6/19.2 以及 38.4 KBd 通信传输速率
• 通过6针螺钉端子接线
IA&DT Service & Support
Page 5-27
• 不需要外接辅助电源
• 通过模块上的 LED 显示状态
PAC3200 MODBUS RTU 通信扩展模块如下图所示。
(1) 通信接线端子
(2) 安装螺钉
(3) 通风口
(4) LED
图 2:PAC3200 MODBUS RTU 通信模块
1.2 SENTRON PAC3200 MODBUS RTU通信扩展模块的接线
SENTRON PAC3200 MODBUS RTU 通信扩展模块的接线如下图所示
图 3:PAC3200 MODBUS RTU 通信模块的接线图
1. 将电缆连接到端子排上相应的螺栓端子。
2. 将电缆屏蔽层的一端连接到保护性接地PE。
3. 将信号公共端连接到保护性接地。 这样也使得扩展模块接地。
4. 在第一个和最后一个通信节点上,在正信号和负信号之间接入总线端接电阻器。 为
此,PAC RS485 扩展模块中集成了一个120 Ohm 的总线端接电阻器。 如果需要其它
电阻值,请使用外部总线端接电阻器。 将它连接到第一个和最后一个通信节点。
IA&DT Service & Support
Page 6-27
1.3 SENTRON PAC3200 MODBUS RTU通信的方式
1.SENTRON PAC3200 设备支持的功能码如下:
FC 功能码 数据类型 访问权限
02 输入的状态 位 输入 R
03 输出寄存器 寄存器 输出 R
04 输入寄存器 寄存器 输入 R
06 单一输出寄存器 寄存器 输出 RW
10 多个输出寄存器 寄存器 - RW
2B 设备识别 - - R
表 1: SENTRON PAC3200 设备支持的功能码
R—可读
RW—可读写
2.SENTRON PAC3200 MODBUS RTU 与 S7-1200 进行通信
S7-1200 PLC 可以通过功能代码 0x03 和 0x04 访问仪表 PAC3200 的被测量数据。
下表是一些 PAC3200 被测量的数据。
表 2: SENTRON PAC3200 设备的一些被测量数据
IA&DT Service & Support
Page 7-27
2.西门子 SENTRON PAC3200 仪表与 S7-1200 进行通信的接线图
下图是 SENTRON PAC3200 仪表与 S7-1200 进行 MODBUS RTU 通信的接线图。
图 4:S7-1200 与 PAC3200 进行 MODBUS RTU 进行通信的接线图
3.硬件需求
S7-1200 PLC 目前有 3 种类型的 CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
IA&DT Service & Support
Page 8-27
这三种类型的 CPU 都可以使用 MODBUS 通信协议通过通信模块 CM1241 RS485 来实
现 S7-1200 与 PAC3200 仪表的通信。
本例中使用的 PLC 硬件为:
1)PM1207 电源 ( 6EP1 332-1SH71 )
2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
3) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )
4) 模拟器 ( 6ES7 274 -1XH30 -0XA0 )
本例中使用的 PAC3200 仪表硬件为:
1) PAC3200 (7KM2112-0BA00-3AA0)
2) MODBUS RTU 模块 (7KM9300-0AB00-0AA0)
3) MODBUS 通信电缆 ( 6XV1830-0EH10)
3.软件需求
1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)
4.S7-1200 MODBUS RTU 的通信方式
S7-1200 作为 MODBUS RTU 主站的通信方式是由 DATA_ADDR 和 MODE 参数来选
择 Modbus 功能类型的。
DATA_ADDR(从站中的起始 Modbus 地址): 指定要在 Modbus 从站中访问的数
据的起始地址。MB_MASTER 使用 MODE 输入而非功能代码输入。 MODE 和 Modbus 地
址范围一起确定实际 Modbus 消息中使用的功能代码。
IA&DT Service & Support
Page 9-27
下表列出了 MB_MASTER 参数 MODE、Modbus 功能代码和 Modbus 地址范围之间
的对应关系。
IA&DT Service & Support
Page 10-27
表 3: MB_MASTER 的 MODBUS 功能
IA&DT Service & Support
Page 11-27
5.S7-1200 与 PAC3200 进行 MODBUS RTU 的通信组态
`
我们通过一个实例来介绍如何在 Step7 Basic V10.5 中组态 S7-1214C 和 PAC3200
的 MODBUS RTU 通信。
5. 1 PLC 硬件组态
首先在 Step7 Basic V10.5 中建立一个项目,如图 1 所示。
图 5: 新建 S7 1200 项目
在硬件配置中,添加 CPU1214C 和通信模块 CM1241 RS485 模块,如图 2 所示。
图 6: S7 1200 硬件配置
IA&DT Service & Support
Page 12-27
在 CPU 的属性中,设置以太网的 IP 地址,建立 PG 与 PLC 的连接,如下图所示。
图 7: S7 1200 IP 地址的设置
5. 2 PAC3200 参数设置
在SENTRON PAC 电力监测设备的主菜单中,调用“设置”>“RS485 模块”,出现下
面的设置画面:
图 8: PAC3200 MODBUS RTU 通信参数的设置
1. 地址的设置范围:1-247。本例中设为 8。
2. 波特率的设置范围:4800,9600,19200,38400。本例中设为 38400。
3. 设置外部通信的数据位、奇偶校验位及停止位:
• 8E1=8 个数据位,奇偶校验位为even, 1 个停止位
• 8O1=8 个数据位,奇偶校验位为odd, 1 个停止位
• 8N2=8 个数据位,无奇偶校验位, 2 个停止位
• 8N1=8 个数据位,无奇偶校验位, 1 个停止位
本例中根据S7-1200 MODBUS MASTER 的参数设置为 8N1。
4. 协议的设置:可选项为:SEABUS,MODBUS RTU。
本例中设为 MODBUS RTU。
5.响应时间的设置:注意与波特率的设置相匹配,本例中设为 10mS。
IA&DT Service & Support
Page 13-27
6.S71200 与 PAC3200 的 MODBUS RTU 通信原理与编程的实现
6. 1 S7 1200 PLC 与 PAC3200 通过 MODBUS RTU 通信的基本原理
S7 1200 提供了专用的 MODBUS 库进行 MODBUS 通信,如下图所示:
图 9: S7 1200 提供的专用 MODBUS 库
西门子 PLC S7-1200 的模块 CM1241 RS232 和 CM1241 RS485 都可以实现 MODBUS
RTU 的通信,本例中采用 CM1241 RS485 模块来实现与仪表 PAC3200 的 MODBUS RTU
的通信。
S7-1200 的 MODBUS RTU 通信的基本原理是:
首先 S7-1200 PLC 的程序调用一次 MODBUS 库中的功能块 MB_COMM_LOAD 来组态
CM1241 RS232 和 CM1241 RS485 模块上的端口,对端口的参数进行配置。
其次调用 MODBUS 库中的功能块 MB_MASTER 或者 MB_SLAVE 作为 MODBUS 主站
或者从站与支持 MODBUS 协议的设备进行通信。
IA&DT Service & Support
Page 14-27
S7-1200 PLC 作为 MODUBUS 主站 与 PAC3200 进行 MODBUS RTU 通信的控制原理
如下图所示:
图 10:S7-1200 PLC 作为 MODUBUS 主站 与 PAC3200 进行 MODBUS RTU 通信原理
IA&DT Service & Support
Page 15-27
S7-1200 PLC 还可以作为 MODBUS 子站与作为 MODBUS 主站之间的 PLC 进行
MODBUS RTU 通信,其控制原理如下图所示:
图 11:S7-1200 PLC 作为 MODBUS 子站与作为 MODBUS 主站之间的 PLC 进
行 MODBUS RTU 的通信原理
每个 S7-1200 CPU 最多可带 3 个通信模块,而每个 CM1241 RS485 通信模块理论上最
多支持 247 个 MODBUS 子站。但是在实际应用时需要考虑 CPU 的性能以及轮循 MODBUS
子站的时间。
IA&DT Service & Support
Page 16-27
6. 2 S7 1200 PLC 与 PAC3200 通过 MODBUS RTU 通信的编程
1.MODBUS RTU 通信接口参数的编程
MB_COMM_LOAD 功能块用于组态点对点 (PtP, Point-to-Point) CM 1241RS485 或
CM 1241 RS232 模块上的端口,以进行 Modbus RTU 协议通信。
程序开始运行时,调用一次 MB_COMM_LOAD 功能块,来实现对 MODBUS RTU 模块
的初始化组态。
MB_COMM_LOAD 执行一次的编程方式采用如下图所示时钟位 M10.0 来完成。
图 12:MB_COMM_LOAD 执行一次的编程时钟位的设置
IA&DT Service & Support
Page 17-27
MB_COMM_LOAD 功能块的编程如下图所示。
图 13:MB_COMM_LOAD 功能块的编程
PORT:指的是通过哪个通信模块进行 MODBUS RTU 通信。
BAUD:指的是和 MODBUS 子站进行通信的速率。
通信端口的波特率。取值范围为 300,600,1200,2400,4800,9600,19200,
38400,57600,76800,115200。
注意:仪表 PAC3200 的波特率的设置范围:4800,9600,19200,38400。因此上 S7-
1200 的波特率的设置一定要和仪表 PAC3200 的波特率的设置相一致。
MB_DB:对 MB_MASTER 或 MB_SLAVE 指令所使用的背景数据块的引用。 在用户程序中放置
MB_SLAVE 或 MB_MASTER 后,DB标识符会出现在 MB_DB 功能框连接的助手下拉列表
中。如“MB_MASTER_DB”或“MB_SLAVE_DB”。
IA&DT Service & Support
Page 18-27
STATUS:端口状态代码。具体含义如下表所示。
表 4: MB_COMM_LOAD 组态端口的状态代码
IA&DT Service & Support
Page 19-27
2.MODBUS_MASTER 功能块的编程
MB_MASTER 功能块允许程序作为Modbus 主站使用点对点 (PtP, Point-to-Point) CM
1241 RS485 或 CM 1241RS232 模块上的端口进行通信。 可访问一个或多个 Modbus 从站设
备中的数据。
MB_MASTER功能块的编程如下图所示。
图 14:MB_MASTER 功能块的编程
REQ:数据发送请求信号。0-无请求。1-请求将数据传送到 MODBUS 从站。
MB_ADR:通信对象MODBUS从站的地址。有效地址范围为0-247。值 0 被保留用于将消
息广播到所有 Modbus 从站。 只有Modbus 功能代码 05、06、15 和 16
是可用于广播的功能代码。
注意:此处MODBUS从站的地址一定要与仪表PAC3200 的MODBUS 地址相一致。
IA&DT Service & Support
Page 20-27
MODE:模式选择。选择范围为:读、写、诊断。
DATA_ADDR:从站中的起始地址: 指定要在 Modbus 从站中访问的数据的起始地
址。
特别注意的是:由于仪表PAC3200的寄存器与S7-1200 MODBUS RTU寄存器的不一致
性,读取仪表PAC3200的DATA_ADDR的地址必须从40002开始。
注意: S7-1200的MODBUS RTU通信功能是通过使用“DATA_ADDR”和“MODE”的组合
来选择MODBUS功能码,如下表所示。
表 5: S7-1200 的 MODBUS RTU 通信功能码
而仪表PAC3200 MODBUS RTU通信功能则是通过功能码来实现的,如下表所示。
FC 功能码 数据类型 访问权限
02 输入的状态 位 输入 R
03 输出寄存器 寄存器 输出 R
04 输入寄存器 寄存器 输入 R
06 单一输出寄存器 寄存器 输出 RW
10 多个输出寄存器 寄存器 - RW
2B 设备识别 - - R
表 6: 仪表 PAC3200 MODBUS RTU 通信功能码
IA&DT Service & Support
Page 21-27
因此从上述可以得出如果需要读取输出寄存器的值时,需要使用模式0的03H功能,即
从寄存器40001到49999来读取仪表的数据,但是由于仪表PAC3200的寄存器与S7-1200
MODBUS RTU寄存器的不一致性,读取仪表PAC3200的DATA_ADDR的地址必须从40002开
始。
DATA_LEN:请求访问数据的长度。位数或字节数。
DATA_PTR:数据指针: 指向要写入或读取的数据的 CPU DB 地址。 该DB 必须为
“非仅符号访问”DB 类型。
NDR: 新数据就绪:
• 0 – 事务未完成
• 1 – 表示 MB_MASTER 指令已完成所请求的有关 Modbus从站的事务。
BUSY:忙:
• 0 – 无正在进行的 MB_MASTER 事务
• 1 – MB_MASTER 事务正在进行
ERROR:错误:
• 0 - 未检测到错误
• 1 – 表示检测到错误并且参数 STATUS 提供的错误代码有效。
STATUS:状态代码,如下表所示。
IA&DT Service & Support
Page 22-27
表 7: MB_MASTER 进行 MODBUS RTU 通信的状态代码
IA&DT Service & Support
Page 23-27
在成功地编译下载到在 S7-1200 PLC 中后,可以从变量表中看到仪表 PAC3200 的三相
相电压数据,如下图所示。
图 15:在 S7-1200 中通过 MODBUS RTU 通信得到的仪表 PAC3200 的三相相电压数据
Modbus 主站通信规则:
● 必须先执行 MB_COMM_LOAD 组态端口,然后 MB_MASTER 指令才能与该端口通
信。
● 如果要将某个端口用于初始化 Modbus 主站的请求,则 MB_SLAVE 将不能使用该端
口。MB_MASTER 执行的一个或多个实例可使用该端口。
● Modbus 指令不使用通信中断事件来控制通信过程。 用户程序必须轮询
MB_MASTER 指令以了解传送和接收的完成情况。
● 如果用户程序操作 Modbus 主站并使用 MB_MASTER 向从站发送请求,则用户必须
继续轮询(执行 MB_MASTER)直到返回从站的响应。
● 请从同一个 OB(或 OB 优先等级)调用指定端口的所有 MB_MASTER 执行。
IA&DT Service & Support
Page 24-27
3.MODBUS_SLAVE 功能块的编程
由于 S7-1200 与 PAC3200 进行 MODBUS RTU 通信,没有使用 MODBUS_SLAVE 功
能块,因此在此只作简单介绍。
MB_SLAVE 指令允许程序作为 Modbus 从站使用点对点 (PtP, Point-to-Point) CM
1241RS485 或 CM 1241 RS232 模块上的端口进行通信。 Modbus RTU 主站可以发出请
求,然后程序通过执行 MB_SLAVE 来响应。
在程序中放置 MB_SLAVE 指令时,必须分配唯一的背景数据块。 指定
MB_COMM_LOAD 指令中的 MB_DB 参数时会用到该 MB_SLAVE 背景数据块名称。
Modbus 通信功能代码(1、2、4、5 和 15)可以在 PLC 输入过程映像及输出过程映
像中直接读写位和字。
图 16:MB_SLAVE 功能块
MB_ADDR:Modbus RTU 地址(1 到 247):Modbus 从站的站地址。
MB_HOLD_REG:指向 Modbus 保持寄存器 DB 的指针。 保持寄存器 DB 必须
为典型的全局 DB。
注意:在创建此数据块时,请不要选择“Symbolic address only 仅通过符号地址访
问”。使用“MB_SLAVE”指令时,
NDR:新数据就绪:
• 0 – 无新数据
• 1 – 表示 Modbus 主站已写入新数据
DR:数据读取:
• 0 – 无数据读取
• 1 – 表示 Modbus 主站已读取数据
ERROR:错误:
• 0 - 未检测到错误
• 1 – 表示检测到错误并且参数 STATUS 提供的错误代码有效。
IA&DT Service & Support
Page 25-27
STATUS:错误代码。如下表所示。
表 8: MB_SLAVE 进行 MODBUS RTU 通信的状态代码
IA&DT Service & Support
Page 26-27
附录-推荐网址
自动化系统
西门子(中国)有限公司
工业自动化与驱动技术集团 客户服务与支持中心
网站首页:www.4008104288.com.cn
自动化系统 下载中心:
http://www.ad.siemens.com.cn/download/DocList.aspx?TypeId=0&CatFirst=1
自动化系统 全球技术资源:
http://support.automation.siemens.com/CN/view/zh/10805045/130000
“找答案”自动化系统版区:
http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1027
驱动技术
西门子(中国)有限公司
工业自动化与驱动技术集团 客户服务与支持中心
网站首页:www.4008104288.com.cn
驱动技术 下载中心:
http://www.ad.siemens.com.cn/download/DocList.aspx?TypeId=0&CatFirst=85
驱动技术 全球技术资源:
http://support.automation.siemens.com/CN/view/zh/10803928/130000
“找答案”驱动技术版区:
http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1038
IA&DT Service & Support
Page 27-27
注意事项
软件开发合同注意事项软件销售合同注意事项电梯维保合同注意事项软件销售合同注意事项员工离职注意事项
应用示例与所示电路、设备及任何可能结果没有必然联系,并不完全相关。应用示例不表示
客户的具体解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。它们仅对典型应用提供支持。用户负责确保所述产品的正确使用。这
些应用示例不能免除用户在确保安全、专业使用、安装、操作和维护设备方面的责任。当使
用这些应用示例时,应意识到西门子不对在所述责任条款范围之外的任何损坏/索赔承担责
任。我们保留随时修改这些应用示例的权利,恕不另行通知。如果这些应用示例与其它西门
子出版物(例如,目录)给出的建议不同,则以其它文档的内容为准。
声明
我们已核对过本
手册
华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载
的内容与所描述的硬件和软件相符。由于差错难以完全避免,我们不能
保证完全一致。我们会经常对手册中的数据进行检查,并在后续的版本中进行必要的更正。
欢迎您提出宝贵意见。
版权© 西门子(中国)有限公司 2001-2008 版权保留
复制、传播或者使用该文件或文件内容必须经过权利人书面明确同意。侵权者将承担权利人
的全部损失。权利人保留一切权利,包括复制、发行,以及改编、汇编的权利。
西门子(中国)有限公司