Professional Documents
Culture Documents
基于ModbusTCP实现S7 200Smart与PC间的通信应用
基于ModbusTCP实现S7 200Smart与PC间的通信应用
智能制造
基于Modbus TCP实现S7-200
Smart与PC间的通信应用
Implementation of Communication Between S7-200 Smart and PC Based on Modbus TCP
★费森尤斯卡比华瑞制药有限公司 徐键
摘要:药品安全关乎大众的生命健康,产品状态的可控是药品质量管理 和质量风险评估。现由于其中两只电子盒读出故障,导
体系最基本的要求。本文通过深入分析S7-200 Smart PLC与PC机之 致生产出现偏差和无法控制产量平衡,我们在进行了充
间的Modbus TCP的通信协议和编程应用,实现了药品在不同生产环 分技术调研后对其进行了功能升级性改造,加入远程数
节下的产量数据采集和远程通信显示及数据后处理功能。
据采集和控制。由于玻璃瓶在传输带上前行受阻时产生
关键词:S7-200 Smart;Modbus TCP;VS2010C#
抖颤的情况,会导致常规计数器经常出现计数不准的状
Abstract: Drug safety is very important for people's life and health,
况,方案采用了S7-200 Smart PLC对光电感应脉冲滤
and the controllability of the product status is one of the most
basic requirement for drug quality management system. This 波后再触发现场计数器进行计数的方式,同时将分布于
article first analyzed the Modbus TCP communication protocol and 现场的四个计数值以Modbus RTU串口通信至PLC中,
programming application between S7-200 Smart PLC and PC, 再由PLC以Modbus TCP网络通讯的方式传输至远程
and then the drug data acquisition, remote communication display PC机进行显示和数据后处理。本文主要介绍PC机如何
and data post-processing within different production processes
以Modbus TCP的方式对Smart PLC中的数据进行读取
are realized.
和控制。计数网络示意图如图1所示。
Key words: S7-200 Smart; Modbus TCP; VS2010C#
1 引言
公司LVP大输液生产线正式投产至今已有十多年,
随着时间的推移,许多设备元器件出现老化问题,故障
问题频出,严重影响了产品的正常生产。现有灯检测区
域的检测线于1998年初从德国引进,在检测线上的进
瓶口、合格品出瓶口、废品出瓶口和贴签机出口分别安 图1 计数网络示意图
装有四个现场独立计数电子盒,方便生产人员核算产量
2017.10 AUTOMATION PANORAMA 71
2 基于Modbus/TCP协议的系统设计原理 表1 项目开发应用中常用的功能代码
功能名称 对象类型 访问类型 功能码
Modbus/TCP协议是运行在TCP/IP上的Modbus 离散量输入 位操作 读输入点 02
报文传输协议,通过该协议,控制器通过以太网和其他 离散量输出 位操作 写多个线圈 15
4 VS-C#监控程序的设计
为能够实现对PLC中的计数值进行读取和复位操
作,选用VS2010-C#作为界面开发软件,该软件使用
封装的Windows Socket类来实现TCP/IP协议通信,
按如下步骤实现与S7-200 Smart PLC的通信:(1)用
Connect命令建立与PLC的连接;(2)准备Modbus
报文包括7个字节的MBAP在内的发送字节数组;
(3)用Send命令进行报文发送;(4)发送完毕后等
待PLC应答;(5)用Receive命令进行报文读取和分
图3 MB Server指令调用 析,完成一次读/写数据交换过程。当通信任务完成结
MBS Connect主要指令各个参数定义如下: 束后,关闭TCP/IP服务连接。
· Connect:启动TCP连接建立操作。 由于上位机远程软件只需对Smart PLC中的V区域
· Disconnect:断开TCP连接操作。 进行访问以获取所要信息,故分别编写定义了相应的子
· ConnID:TCP连接标识。 模块化函数来实现数据的通信读写操作,这样代码结构
· IPaddr1~IPaddr4:Modbus TCP 客户端的 清晰、便于维护和不同方式的调用。
IP地址,IPaddr1 是 IP 地址的最高有效字节,IPaddr4 4.1 数据读取代码函数
是IP地址的最低有效字节。如果不指定伙伴 IP ,则可 项目中要求读取PLC中4个计数值并在界面进行
以设置为0.0.0.0。 显示和处理,本部分以读取一个数值(内部寄存器
· LocPort:设备端口号,固定:502。 VD116)为例,子功能函数代码为:
· MaxHold:用于设置可访问的V存储器中的
字保持寄存器数,此项目设定值:1000。
· HoldStart:间接地址指针,指向V存储器中
保持寄存器的起始地址,此项目设定值:VB0。
· ConnectDone:Modbus TCP连接已经成功
建立。
MBS Slave主要指令各个参数定义如下:
· Done:当 MB_Server 指令响应 Modbus 请
求时,Done完成位在当前扫描周期被设置为1;如果未
处理任何请求,Done完成位为0 。
· Error:错误代码,只有在 Done 位为1时错
误代码有效。
MB Server指令库要占用 300个字节V存储区用于
库存储器地址分配。该库存储器分配地址不能与 MBS
Connect 指令参数 HoldStart指向的V存储器地址重
叠,也不能与其它程序使用的地址有重叠,该项目选择 软件对读取后的字节数组中相关的数据进行解析,
地址范围为:VB4100~VB4399。 获取出我们所要的VD116实际数值,主要代码为:
2017.10 AUTOMATION PANORAMA 73
5 结语
S7-200 Smart是国内广泛使用的S7-200的更新
4.2 数据写入代码函数
替代产品,本文以简单的项目案例对Modbus/TCP协
按照生产工艺要求,每批产品结束后,需要进行
议如何在Smart PLC与上位机之间进行可靠的数据传输
计数清零操作,本例对PLC内部寄存器VW106进行不
进行了实用性探讨与验证。Modbus/TCP通信在该项
同赋值,PLC代码根据其值输出相应的高电平触点信号
目系统上的成功实现,为Modbus/TCP协议在S7-200
对现场计数器进行清零操作,以设定VW106值等于1
Smart PLC系统上未来的推广应用具有重要意义。AP
为例,子功能函数为:
作者简介:
徐键(1981-),男,江苏南通人,工程师,本科,
现就职于费森尤斯卡比华瑞制药有限公司,主要研究
方向为设备自动化。
参考文献:
[1] 白焰, 钟艳辉, 秦宇飞. 基于VC的Modbus协议通信测试软件的实现[J]. 现代电力,2008, 25 ( 6 ) : 76 - 80.
[2] 袁文波, 洪波, 尤万方, 殷召生, 蒋彦, 温柳. S7-PLC基于Modbus/TCP协议通信研究[J]. 计算机工程与设计,2014, 35 ( 2 ) : 736 - 741.