西门子CP341与UDC3300控制器的Modbus通讯

2012-12-17 10:49:06华环国际烟草有限公司胡发运
电子世界 2012年24期
关键词:功能块调用寄存器

华环国际烟草有限公司 胡发运 陈 磊

1.引言

智能控制仪表是工业控制中最常用的控制器之一,主要针对某一特定的参数如压力、温度、流量等,采用比较先进的控制算法如PID、自适应PID、模糊控制等,以求精确控制被控参数,具有专业性强、智能化高、控制算法先进、使用方便的特点。但各个生产厂家的智能控制仪表存在通讯协议不统一、通讯网络仅提供简单的RS485、RS232或RS422等缺点,难以集成到工厂中的HMI系统中。而可编程序控制器(PLC)运行可靠、集成度高、可扩展性强,在工业控制中得到广泛的应用,且各生产厂家为PLC提供了多种通讯模块,如工业以太网模块、Profibus DP现场总线模块、AS-I模块、点到点串行通讯模块等,因此可以利用PLC的通讯模块,读取或修改智能仪表中的数据,以达到与工厂中的HMI系统完美结合的目的。

美国普劳克特(WP&S)公司是老牌的复烤机生产商,其生产的复烤机主要应用于烟叶复烤和食品加工行业,其控制系统采用西门子S7-300系列PLC,为保证有两套独立的核心控制系统,使用了西门子S7-300PLC和Honeywell公司生产的UDC3300通用数字控制器,PLC和UDC3300控制器之间采用点到点串行通讯Modbus网连接,以实现温度、压力、湿度、水份等测量信号的显示与控制。

2.硬件组态

为使用Modbus通讯,首先在CPU的扩展机架安装具有通讯功能的CP 341-RS422/485模块,其订购号6ES7 341-1CH01-0AE0,CP341模块使用Gould-Modbus通讯协议和UDC3300控制器通讯,使用装有点到点Modbus通讯软件的STEP7编程软件,可以进行硬件的组态并给CP341通讯模块设定地址和其它参数,如图1。

CP 341-RS422/485 Modbus通讯模块的地址占用16个字节,地址可以采用自动选择或根据个人要求选定,分配地址后,必须对其它基本参数进行检查,以符合实际硬件接线要求,例如采用RS485二线制半双工接线方式。

3.通讯协议

我公司的复烤生产线中,要求将16只UDC3300控制器中的设定值、测量值、信号输出值读入到PLC中,通过PLC可以修改控制器的设定值、控制器工作模式(自动或手动)和手动状态下输出值,以下对CP341和UDC3300控制器的通讯协议做一简单介绍。

(1)CP341模块

表一 功能码含义

CP341是西门子公司提供的点到点连接串行通讯的低成本解决方案,使用Gould-Modbus通讯协议,该模块提供了二种不同形式的传输接口:a、RS485(二线);b、RS422(四线)。通过集成在STEP7中的参数化工具可方便地进行参数化,其设置主要包括地址分配、通讯方式(波特率、数据位数、停止位数、奇偶校验)、接口方式(RS485或RS422)。

(2)Gould-Modbus通讯协议简介

Modbus网络中数据的交换是通过功能码进行的,数据在位—位或寄存器—寄存器之间传送,具体含义见表一和表二。

(3)UDC3300控制器

对UDC3300控制器,我公司中设置为波特率19200,数据位数8,停止位数1,无奇偶校验,RS485半双工工作方式。

4.软件实现方法

要实现CP341和UDC控制器之间的通讯,PLC程序的设计是一个比较重要的环节,主要包括CP341发送读取数据的命令,CP341发送写数据的命令,CP341接收数据的命令。对于程序,西门子公司已编写了相应的标准功能块FB8(P_SND_RK,发送功能块)、FB7(P_RCV_RK,接受功能块)、FC21(Execute Send Jobs,执行发送)、FC23(Execute Receive Jobs,执行接收),设计人员需要做的是在程序中进行合适的调用,并分配相应的DB(数据)块用于数据的发送与存贮。考虑到有16只UDC3300控制器,PLC对控制器数据的写入不是一个连续的过程,仅在需要时PLC发送相应命令,故在程序中采用脉冲调用的形式,并使发送读取数据命令、发送写数据命令相互错开,在每个扫描周期内接收一次数据。CP341工作中所需要的DB数据块及作用如表三,另外分配DB44、DB45、DB46用于数据的存贮,以使PLC修改控制器的设定值、工作模式、控制器的输出,DB42、DB44中数据概况如图2。

表二 使用规则

表三 DB数据块的作用

图1 硬件组态

图2 DB42、DB44数据块概况

图3 FC21功能块

图4 FC21在OB1中的调用

(1)发送读取数据命令和接收数据命令的程序

发送命令的程序FC21如图3,受篇幅限制,仅显示部分程序,具体发送和接收的全部详细程序参见西门子公司相关技术手册和STEP7中标准功能块。

图中#DB_NO、#DBB_NO为局部变量,分别指数据块号和字节号,在OB1中调用FC21时指定具体数值。

(2)功能块FC21、FC23在OB1中的调用

在OB1中调用了FC21,如图4,以向控制器发送相关命令和数据,受篇幅限制,图中仅显示了部分程序,其它工作程序基本相同。

MW100的作用是指向DB块中某一字节地址,以在发送命令数据时指定CP341发送需要的控制器地址、功能代码、控制器中寄存器地址、需要操作的寄存器个数,指定的控制器根据要求回相关数据。MW106中存贮了CP341在发送写入操作命令时需要的控制器地址、功能代码、控制器中寄存器地址、需要操作的寄存器个数。对于接收功能块FC23,只要PLC扫描时间允许,可以在OB1中任意位置多次调用,一般情况下每个扫描周期执行FC23一次,以接收控制器回传的数据。

5.结束语

通过使用点到点串行通讯模块CP341和UDC3300控制器,使用RS485网络和Gould-Modbus通讯协议进行通讯,PLC可以读取和写入相关数据,极大方便了现场的控制和操作,并且成本较低。因此,利用CP341模块来解决西门子PLC与第三方智能仪表的通讯问题是一个值得推广的方式,在实际控制系统中,不仅仅可以解决与UDC3300控制器的通讯问题,对其它具有RS485或RS422网络的智能仪表同样可以解决与HMI系统之间数据的传送问题。

[1]Simatic Loadable Driver for Point-to-Point CPs Modbus Protocol,S7 is Master,Edition 3.

[2]Simatic CP341 Point-to-Point Communication Installation and Parameter Assignment.

[3]Simatic Configuring Hardware and Communication Connections STEP 7 V5.1.

[4]Simatic Ladder Logic(LAD)for S7-300 and S7-400 Programming.

[5]Simatic Statement List(STL)for S7-300 and S7-400 Programming.

[6]Simatic Programming with STEP 7 V5.1.

[7]UDC3300 Universal Digital Controller Product Manual订购号:51-52-25-55.

[8]UDC3300 Universal Digital Controller Modbus RTU Serial Communications User Manual订购号:51-52-25-66K.

[9]Modbus RTU Serial Communications User Manual Configuration Interface for UDC3300订购号:51-52-25-70C.

猜你喜欢
功能块调用寄存器
Lite寄存器模型的设计与实现
计算机应用(2020年5期)2020-06-07 07:06:44
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
测控技术(2018年5期)2018-12-09 09:04:46
Ovation系统FIRSTOUT和FIFO跳闸首出比较
分簇结构向量寄存器分配策略研究*
基于系统调用的恶意软件检测技术研究
自定义功能块类型在电解槽联锁中的应用
中国氯碱(2015年9期)2015-11-02 01:03:41
基于MACSV6.5.2的锅炉燃尽风开关量调节门控制功能块设计
PLCopen运动控制功能块的研究与开发
利用RFC技术实现SAP系统接口通信