S7-300 200MODBUS通信
更新时间:2023-05-19 08:17:01 阅读量: 实用文档 文档下载
S7300-200modbus
S7-300 CP341作主S7-200作从的Modbus通信
Modbus Communication -- S7-300 CP341 as Master and S7-200 as Slave
S7300-200modbus
摘要 自动化各个厂家在工业控制通信方面都有各自的通信协议及方式。西门子控制产品中通信的主要方式有MPI,Profibus,Ethernet。在现场应用中,往往需要两个厂家的控制器进行通信交换数据。Modbus通信是常用的一种。本文就以CP341都作为Modbus主站,S7-200作为Modbus从站的通信实验作介绍。 关键词 CP341 S7-200 Modbus Key Words CP341 S7-200 Modbus
IA&DT Service & Support
Page 2-24
S7300-200modbus
目 录
S7-300 CP341作主S7-200作从的Modbus通信...........................................................................1 1.系统简介及软硬件需求.............................................................................................................4 1.1 软件环境...............................................................................................................................4 1.1.1 STEP7 V5.4 SP3...........................................................................................................4 1.1.2 CP PtP Param V5.1 SP8...............................................................................................5 1.1.3 CP PTP Modbus Master V3.1.4....................................................................................5 1.1.4 STEP 7 MicroWIN V4.0 SP6.........................................................................................5 1.1.5Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library...............................................5 1.2 硬件列表...............................................................................................................................5 1.3硬件安装...............................................................................................................................5 2. CP341作Modbus主站的设置与编程.........................................................................................8 2.1 CP341作Modbus主站的硬件组态.......................................................................................8 2.1.1 硬件组态CPU及CP341..................................................................................................8 2.1.2 设置Modbus总线传输速率和帧字符结构.......................................................................8 2.1.3 设置电气接口.................................................................................................................9 2.1.4 Modbus配置的下载.....................................................................................................10 2.2 CP341作Modbus主站的编程.............................................................................................11 3.S7-200作Modbus从站的设置................................................................................................15 4. 通信测试................................................................................................................................17 4.1 FC01主站读取从站多个DO点状态....................................................................................17 4.2 FC02主站读取从站多个DI点状态......................................................................................18 4.3 FC03主站读取从站多个内部寄存器状态...........................................................................19 4.4 FC06主站写单字到从站内部寄存器..................................................................................20 4.5 FC16主站写多字到从站内部寄存器..................................................................................21 附录-推荐网址...........................................................................................................................23
IA&DT Service & Support
Page 3-24
S7300-200modbus
1.系统简介及软硬件需求
Modbus 是公开通信协议,其具有两种串行传输模式,ASCII 和 RTU。它们定义了数据如何打包、解码的不同方式。通信双方必须同时支持上述模式中的一种,通常支持Modbus通信的设备大都支持RTU 格式。Modbus 通信标准协议可以通过各种传输方式传播,如 RS232C、RS485、光纤、无线电等。 在 S7-200 CPU 通信口上实现的是 RS485 半双工通信,使用的是 S7-200 的自由口功能。
Modbus 是一种单主站的主/从通信模式。Modbus 网络上只能有一个主站存在,主站在 Modbus 网络上没有地址,从站的地址范围为 0 - 247,其中 0 为广播地址,从站的实际地址范围为 1 - 247。
在实现Modbus通信方面,西门子AS产品中往往会用到CP341和S7-200。其二者之间的不同是CP341的接口类型多,包含RS 232C (V.24) 20 mA (TTY), RS 422/RS 485 (X.27)。由于其实现Modbus通信需要购买Modbus Dongle,在实现功能成本方面比较高。但是由于CP341可安装在ET200M站上通过Profibus的方式与主站相通,此种方案很适合比较大型系统进行的Modbus通信设计和改造。S7-200系列产品是西门子AS产品中低端的产品。但是其小而精湛集成了很多通信功能。虽然S7-200在实现Modbus通信时使用的是 S7-200 的自由口功能,接口采用RS485,或是通过适配器转换成RS 232接口类型不如CP341的型号丰富,但是其在实现Modbus功能上无需组态和额外购买组件,所以实现起来既简单而且成本低廉,在比较低端的场合是个不错的选择。
在现场应用中CP341往往都作为Modbus主站来读取第三方设备的数据,而S7-200常作为Modbus从站与其他设备进行Modbus通信。本文就以CP341都作为Modbus主站,S7-200作为Modbus从站,来实现其二者的Modbus通信,阐述其二者在实现通信方面的设置和注意事项。需要说明的是S7-300与S7-200的通讯方式有很多种包括MPI、Profibus、Ethernet、Modbus等。本文旨在说明其二者在Modbus通信方面的具体安装和编程步骤。 1.1 软件环境
1.1.1 STEP7 V5.4 SP3
用于编写S7-300/400 等PLC程序,此软件需要购买,本文档中所有的程序代码均使用Step7 V5.4 SP3编写。
IA&DT Service & Support
Page 4-24
S7300-200modbus
1.1.2 CP PtP Param V5.1 SP8
串行通信模板的驱动程序,安装此驱动后才能配置PtP模板,并在Step7中集成通信编程需要使用的功能块。此驱动随购买模板一起提供,也可以从以下的链接下载。
/CN/view/zh/27013524
1.1.3 CP PTP Modbus Master V3.1.4
CP341或CP441-2用于Modbus 主站时,需要安装此驱动协议,但安装此驱动之前必须先安装PtP driver,此驱动可以在购买Modbus Dongle时选择购买,或者可以从以下链接下载。 /CN/view/zh/87137841.1.4 STEP 7 MicroWIN V4.0 SP6
此软件是用于S7-200编程和组态的软件。此软件可以免费下载到。
1.1.5Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
S7-200实现Modbus功能,需要使用Modbus的指令库,其实质是自由口通信。STEP 7-Micro/WIN V4.0 以上版内部已经带有新的指令库,支持Modbus通过Port0、Port1进行通信,但在未安装西门子 Instruction Library 软件包的情况下,不能显示出来使用。
要使用西门子的标准指令库,必须先安装西门子的指令库软件包 Instruction Library。安装了 Instruction Library 之后,只要安装的 STEP 7-Micro/WIN 版本是最新的,就能获得相应版本的新指令库。安装 Micro/WIN 的升级包(Service Pack)也会更新指令库的版本。 1.2 硬件列表
z S7-300站:
CPU315-2DP 6ES7 315-2AG10-0AB0 CP343-1 6ES7 341-1EX30-0XE0 CP341 RS422/485 6ES7 341-1CH01-0AE0
Dongle 6ES7 870-1AA01-0YA0 (MODBUS master) z S7-200站:
224XP 6ES7 214-2BD23-0XB8 (选用双口CPU便于调试) 1.3硬件安装
物理接口方面S7-200的通信口为RS485物理接口, CP341选用的也是RS 422/485接口类型的模块。二者之间可采用6ES7 902-3AB00-0AA0 RS 422/485 5m连接电缆。在本系统中
IA&DT Service & Support
Page 5-24
S7300-200modbus
采用的电缆为DP 红B 绿A 两线电缆。
在接线之前首先要仔细阅读CP341及S7-200通信接口的手册,查看通信接口针脚的定义。如图1所示。
图1 S7-200 CPU通信口引脚定义
图2 CP341 RS 422/485通信口引脚定义
IA&DT Service & Support
Page 6-24
S7300-200modbus
图3 CP341 通过RS485与通信对象的连接方式
在接线时,S7-200端由于是9针 RS485口,故用标准的DP连接器。而CP341上的接口为15针口,其4、11对应RS485接线方式的连根线。从S7-200端口3引出的是红色B线,其连接CP341 15针口的11端口。从S7-200端口8引出的是绿色A线,其连接CP341 15针口的4端口。如图4所示。
图4 S7-200与CP341 RS 422/485接口通过DP电缆的接线图
IA&DT Service & Support
Page 7-24
S7300-200modbus
2. CP341作Modbus主站的设置与编程
2.1 CP341作Modbus主站的硬件组态 2.1.1 硬件组态CPU及
CP341
图5 将CP341逻辑地址为272
2.1.2 设置Modbus总线传输速率和帧字符结构
双击CP341->Parameters->Protocol中选择Modbus Master;
双击信封Protocol,选择Modbus Master设置总线传输速率和帧字符结构。
如图 6,本例传输速率为9.6Kbit/s,帧字符选用8位数据位,1位停止位,无校验。此设置可根据实际情况调整,原则是通信双方选择一致。
IA&DT Service & Support
Page 8-24
S7300-200modbus
图6 通信帧字符结构
2.1.3 设置电气接口
选择半双工RS 485,默认设置是 R(A)为- ,R(B)为+。此设置主要是与RS485 A、B两线正负定义有关,在CP341接线与通信对象A、B两线正负定义相反时,可无需修改硬件接线,可直接修改此处颠倒接线正负。如图7所示。
IA&DT Service & Support
Page 9-24
S7300-200modbus
图 7 CP341接线与通信对象A、B两线定义
2.1.4 Modbus配置的下载
当配置好Modbus通信的参数后,在向CPU下载硬件组态前,要向CP341的Dongle中下载Modbus Master的驱动,一旦下载完成后此后无需再次下载。对于通信参数的调整只需要进行HW对CPU的硬件下载即可。
要注意的是,在下载Dongle时,一定要CPU停机下载。如图8所示
IA&DT Service & Support
Page 10-24
S7300-200modbus
图8下载Dongle时,一定要CPU停机下载
2.2 CP341作Modbus主站的编程
实现CP341作Modbus主站的通信程序是“P_SND_RK”FB8负责发送控制字。编程如下:
IA&DT Service & Support
Page 11-24
S7300-200modbus
图9 “P_SND_RK”FB8
FB8参数说明表格1。
SF LADDR REQ DB_NO DBB_NO LEN R_TYP R DONE ERROR STATUS 其它参数
‘S’为发送,此处必须为大写的‘S’ 硬件组态中的起始逻辑地址,本例中为272
发送数据触发位,上升沿触发,本例中为M0.5,以1s为周期的脉冲信号 发送数据块号,本例中为1
发送数据的起始地址,本例中为0 发送数据的长度,本例中暂时为6
‘X’为扩展的数据块,此处必须为大写的‘X’ 取消通信,本例始终为初始值FALSE
发送完成位,无故障发送完成后为true,M100.0 错误位,为true说明有错误,M100.1
状态字,标识错误代码,查看Modbus Master和CP341手册 查看在线帮助
表 1
IA&DT Service & Support
Page 12-24
S7300-200modbus
其中创建发送数据块DB1结构如图10所示:
图10 发送DB块源区域结构
创建的发送数据块DB1,至少要有6个字节的长度,后面根据功能码的不同,所需长度不同,建议发送数据块创建的长度长一些。以上图为例6个字节Address为所通讯对象的Modbus地址为1,code为功能码FC03,所读对象寄存器的起始地址为0,所读寄存器的数量为4,其中一个寄存器为两个字节。
此处有几个注意事项: 1) R_TYP必须为大写的‘X’,
为小写"x"时,CP341 作为Modbus master时,调用FB8的状态字显示为 "0E4F" 错误。注意R_TYP必须为大写。且对于R_TYP可以写的值如下:
’D’ DB 区
’X’ DX 区,extended data block ’E’ I 区 ’A’ Q 区 ’M’ M 区 ’T’ T 区 ’C’ C 区
2) LEN的长度要根据通信所需功能码来针对填写,
如下表所示
IA&DT Service & Support
Page 13-24
S7300-200modbus
表 2
LEN的长度与功能码的对应。
“P_RCV_RK”FB7用于接收通信数据。编程如图11所示:
图 11 “P_RCV_RK”FB7
FB7参数说明表格3
LADDR DB_NO DBB_NO 硬件组态中的起始逻辑地址,本例中为272 接收数据块号,本例中为DB2
接收数据的起始地址,本例中默认为0
Page 14-24
IA&DT Service & Support
S7300-200modbus
3.S7-200作Modbus从站的设置
S7-200作Modbus通信要用到自由口通信下的Modbus Slave库,对于此库的应用要注意的是
z Modbus Slave库仅支持Modbus RTU通信模式,不支持ASCII 通信模式。 z 目前的Modbus Slave库仅支持通信口Port0。
z 使用Modbus Slave库时一定要注意对库分配内存区空间。否则编译后出现很多错
误。
如图12所示:
图12 调用的库要分配系统内存地址区
编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用
MBUS_SLAVE,并指定相应参数。关于参数的详细说明,可在子程序的局部变量表中找到。
图13为S7-200实现Modbus从站的程序。 IA&DT Service & Support
Page 15-24
S7300-200modbus
图13 调用Modbus RTU通信指令库
图中参数意义如下:
a. 模式选择:启动/停止Modbus,1=启动;0=停止 b. 从站地址:Modbus从站地址,取值1~247
c. 波特率:可选1200,2400,4800,9600,19200,38400,57600,115200 d. 奇偶校验:0=无校验;1=奇校验;2=偶校验 e. 延时:附加字符间延时,缺省值为0
f. 最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128,缺省
值为128
g. 最大AI字数:参与通信的最大AI通道数,可为16或32 h. 最大保持寄存器区:参与通信的V存储区字(VW) i. 保持寄存器区起始地址:以&VBx指定(间接寻址方式) j. 初始化完成标志:成功初始化后置1 k. 初始化错误代码
IA&DT Service & Support
Page 16-24
S7300-200modbus
l. Modbus执行:通信中时置1,无 Modbus 通信活动时为 0 m. 错误代码:0=无错误
从程序截图中可见,S7-200作为Modbus从站,从站地址为10,接收存储区为VB0开始。
4. 通信测试
至此,CP341和S7-200双方的程序及物理连线已经做好。在调试S7-300时可通过CP343-1以太网模块,以便可以用以太网通信调试速度快且方便。S7-200站选用224XP,其中Port0作为Modbus通信口,Port1用于与笔记本的CP5512通信。
在进行通信测试前还要明确Modbus通信的功能码。
下表为Micro 'n Power中S7-200作为Modbus RTU从站通信功能码。
表 4 S7-200作为Modbus RTU从站通信功能码
以下测试为现场应用中经常用到的功能码FC01、02、03、06、16 4.1 FC01主站读取从站多个DO点状态
FC01功能下,“P_SND_RK”FB8的LEN为6,DB1的头两个字节分别是所要读取
从站的地址10号站(16#A),和功能码01,如表5所示。图14为S7-200的QB0的4个位被传送到DB2的接收区。其中Reg_num位数为1-2040。
地址 0.0 1.0 2.0 4.0
名称
Slave_address Function_code Reg_startAdr Reg_num
类型 值 注释
从站地址 功能代码
位起始地址 WORD W#16#0
位数 WORD W#16#4
Page 17-24
IA&DT Service & Support
S7300-200modbus
表 5 FC01 的SEND 源区域结构
图14 FC01的数据交换
4.2 FC02主站读取从站多个DI点状态
FC02功能下,“P_SND_RK”FB8的LEN为6,DB1的头两个字节分别是所要读取从站的地址10号站(16#A),和功能码02,如表6所示。图15为S7-200的I0.0-I0.3的四个位被传送到DB2的接收区。其中Reg_num位数为1-2040。
地址 0.0 1.0 2.0 4.0
名称 类型 值 注释 Slave_address 从站地址 Function_code 功能代码
位起始地址 Reg_startAdr WORD W#16#0
位数 Reg_num WORD W#16#4
表 6 FC02 的SEND 源区域结构
IA&DT Service & Support
Page 18-24
S7300-200modbus
图15 FC02的数据交换
4.3 FC03主站读取从站多个内部寄存器状态
FC03功能下,“P_SND_RK”FB8的LEN为6,DB1的头两个字节分别是所要读取从站的地址10号站(16#A),和功能码03,如表7所示。图16为S7-200的V区3个寄存器传送到DB2的接收区。注意在一次请求中可以读取最多 127 个寄存器(每个寄存器2个字节)的数据。
地址 0.0 1.0 2.0 4.0
名称 类型 值 注释 Slave_address 从站地址 Function_code 功能代码
寄存器起始地址 Reg_startAdr WORD W#16#0
寄存器数 Reg_num WORD W#16#3
表 7 FC03 的SEND 源区域结构
IA&DT Service & Support
Page 19-24
S7300-200modbus
图16 FC03 的数据交换
4.4 FC06主站写单字到从站内部寄存器
FC06功能下,“P_SND_RK”FB8的LEN为6,DB1的头两个字节分别是所要读取从站的地址10号站(16#A),和功能码06,如表8所示。图17为DB1.DBW4传送到从站VW0的接收区。
地址 0.0 1.0 2.0 4.0
名称 类型 值 注释 Slave_address 从站地址 Function_code 功能代码 寄存器地址 Reg_startAdr WORD W#16#0
寄存器值 Reg_num WORD W#16#1234
表 8 FC06 的SEND 源区域结构
IA&DT Service & Support
Page 20-24
S7300-200modbus
图17 FC06 的数据交换
4.5 FC16主站写多字到从站内部寄存器
FC16功能下,“P_SND_RK”FB8的LEN不为6,而是发送命令及数据的总长度本例中设为20。DB1的头两个字节分别是所要读取从站的地址10号站(16#A),和功能码16(16#10)。功能码FC16时,所要发送的数据从DB1.DBW6开始(从第7个字节开始)如表9所示。图18为DB1.DBW6开始的多字发送到VW0开始的接收区。Reg_num为写寄存器的总数目。注意在一次请求中可以写最多 127 个寄存器(每个寄存器2个字节)的数据。
地址 0.0 1.0 2.0 4.0 6.0 8.0 10.0
名称 类型 值 Slave_address Function_code Reg_startAdr WORD W#16#0 Reg_num WORD W#16#3 Data1 Data2 Data3 表 9 FC16 的SEND 源区域结构
注释 从站地址 功能代码 寄存器起始地址 寄存器数目 寄存器值 寄存器值 寄存器值
IA&DT Service & Support
Page 21-24
正在阅读:
S7-300 200MODBUS通信05-19
fullCalendar2.9排课03-09
微积分习题课题目06-05
山东什么留学中介好07-24
2022年扫黑除恶宣传标语大全08-01
大气课程设计 环工1001 熊旭晴 101310010603-15
JSP自测题及答案03-11
苏教版六年级语文上册配套练习册答案03-08
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 200MODBUS
- 通信
- 300
- 晴天-局域网通信软件设计报告
- 1MRK502018-SZH_A_zh_Generator_protection_IED_REG_670_(cn)
- 满洲里城市建设考察调研
- 高一数学诱导公式1-4练习含答案-参考模板
- 在职职工异动名册表
- “十三五”重点项目-核桃项目可行性研究报告
- 商务英语写作试卷B答案
- 《公共管理理论研究》第七讲西方政府新公共管理改革
- 汽车集团在华研发中心运作模式调研(中国汽车跳槽指南)
- 浅谈网站在交换友链时三种最有效的方法
- 七年级中国古代史复习
- 生物化学试卷及答案10套
- 2011-2015年中国家用电冰箱市场竞争格局与投资前景预测报告
- 河北省武邑中学2015届高三英语二轮复习完型专练完型专练议论文一 Word版含答案
- 开题报告——材控基于Creo的手机外壳注塑模具设计与加工
- 皮肤性病学试题及答案
- 德国迪贝特某宿舍楼及餐厅地源热泵初步设计方案0308
- 中级财务会计二作业答案(含题目)
- 稀疏矩阵的加法,三元组实现矩阵的乘法
- 关于实施公共部门人力有效激励的途径论文