西门子6SL3210-1KE14-3UP1 西门子6SL3210-1KE14-3UP1
我公司西门子销售 PLC CPU 触摸屏 变频器 楼宇
SIEMENS上海朕锌电气设备有限公司
销售电话 (微信同步)
QQ 2779823058 转真
本公司代理系列如下
【一诺千金诚信交易】【长期销售、安全稳定】
【称心满意、服务动力】【真诚面对、沟通无限】
【质量、客户满意】 西门子 知其巧 用其妙
真诚对待您的每一次来电
公司主营:CPU PLC模块西门子数控系统,S7-200PLC S7-300PLC S7-400PLC
S7-1200PLC 6ES5 ET200
人机界面,变频器,DP总线,MM420变频器MM430变频器MM440 6SE70交流工程调速变频器
6RA70直流调速装置SITOP电源,电线电缆,数控备件,伺服电机等工 6AV 6XV 6DD DP
(西门子代理商)SIEMENS上海朕锌电气设备有限公司
西门子楼宇系列
1. 概述
在现场应用中,很多仪表和设备仅支持Modbus RTU的通讯协议,第三方仪表可以做Modbus主站或从站,西门子的通讯模块CP341 / CP441-2 通过Dongle(硬件狗)可以扩展该协议,S7-200 集成的口可以支持自由口通讯,通过指令库也可以方便的实现Modbus RTU通讯。本文以S7-200作为Modbus 主站,CP341作为Modbus 从站,实现Modbus RTU通讯,阐述两者在通讯方面的设置和注意事项。
2. 软件环境
2.1 STEP7 V5.4 SP4
用于编写 S7-300/400程序,此软件需要从西门子购买,本文档中的300的程序是使用Step7 V5.4 SP4的软件编写。
2.2 CP PTP Param V5.1 SP11
串行通讯模板的驱动程序,安装此驱动后才能对PtP模板进行参数配置,并在Step7中集成通讯编程需要使用的功能块。此驱动随购买模板一起提供,也可以从以下的链接下载:27013524
2.3 CP PTP Modbus Slave V3.1 SP7
CP341或CP441-2用于Modbus从站时,需要安装此驱动协议,但安装之前必须先安装PtP Driver,此驱动可以在购买Modbus Dongle时选择购买,也可以从以下的链接下载:27774276
2.4 STEP7 Micro/WIN V4.0 SP6
用于S7-200编程的软件,本文档中的200的程序是使用Step7 Micro/win 的软件编写。此软件可以从西门子下载中心免费下载,也可以从以下的链接下载。
http://www.ad.siemens.com.cn/download 网站 自动化系统>>S7-200>>软件,文档编号S0002。
2.5 Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
S7-200实现Modbus RTU功能,可以使用Modbus的指令库,要使用西门子的标准指令库,必须先安装指令库的软件包 Instruction Library,安装后,可以在Step 7-Micro/WIN软件的库中找到Modbus相关的指令,该软件包可以从以下的链接下载。http://www.ad.siemens.com.cn/download 网站 自动化系统>>S7-200>>软件,文档编号S0010。
3. 硬件列表和接线
3.1 硬件列表
S7-300从站 | CPU315-2DP | 6ES7 315-2AG10-0AB0 |
CP341 RS422/485 | 6ES7 341-1CH01-0AE0 | |
Dongle | 6ES7 870-1AB01-0YA0 | |
PC 适配器(USB) | 6ES7 972-0CB20-0XA0 | |
S7-200主站 | CPU 224XP | 6ES7 214-2BD23-0XB0 |
表1 硬件设备
3.2 硬件接线
3.2.1 接口定义
S7-200的通讯口为RS485物理口(9针口),CP341是RS422/485的接口类型(15针口),两种设备的接口引脚的示意图如下所示,更详细的信息可以参考CP341及S7-200通信接口的手册。
图1 S7-200 CPU通信口引脚定义
图2 S7-300 CP341 RS422/485 通讯口引脚定义
3.2.2 接线示意图
图3 硬件结构和接线示意图
4. 组态设置和编程
4.1 S7-200做Modbus主站的设置
S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口,此串行字符通信的格式:1个起始位;7/8位数据位;1位奇/偶/无校验;1停止位。通信波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500,符合这些格式的串行通讯设备可以和S7-200进行自由口通讯,Modbus RTU指令库就是使用自由口编程实现的。
4.1.1 Modbus RTU主站库
使用Modbus 主站指令库时需要注意的几点:
需要S7-200的编程软件是 Micro/WIN V4.0 SP5及以上版本;
Modbus RTU 主站库对CPU的版本有要求,CPU 的版本必须为 2.00 或者 2.01(即订货号为 6ES721*-***23-0BA*);
Modbus主站可读/写的大数据量为120个字(指每一个 MBUS_MSG 指令);
Modbus 主站库支持Port0和Port1(从站库只支持Port0口),本例中用Port0;
使用Modbus 库时必须对库存储区进行分配,见下图设置,而且分配的空间不能和程序中其它空间冲突,否则编译调用会报错。
图4 库存储区设置
Modbus主站库支持的功能码和地址对应关系:
Modbus 地址 | 读 / 写 | Modbus 从站须支持的功能 |
00001~09999 | 读 | 功能1:读输出点 |
数字量输出 | 写 | 功能5:写单个输出点 |
功能15:写多个输出点 | ||
10001~19999 | 读 | 功能2:读输入点 |
数字量输入 | ||
30001~39999 | 读 | 功能4:读输入寄存器 |
输入寄存器 | ||
读 | 功能3:读保持寄存器 | |
保持寄存器 | 写 | 功能6:写单个寄存器 |
功能16:写多个寄存器 |
表2需要从站支持的功能
4.1.2 S7-200 Modbus主站编程
编程时,使用SM0.0调用MBUS_CTRL完成主站的参数初始化,详细见下表,参数的说明也可以从子程序的局部变量表中找到。
图5 Modbus RTU 主站初始化
图中各参数含义如下
编号 | 符号/含义 | 说 明 |
a | EN / 使能 | 必须保证每一扫描周期都被使能(使用SM0.0)。 |
b | Mode / 模式 | 为1时使能为Modbus协议;为0时恢复为PPI协议。 |
c | Baud / 波特率 | 支持的通讯波特率为1200,2400,4800,9600,19200,38400,57600,115200。 |
d | Parity / 校验 | 校验方式选择:0=无校验;1=奇校验,2=偶校验。 |
e | Timeout / 时 | 主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000毫秒,允许设置的范围为1-32767。这个值必须设置足够大以保证从站有时间响应。 |
f | Done / 完成位 | 初始化完成,此位会自动置1。 |
g | Error / 错误位 | 初始化错误代码。 |
表3
调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求。
图6 调用Modbus RTU 主站读写子程序
图中各参数含义如下
编号 | 符号/含义 | 说 明 |
a | EN / 使能 | 同一时刻只能有一个读写功能使能。 |
b | First / 读写请求位 | 每一个新的读写请求必须使用脉冲触发。 |
c | Slave / 从站地址 | 可选择的范围1–247。 |
d | RW / 读写操作位 | 0=读, 1=写。 |
e | Addr / 读写从站的数据地址 | 选择读写的数据类型: |
00001 至 0xxxx - 开关量输出 | ||
10001 至 1xxxx - 开关量输入 | ||
30001 至 3xxxx - 模拟量输入 | ||
40001 至 4xxxx - 保持寄存器。 | ||
f | Count / 数据的个数 | 通讯的数据个数(位或字的个数)。 |
g | DaptPtr / 数据指针 | 如果是读指令,读回的数据放到这个数据区中; |
如果是写指令,要写出的数据放到这个数据区中。 | ||
h | Done / 完成位 | 读写功能完成位。 |
i | Error / 错误代码 | 只有在Done位为1时,错误代码才有效。 |
表4
从上图中可见,S7-200作为Modbus RTU主站,波特率9.6Kb/s,偶校验,连接从站的站地址是3,数据存储区为VB2000开始的区域。
4.2 CP341 做Modbus 从站的硬件组态
4.2.1 硬件组态
图7 S7-300侧硬件组态
4.2.2 设置Modbus参数
图8 消息桢字符结构
按照上述操作设置参数,从上图可以看出,本例中的传输波特率9.6Kb/s,1位起始位,8位数据位,偶校验位,1位停止位,从站站地址是3,主从通讯设备的字符帧格式和波特率等参数设置需要一致。
图9 RS422/485 接口组态
RS422/485接口只能一个有效,接口的选择只需要组态而不需要在硬件上短接。
4.2.3 Modbus驱动的下载
当配置好Modbus通信的参数后,保存前需要向CP341下载Modbus Slave的驱动,一旦下载完成后无需再次下载。
需要注意的是,在下载驱动时(可以在无Dongle情况下下载),需要将CPU停机,然后下载,操作过程如下所示。
图10 下载Dongle时,需要CPU停机
图11 从站驱动下载后结果
4.2.4 CP341做Modbus从站的编程
从Step7 软件下的EXAMPLE目录中,找到项目名“zXX21_05_PtP_Com_MODSL”的项目,打开,然后将Modbus通讯模块FB80传递到用户项目中,打开路径如下所示。
图12 Modbus Slave 例程打开路径
OB1中调用FB80编程如下:
图13 FB80程序块调用
CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK为1信号,否则CP_START_ERROR为1,同时可以从ERROR_NR察看错误信息,也可以在硬件组态中在线后的CP341的诊断缓冲区察看详细的错误信息,错误信息对照和处理方式可以参考
《S7-300以用于PtP CP Modbus 协议RTU格式S7的可装载驱动程序为从站》的手册。
FB80的各参数含义如下
LADDR | 硬件组态中CP341的起始逻辑地址,本例中为256 |
START_TIMER | 初始化时定时器,本例中为T120 |
START_TIME | 初始化定时器时间,本例中为5S |
OB_MASK | I/O访问错误屏蔽位,本例中为True(I/O访问错误已屏蔽) |
CP_START | FB初始化使能位,本例中为M0.0 |
CP_START_FM | CP_START 初始化的上升沿位,本例中为M0.1 |
CP_NDR | 从CP卡写操作位,本例中为m0.2 |
CP_START_OK | 初始化完成且无错误,本例中为M0.3 |
CP_START_ERROR | 初始化完成,但有错误,本例中为M0.4 |
ERROR_NR | 错误号,本例中为MW2 |
ERROR_INFO | 错误信息,本例中为MW4 |
表5
5. 通讯测试
Modbus RTU格式通信协议是以主从的方式进行数据传输的,在传输的过程中主站是主动方,即主站发送数据请求报文到从站,从站返回响应报文。Modbus 系统间的数据交换是通过功能码来控制的,以下对现场常用的功能码进行分类测试,关于功能码的详细信息请参考手册。
5.1 FC01/05/15功能码
CP341从站的通讯区域配置
图14 FC01/05/15 参数组态界面
FC01、FC05、FC15对应的数据区为位输出,数据的传递以位为单位,可以读写操作,用户地址区为0xxxx,Modbus地址在信息传递中从0开始。如上图,左边为信息传递地址(地址区不能冲突),右边对应的是S7-300的数据区。例如左边信息传递地址从0 ~ 7对应用户地址区为00001 ~ 00008,对应S7-300的M10.0 ~ M10.7,并且以此为例说明FC01功能码的通讯。
S7-200主站程序调用
图15 功能码FC01使用
S7-200主站,用功能码FC01读取从站8点数字量输出,接收的数据存放在VB2000开始的区域,测试截图结果如下。
图16 FC01功能码数据交换
5.2 FC02功能码
CP341从站的通讯区域配置
图17 FC02 参数组态界面
FC02对应的数据区为位输出,数据的传递以位为单位,只读操作,用户地址区为1xxxx,Modbus地址在信息传递中从0开始,如上图,左边为信息传递地址(地址区不能冲突),右边对应的是S7-300的数据区。例如左边信息传递地址从0 ~ 7对应用户地址区为10001 ~ 10008,对应S7-300的M20.0 ~ M20.7,并且以此为例说明FC02功能码的通讯。
S7-200主站程序调用
图18 功能码FC02使用
S7-200主站,用功能码FC02读取从站8点数字量输入,接收的数据存放在VB2000开始的区域,测试截图结果如下。
图19 FC02功能码数据交换
5.3 FC03/06/16 功能码
CP341从站的通讯区域配置
图20 FC03/06/16参数组态界面
FC03/06/16 对应的数据区为寄存器,数据的传递以字为单位,可以读写操作,用户地址区为4xxxx,Modbus地址在信息传递中从0开始。如上图,左边为信息传递地址,右边对应的是S7-300的数据区,左边传输地址不可改,右边只对应一个数据区。例如用户地址
区为,对应S7-300数据区为DB1.DBW0 ~ DB1.DBW6,并且以此为例说明
FC03功能码的通讯。
S7-200主站程序调用
图21功能码FC03使用
S7-200主站,用功能码FC03读取从站4个字寄存器,接收的数据存放在VB2000开始的区域,测试截图结果如下。
图22 FC03功能码数据交换
5.4 FC04 功能码
CP341从站的通讯区域配置
图23 FC04参数组态界面
FC04对应的数据区为寄存器输入,数据的传递也以字为单位,只读操作,用户地址区3xxxx,Modbus地址在信息传送中从0开始。如上图,左边为信息传递地址,右边对应的是S7-300的数据区,左边传输地址不可改,右边只对应一个数据区。例如用户地址区为30001 ~ 30004,对应S7-300数据区为DB1.DBW0 ~ DB1.DBW6,并且以此为例说明FC04功能码的通讯。
S7-200主站程序调用
图24功能码FC04使用
S7-200主站,用功能码FC04读取从站4个字输入寄存器,接收的数据存放在VB2000开始的区域,测试截图结果如下。
图25 FC04功能码数据交换
5.5 Limits 栏
图26 Limits 参数组态界面
对于写功能码FC05、06、15、16,可以禁用或限制访问相关S7-300存储区,即使用这些功能码时,S7-300存储区需要在设定的小和大的范围之间,如果访问的区域出这个范围,则访问会被拒绝,同时输出报错误信息。
6. 结
本文档以S7-200为主站和CP341为从站简单介绍了Modbus RTU通讯,关于通讯的组态设置,编程以及常用功能码的使用,其具体的使用可以作为西门子串行通讯模块与第三方的仪表、设备等进行串行通信的参考。
7. 相关参考资料
关于西门子串行通信应用的文档可以参考相关产品手册,或登录下载中心网站http://www.ad.siemens.com.cn/download/ , 搜索下载如下文档:
A0006:串口通讯模块的信息与使用
A0081:CP340/341/440/441通讯及编程
A0336:CP341 Modbus RTU多站点轮询
A0440:CP340/341基于ASCII驱动协议的多站点轮询
A0384:S7-300 CP341作主S7-200作从的Modbus通信
关键词
CP341,Modbus RTU,功能码,S7-200
手机 微信W
电话?传真
Q Q 2779823058 公司 网址http://zhenxindianqi.cn/
西门子()上海一级销售中心西门子所有系列代理,
所有西门子系列产品订货号及参数在我们信息里都有
本公司信息里所有产品详细介绍 本公司销售西门子全球
8.3.3 S7-1200PLC与PAC3200进行MODBUSRTU的通信组态311
8.3.4 PLC的通信编程312
西门子()一级销售中心 上海一级代理商
上海朕锌电气设备有限公司 公司 网址?http://zhenxindianqi.cn/
8.3.5 测试与结316
第9章 S7-1200PLC的OPC组态319
9.1 背景知识介绍:OPC标准及其应用320
9.1.1 OPC的产生320
9.1.2 OPC的工作原理及规范320
9.1.3 OPC的服务器与客户机321
9.1.4 OPC数据访问322
9.2 技能训练一:使用SIMATICNET建立OPC数据链322
9.2.1 SIMATICNET软件介绍322
9.2.2 S7-1200PLC与SIMATICNET通信的建立322
9.3 技能训练二:WinCC案例332
9.3.1 WinCC介绍332
9.3.2 WinCC与S7-1200CPU通信332
9.4 工程案例:IFIX在变频器监控中的应用338
9.4.1 案例介绍338
手机? 微信W
??
电话??传真?
Q Q ?2779823058 公司 网址?http://zhenxindianqi.cn/
西门子()上海一级销售中心西门子所有系列代理,
所有西门子系列产品订货号及参数在我们信息里都有
本公司信息里所有产品详细介绍 本公司销售西门子全球
6ES7-1200型号
6ES72111BE400XB0 CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI
6ES72111AE400XB0 CPU 1211C DC/DC/DC,6输入/4输出,集成2AI
6ES72111HE400XB0 CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI
6ES72121BE400XB0 CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI
6ES72121AE400XB0 CPU 1212C DC/DC/DC,8输入/6输出,集成2AI
6ES72121HE400XB0 CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI
6ES72141BG400XB0 CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI
6ES72141AG400XB0 CPU 1214C DC/DC/DC,14输入/10输出,集成2AI
6ES72141HG400XB0 CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI
6ES72151BG400XB0 CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO
6ES72151AG400XB0 CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO
6ES72151HG400XB0 CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO
6ES72171AG400XB0 CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO
A5E "SIEMCORE918
BASED ON:
SIMATIC S7-1200, CPU 1212C,
COMPACT CPU, DC/DC/DC,
ONBOARD I/O:
8 DI 24V DC;
6 DO 24 V DC;
2 AI 0 - 10V DC,
POWER SUPPLY: DC
20.4 - 28.8 V DC,
PROGRAM/DATA MEMORY: 50 KB"
6ES72211BF320XB0 SM1221 数字量输入模块, 8 输入24V DC
6ES72211BH320XB0 SM1221 数字量输入模块, 16 输入24V DC
6ES72221HF320XB0 SM1222 数字量输出模块, 8输出继电器
6ES72221BF320XB0 SM1222 数字量输出模块, 8输出24V DC
6ES72221XF320XB0 SM1222 数字量输出模块, 8输出切换继电器
6ES72221HH320XB0 SM1222 数字量输出模块, 16输出继电器
6ES72221BH320XB0 SM1222 数字量输出模块, 16输出24V DC
6ES72231PH320XB0 SM1223 数字量输入输出模块 8输入24V DC/ 8输出继电器
6ES72231BH320XB0 SM1223 数字量输入输出模块 8输入24V DC/ 8输出24V DC
6ES72231PL320XB0 SM1223 数字量输入输出模块 16输入24V DC/ 16输出继电器
6ES72231BL320XB0 SM1223 数字量输入输出模块 16输入24V DC/ 16输出24V DC
6ES72231QH320XB0 SM1223 数字量输入输出模块 8输入120/230V AC/ 8输出继电器
6ES72314HD320XB0 SM1231 模拟量输入模块 4AI 13位分辩率
6ES72315ND320XB0 SM1231 模拟量输入模块 4AI 16位分辩率
6ES72314HF320XB0 SM1231 模拟量输入模块 8AI 13位分辩率
6ES72315PD320XB0 SM1231 热电阻模块 4RTD 16位分辩率
6ES72315QD320XB0 SM1231 热电偶模块 4TC 16位分辩率
6ES72315PF320XB0 SM1231 热电阻模块 8RTD 16位分辩率
6ES72315QF320XB0 SM1231 热电偶模块 8TC 16位分辩率
6ES72324HB320XB0 SM1232 模拟量输出模块 2AO 14位分辩率
6ES72324HD320XB0 SM1232 模拟量输出模块 4AO 14位分辩率
6ES72344HE320XB0 SM1234 模拟量输入输出模块 4AI/2AO
6ES72411CH320XB0 CM1241 RS485 /422通讯模块
6ES72411AH320XB0 CM1241 RS232通讯模块
6ES72411CH301XB0 CB1241 RS485信号板通讯模块
6ES72784BD320XB0 SM1278 I/O Link Master
6ES72213AD300XB0 SB1221 数字量信号板模块,支持5V DC输入信号, 4输入 5V DC,高频率200KHZ
6ES72213BD300XB0 SB1221 数字量信号板模块,支持24V DC输入信号,4输入 24V DC ,高频率200KHZ
6ES72221AD300XB0 SB1222 数字量信号板模块 支持5V DC 输出信号, 4输出 5V DC,高频率200KHZ
6ES72221BD300XB0 SB1222 数字量信号板模块 4输出 24V DC 0.1A 高频率200KHZ
6ES72230BD300XB0 SB1223 数字量信号板模块 2输入24V DC/ 2输出24V DC
6ES72233AD300XB0 SB1223 数字量信号板查模块,支持5V DC输入信号,2输入 5V DC/2输出 5V DC 0.1A,高频率200KHZ
6ES72233BD300XB0 SB1223 数字量信号板模块,支持24 V DC输入信号, 2输入24V DC/ 2输出24V DC 0.1 A ,高频率200KHZ
6ES72324HA300XB0 SB1232, 模拟量信号板模块, 1AO
6ES72314HA300XB0 SB1231, 模拟量信号板模块, 1AI, 10位分辩率, (0-10V)
6ES72315PA300XB0 SB1231, 热电阻信号板模块,1 RTD 类型: Platinum (Pt)
6ES72315QA300XB0 SB1231, 热电偶信号板模块,1 TC1 类型: J, K
6ES79548LC020AA0 S7-1200 4M 存储卡
6ES79548LE020AA0 S7-1200 12M 存储卡
6ES79548LF020AA0 S7-1200 24M 存储卡
6ES79548LL020AA0 S7-1200 256M 存储卡
6ES79548LP020AA0 S7-1200 2G 存储卡
6ES79548LT020AA0 S7-1200 32G 存储卡
6ES72741XH300XA0 1214C /1215C 模拟器
6ES72741XF300XA0 1211C/1212C 模拟器
6ES72741XA300XA0 S7-1200CPU 2路模拟量输入模拟器
6ES72741XK300XA0 1217C模拟器,14输入通道,其中10通道为24V直流输入,4通道为1.5V差分输入开关
6ES72906AA300XA0 S7-1200 模块扩展电缆 2.0 米
6ES72970AX300XA0 S7-1200 电池板
手机? 微信W
??
电话??传真?
Q Q ?2779823058 公司 网址?http://zhenxindianqi.cn/
西门子()上海一级销售中心西门子所有系列代理,
所有西门子系列产品订货号及参数在我们信息里都有
本公司信息里所有产品详细介绍 本公司销售西门子全球
【一诺千金诚信交易】【长期销售、安全稳定】
【称心满意、服务动力】【真诚面对、沟通无限】
【质量、客户满意】
西门子 知其巧 用其妙
真诚对待您的每一次来电
?诚信走天下,走遍天下有朋友;
西门子6SL3210-1KE14-3UP1