服务热线
86-132-17430013
品牌 | 其他品牌 |
---|
西门子代理商 西门子6ES7214-1AD23-OXB8 西门子6ES7214-1AD23-OXB8
致力于符合道德规范的、负责任的行为
西门子努力一切法律和道德要求,并且,只要可能,我们还努力超越这些要求。我们的责任是按照的职业和道德和惯例来开展业务:公司绝不容忍任何不合规的行为。
我们在“勇担责任”方面的原则堪称我们制定业务决策的指南针。我们还必须鼓励我们的商业伙伴、供应商和其他利益相关者遵循同样高的道德。
追求
取得的业绩和成果
追求,是我们在每个业务都将尽力实现的目标。我们根据公司愿景制定这一远大目标,并在其指引下提供优异的及超越客户需求的解决方案。一直如此。
追求还意味着吸引市场上的人才。我们将帮助这些人才成功所需的各种技能,给他们提供发挥潜力的机会。我们致力于一种高绩效企业文化。
追求不仅仅关系到我们所做的一切,它还要求我们找到一条的道路。这需要我们灵活、积极地迎接变革,从而确保我们能够牢牢把握新的机遇。
矢志创新
敢于创新,创造可的价值
创新已成为西门子业务成功的基石。研发是西门子发展战略的基本动力。作为关键的持有者,无论是已经成熟的工艺,还是正在发展的技术,我们都是客户强的合作伙伴。我们的目标是,在所涉足的众多业务,都占据技术地位。
我们是创新惠及全球的企业公民。我们用客户是否成功来衡量我们的创新是否成功。我们不断业务组合,以便为全人类共同面临的严峻的挑战提供解决方案,从而使我们得以创造可的价值。
通过用户程序中的特殊寄存器区来访问CPU的模拟电位器。
S7-200 类型 | 模拟电位器 1 | 模拟电位器 2 |
CPU 221 | SMB 28 | 不存在 |
CPU 222 | SMB 28 | 不存在 |
CPU 224 | SMB 28 | SMB 29 |
CPU 226 | SMB 28 | SMB 29 |
CPU 226XM | SMB 28 | SMB 29 |
在现场应用中,很多仪表和设备仅支持Modbus RTU的通讯协议,第三方仪表可以做Modbus主站或从站,西门子的通讯模块CP341 / CP441-2 通过Dongle(硬件狗)可以扩展该协议,S7-200 集成的口可以支持口通讯,通过指令库也可以方便的实现Modbus RTU通讯。本文以S7-200作为Modbus 主站,CP341作为Modbus 从站,实现Modbus RTU通讯,阐述两者在通讯方面的设置和注意事项。
:
STEP7 V5.4 SP4
用于编写 S7-300/400程序,此需要从西门子购买,本文档中的300的程序是使用Step7 V5.4 SP4的编写。
CP PTP Param V5.1 SP11
串行通讯模板的驱动程序,安装此驱动后才能对PtP模板进行参数配置,并在Step7中集成通讯编程需要使用的功能块。
CP PTP Modbus Sle V3.1 SP7
CP341或CP441-2用于Modbus从站时,需要安装此驱动协议,但安装之前必须先安装PtP Driver,此驱动可以在购买Modbus Dongle时选择购买。
STEP7 Micro/WIN V4.0 SP6
用于S7-200编程的,本文档中的200的程序是使用Step7 Micro/win 的编写。此可以从西门子下载中心免费下载。
Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
S7-200实现Modbus RTU功能,可以使用Modbus的指令库,要使用西门子的指令库,必须先安装指令库的包 Instruction Library,安装后,可以在Step 7-Micro/WIN的库中找到Modbus相关的指令,该包可以从以下的链接下载。
硬件列表和接线:
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 主站指令库时需要注意的几点:
图4 库存储区设置
Modbus 地址 | 读 / 写 | Modbus 从站须支持的功能 |
00001~09999 | 读 | 功能1:读输出点 |
数字量输出 | 写 | 功能5:写单个输出点 |
功能15:写多个输出点 | ||
10001~19999 | 读 | 功能2:读输入点 |
数字量输入 | ||
30001~39999 | 读 | 功能4:读输入寄存器 |
输入寄存器 | ||
40001~49999 | 读 | 功能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 | Sle / 从站地址 | 可选择的范围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时,错误代码才有效。 |