操作指南 09 月 /2015 年 ET200S 使用 TIA Step7 V13 进行 Modbus 通讯 ET200S,MODBUS RTU,TIA Step7 V13 https://support.industry.siemens.com/cs/cn/zh/view/109479393 Unrestricted
目录 1 相关软件及使用介绍... 3 1.1 TIA PORTAL STEP7 V13... 3 1.2 软件包... 3 1.2.1 MODBUS 驱动软件包... 3 1.2.2 ModScan32 / ModSim32... 3 2 手册及相关应用文档... 3 3 MODBUS Master 通信... 4 3.1 硬件列表... 4 3.2 组态和配置... 4 3.3 编写通信程序... 10 3.4 设备连接... 13 3.5 通信测试... 13 4 MODBUS Slave 通信... 15 4.1 硬件列表... 15 4.2 组态和配置... 16 4.3 编写通信程序... 20 4.4 设备连接... 23 4.5 通信测试... 23 Unrestricted 2
1 相关软件及使用介绍 1.1 TIA PORTAL STEP7 V13 TIA PORTAL STEP7 V13 编程软件用于编写 PLC 程序, 此软件需要从西门子购买, 本文档中所有的程序代码及截图均使用 TIA PORTAL STEP7 V13 编写 1.2 软件包 1.2.1 MODBUS 驱动软件包 本文中使用的软件 TIA PORTAL STEP7 V13, 不需要单独安装 ET200S 串口通讯模块的驱动软件包 而软件 STEP7 V5.x 需单独安装软件包, 该 ET200S 1SI 软件包可以从下面的链接下载, 到目前为止最新的软件版本是 V2.5.3 https://support.industry.siemens.com/cs/cn/zh/view/25358470 1.2.2 ModScan32 / ModSim32 第三方提供的软件, 可以从互联网上免费下载 ModScan32 可用来仿真 MODBUS 主站, 测试和 MODBUS 从站的通讯 ModSim32 可用来仿真 MODBUS 从站, 测试和 MODBUS 主站的通讯 2 手册及相关应用文档 关于西门子串行通讯模块的其他应用文档可以登陆西门子工业支持中心网站 http://www.4008104288.com.cn, 链接全球技术资源和下载中心 链接全球技术资源, 可以下载如下文档 : 用于 TIA Portal V11.0+SP2 的示例程序 ET200S 1SI MODBUS zxx21_10_1si_ MODBUS.zip https://support.industry.siemens.com/cs/us/en/view/59577976/zh SIMATIC ET200S 串行接口模块 https://support.industry.siemens.com/cs/cn/zh/view/9260793 链接下载中心, 可以下载如下文档 文档编号 A0123 文档名称 ET200S Modbus/USS 模板使用指南 表 2-1 下载中心串行通讯模块应用文档 Unrestricted 3
3 MODBUS Master 通信 MODBUS RTU 通讯协议是主从模式的通信, 在传输的过程中主站主动发送请求报文到从站, 从站返回应答报文, 具体 MODBUS RTU 有关协议的内容请参阅 MODBUS RTU 相关文档或手册 这章详细介绍 ET200S 做 Modbus Master 通信 3.1 硬件列表 设备名称 PS 307 CPU 315-2PN/ DP MMC ET200S 接口模块 PM-E 电源模块 ET200S 1SI 串口模块 设备型号 6ES7 307-1EA01-0AA0 6ES7 315-2EH14-0AB0 6ES7 953-8LG30-0AA0 6ES7 151-3BA60-0AB0 6ES7 138-4CA01-0AA0 6ES7 138-4DF11-0AB0 表 3-1 ET200S 做 Modbus Master 通讯硬件列表 3.2 组态和配置 1 打开软件 TIA PORTAL STEP7 V13, 点击项目 -> 新建... 创建一新项目, 项目名称为 ET200S_modbusM 图 3-1 新建项目 Unrestricted 4
2 用鼠标点击 添加新设备, 选择选择 SIMATIC S7-300->CPU->CPU 315-2PN/DP->6ES7 315-2EH14-0AB0 图 3-2 添加站点 CPU 315-2PN/DP 3 双击 设备组态 进入硬件组态界面, 导轨 RACK 和 CPU 315-2PN/DP 已经存在, 只需要插入 PS307 双击以太网接口, 进入以太网接口属性界面, 分配 IP 地址, 新建一个子网 PN/IE_1 图 3-3 组态硬件 4 点击 网络视图, 可以看到新生成的子网 PN/IE_1, 从选件目录中找到正确的 ET200S 接口模块型号, 将它拖拽到网络视图中 Unrestricted 5
图 3-4 网络配置 ET200S 站 5 点击 未分配, 选择 IO 控制器 PLC_1.PROFINET 接口 _1, 为 ET200S 分配好 IO 控制器, 同时自动为 ET200S 的以太网接口分配好一个 IP 地址, 注 : 此时给 ET200S 分配了一个设备名称为 IO device_1, 且离线和在线的设备名称一定要一致, 下面介绍如何修改设备名称 图 3-5 Profinet 网络配置 如需离线修改该设备名称, 可以进入 ET200S 模块的属性 - 以太网地址, 见图 3-6 Unrestricted 6
图 3-6 离线修改 ET200S 的设备名称 如 ET200S 的实际设备名称与组态设置的不一致, 也可以在线修改 右击网络 PN/IE_1, 点击 分配设备名称, 在线修改 ET200S 的设备名称 图 3-7 在线修改 ET200S 的设备名称 Unrestricted 7
6 双击 IO device_1, 进入 ET200S 组态界面, 将电源模块 PM-E 和 ET200S 1SI 串口模块组态到 1 2 槽 图 3-8 组态 ET200S 7 双击 1SI_1 串口通讯模块, 进入属性框, 协议选择 ASCII, 波特率为 9600, 地址区为 32 字节 图 3-9 1SI_1 选择 Modbus Master 协议 8 点击 报文, 进行报文设置, 停止位 :1, 奇偶校验 : 无 Unrestricted 8
图 3-10 报文设置 9 点击 接口, 接口选择 半双工 (RS-485 两线制模式 ), 接收线路初始状态选择 信号 R(A)0V/ 信号 R(B)5V 图 3-11 接口设置 10 点击 I/O 地址, 记住输入和输出的起始地址 292, 这在通讯编程中需要用到 图 3-12 模块地址分配 Unrestricted 9
3.3 编写通信程序 1 双击 添加新块, 创建发送数据块 DB10 和接收数据块 DB11, 发送数据块的名称为 Send, 接收数据块的名称为 Rev; 如下图所示, 发送数据块中新建几个变量, 从站地址为 2, 功能码为 3, 起始地址为 0, 读 4 个寄存器数据, 具体功能码 3 的使用参见手册 Simatic ET200S 串行接口模块 3.5 章节的说明 ; 如下图所示, 接收数据块中新建 1 个数据类型 Array 的变量, 数组元素的数据类型为 Byte, 数量为 401 图 3-13 新建发送数据块 图 3-14 新建接收数据块 2 进入主程序 OB1, 从通信 -> 通信处理器 ->ET200S 串行接口, 调用发送功能块 S_SEND 和接收功能块 S_RCV S_SEND 的背景数据块为 DB1,S_RCV 的背景数据块为 DB2 Unrestricted 10
图 3-15 调用发送接收功能块 ET200S 的发送功能块 S_SEND 的参数设置见下表 管脚 REQ R LADDR 解释描述 发送数据触发位, 上升沿触发, 本例中为 M0.5, 见图 3-14 取消通讯, 本例中不用 硬件组态中的起始逻辑地址, 本例中为 292, 见图 3-10 DB_NO 发送数据块号, 本例中为 10(DB10) DBB_NO LEN 发送数据的起始地址, 本例中为 0 (DB10.DBB0) 发送数据的长度, 本例中为 MW12, 本例中 MW12 赋值为 6, 见图 3-11 COM_RST 如果为 1, 重新启动 FB, 本例中为 M10.1 DONE 发送完成位, 发送完成且没有错误时为 TRUE Unrestricted 11
ERROR STATUS 错误位, 为 TRUE 说明有错误 表 3-2 ET200S 功能块 S_SEND 的参数设置表 ET200S 的接收功能块 S_RCV 的参数设置见下表 状态字, 标识错误代码, 查看 ET200S 串行模块手册获得相应的说明 管脚 EN_R LADDR 解释描述 使能接收位, 本例中为 M20.0, 常闭点, 始终保持接收状态 硬件组态中的起始逻辑地址, 本例中为 292, 见图 3-10 DB_NO 发送数据块号, 本例中为 11(DB11) DBB_NO 发送数据的起始地址, 本例中为 0 (DB11.DBB0) COM_RST 如果为 1, 重新启动 FB, 本例中为 M20.2 NDR 接收完成位, 接收完成并没有错误为 TRUE ERROR LEN STATUS 错误位, 为 TRUE 说明有错误 接收数据的长度, 只显示一个扫描周期, 即 : 只有在接收到数据的当前周期, 此值不为 0 状态字, 标识错误代码, 查看 ET200S 串行模块手册获得相应的说明 表 3-3 ET200S 功能块 S_RCV 的参数设置表 图 3-16 CPU 时钟存储器设置 Unrestricted 12
3.4 设备连接 购买一个 RS232 转 RS485 的接口转换器, 连接本例中 CP341 的 RS485 和计算机的 RS232 接口, 电缆连接方法请参看手册 ET200S Modbus/USS 模板使用指南 ( 见 : 第 4 章节 ) 3.5 通信测试 1 双击 ModSim32 软件图标, 新建项目, 点击 Port1, 进入端口 1 做设置, 本例计算机只有一个端口, 所以就对端口 1 做设置, 如果计算机有多个端口, 要注意所选端口 图 3-17 新建从站测试项目 2 进入 Port1 设置界面, 设置波特率 数据位 奇偶校验等参数, 要和 ET200S 的参数相同 Unrestricted 13
图 3-18 设置从站端口 3 点击 OK, 选择软件的 03 功能码界面, 本例设置 03 功能码的 10 个数据, 其中前 4 个数据分别设置成 1 4 图 3-19 从站 03 功能码设置数据 Unrestricted 14
4 首先将硬件配置和程序下载到 CPU315-2PN/DP 中, 时钟脉冲信号 M0.5 从 0 跳变成 1 时,CP341 将数据发送出去 图 3-20 ET200S 的 03 功能码发送数据 5 M20.0 为常闭点, 程序下载完成,CPU 运行后, 就始终处于接收状态 在 STEP7 中打开接收数据块 DB11 监控接收到的数据, 可以看到发送的数据被正确的接收 图 3-21 ET200S 的 03 功能码接收数据 4 MODBUS Slave 通信 前面介绍了 ET200S 的 Modbus Master 通信, 这一章将详细介绍 ET200S 做 Modbus Slave 通信 4.1 硬件列表 设备名称 PS 307 CPU 315-2PN/ DP MMC ET200S 接口模块 设备型号 6ES7 307-1EA01-0AA0 6ES7 315-2EH14-0AB0 6ES7 953-8LG30-0AA0 6ES7 151-3BA60-0AB0 Unrestricted 15
PM-E 电源模块 ET200S 1SI 串口模块 6ES7 138-4CA01-0AA0 6ES7 138-4DF11-0AB0 表 4-1 ET200S 做 Modbus Slave 通讯硬件列表 4.2 组态和配置 1 打开软件 TIA PORTAL STEP7 V13, 点击项目 -> 新建... 创建一新项目, 项目名称为 ET200S_modbusS 图 4-1 新建项目 2 用鼠标点击 添加新设备, 选择 SIMATIC S7-300->CPU->CPU 315-2PN/DP->6ES7 315-2EH14-0AB0 Unrestricted 16
图 4-2 添加站点 CPU 315-2PN/DP 3 双击 设备组态 进入硬件组态界面, 导轨 RACK 和 CPU 315-2PN/DP 已经存在, 只需要插入 PS307 和 CP341 图 4-3 组态硬件 4 点击 网络视图, 可以看到新生成的子网 PN/IE_1, 从选件目录中找到正确的 ET200S 接口模块型号, 将它拖拽到网络视图中 Unrestricted 17
图 4-4 网络配置 ET200S 站 5 点击 未分配, 选择 IO 控制器 PLC_1.PROFINET 接口 _1, 为 ET200S 分配好 IO 控制器, 同时自动为 ET200S 的以太网接口分配好一个 IP 地址, 注 : 此时给 ET200S 分配了一个设备名称为 IO device_1, 且离线和在线的设备名称一定要一致, 下面介绍如何修改设备名称 如需要修改 ET200 的离线和在线的设备名称, 可以参见图 3-6 和图 3-7 图 4-5 Profinet 网络配置 6 双击 IO device_1, 进入 ET200S 组态界面, 将电源模块 PM-E 和 ET200S 1SI 串口模块组态到 1 2 槽 Unrestricted 18
图 4-6 组态 ET200S 7 双击 1SI_1 串口通讯模块, 进入属性框, 协议选择 ASCII, 波特率为 9600, 地址区为 32 字节 图 4-7 1SI_1 选择 Modbus Slave 协议 8 点击 报文, 进行报文设置, 停止位 :1, 奇偶校验 : 无 图 4-8 报文设置 Unrestricted 19
9 点击 接口, 接口选择 半双工 (RS-485 两线制模式 ), 接收线路初始状态选择 信号 R(A)0V/ 信号 R(B)5V 图 4-9 接口设置 10 点击 I/O 地址, 记住输入和输出的起始地址, 这在后面的通讯编程中需要用到 图 4-10 模块地址分配 4.3 编写通信程序 1 双击 添加新块, 创建数据块 DB10, 如下图所示, 按照图中所示, 设置各个变量的启动值 注 : 有关每个变量的含义, 可以参考手册 SIMATIC ET200S 串行接口模块 的 3.6.3 章节和 3.6.18 章节 Unrestricted 20
举例说明 :F01_MOD_STRT_ADR_1 表示设置功能码 01 05 15 的 Modbus 起始地址, 本例中设置为 16#0, 即表示 00001;F01_MOD_END_ADR_1 表示设置功能码 01 05 15 的 Modbus 终止地址, 本例中设置 16#ff, 即表示为 00256;F01_CNV_TO_FLAG_A 表示设置 PLC 的 M 地址的起始地址, 本例设置为 16#0, 即表示 M0.0, 说明 M0.0 与 00001 是对应关系, 往下依次类推 举例说明 :FC03_06_16_DB_NO 表示设置与功能码 03 06 16 的 Modbus 地址对应的 DB 块, 本例中设置 16#B, 即表示 DB11, 说明 DB11.DBW0 与 40001 是对应关系, 往下依次类推 再创建 2 个数据块, 如下图所示,DB11( 命名 FC030616) DB12( 命名 FC04), 这 2 个数据块都创建 1 个数据类型 Array 的变量, 数组元素的数据类型为 Word, 数量为 200 注 :DB11 的数据变量用于功能码 03 06 16; DB12 的数据变量用于功能码 04 用于下面的测试 Unrestricted 21
图 4-11 新建 3 个数据块 2 进入主程序 OB1, 从通信 -> 通信处理器 ->ET200S 串行接口, 调用能块 S_MODB 图 4-12 MODBUS Slave 功能块 关于功能块 S_MODB 的管脚说明, 请见表 4-2 LADDR START_TIMER START_TIME DB_NO 硬件组态中的起始逻辑地址, 本例中为 292, 见图 4-10 超时初始化定时器, 本例中为 T0 超时初始化时间值, 本例中为 S5t#5s 地址映射 DB 块, 本例中为 DB10 OB_MASK 外设访问错误屏蔽位, 本例中为 M200.0 CP_START FB 初始化始能位, 该位需要置 1 本例中 Unrestricted 22
CP_START_FM 为 M200.1 CP_START 初始化的上升沿位, 本例中为 M200.2 CP_START_NDR 从 CP 写操作位, 本例中为 M200.3 CP_START_OK 初始化成功标志, 本例中为 M200.4 CP_START_ERROR 初始化失败标志, 本例中为 M200.5 ERROR_NR ERROR_INFO 错误号, 本例中为 MW202 错误信息, 本例中为 MW204, 可以查看 Simatic ET200S 串行接口模块 手册, 第 3 章节 4.4 设备连接 表 4-2 ET200S 功能块 S_MODB 的参数设置表 购买一个 RS232 转 RS485 的接口转换器, 连接本例中 CP341 的 RS485 和计算机的 RS232 接口, 电缆连接方法请参看手册 ET200S Modbus/USS 模板使用指南 ( 见 : 第 4 章节 ) 4.5 通信测试 1 将项目程序在线, 本示例中手动将 M200.1( 即 :CP_START) 置 1, M200.2( 即 :CP_START_FM) 和 M200.4( 即 :CP_START_OK) 也会为 1 Unrestricted 23
图 4-13 CP_START 管脚置 1 情况 2 首先将硬件配置和程序下载到 CPU315-2DP 中 在计算机上打开 MODBUS 主站仿真软件 Modscan32 图 4-14 打开 Modscan32 软件 Unrestricted 24
3 点击 Modscan32 上的 Connection->Connect, 显示画面如下, 选择计算机 和 ET200S 相连的 COM 口 COM1, 设好波特率, 数据位, 停止位, 校验方式, 注 : 这些设置要与 1SI_1 的设置一致, 如下图 图 4-15 Modscan32 通信参数设置 4 设置完成, 点击 OK, 显示画面如下 图 4-16 Modscan32 操作界面 5 数据显示区的 10 个地址的数据对应 CPU 中 DB11 和 DB12 的前 5 个字的数值, 如下图, 给这 5 个字赋值 Unrestricted 25
图 4-17 DB11 和 DB12 数据赋值监控 6 Modscan32 软件界面 03 的地址 40001-40005 分别显示 1-5 的数据,04 的地址 30001-30005 分别显示 1-5 的数据 图 4-18 Modscan32 软件 03 功能码通信 图 4-19 Modscan32 软件 04 功能码通信 Unrestricted 26