西门子S7-200 PLC适用于小型控制系统,它自带DI/DO通道,对数字量信号控制极其方便,但对模拟量信号的处理效果相对比较差。对现场环境要求比较高,不仅信号抗干扰能力查,而且需要增加EM231/235模块,硬件成本也高。针对这种情况,提议通过通讯的方式来采集模拟量数据,基于此,介绍昌晖16路巡检仪YR-GFM809-8000-03-NN-N-T与S7-200 PLC通讯技术。巡检仪采用标准的Modbus协议,传输模式为RTU模式,巡检仪与S7-200通过MODBUS通讯传输数据,节省了硬件成本,减少了敷线强度,降低了检修难度。巡检仪与S7-200的通讯通过Micro/WIN MBUS指令实现,通过KEPServer V4.0软件在 WINCC中建立OPC通道,实现上位和下位的通讯。该方法连接简单、传输可靠、硬件投资少。
1、项目背景及结构
①项目简介
该项目为某石灰窑的3套窑炉自动化控制系统,涉及到传输设备、破碎设备、均料器、筛选设备,变频控制鼓风机设备。其中,现场每套窑炉均有13路温度信号需要采集,采用了3台16路温度巡检仪来解决此问题,如图1所示。
图1 石灰窑自动化控制系统运行监控画面
②控制结构
该项目控制部分用的是西门子S7-200系列CPU 224XP CN REL 02.02,通过网线实现以太网通讯硬件连接。数字量DI 64点,DO 32点;模拟量AI3点,主要是风量监测,26路温度通过温度巡检仪采集到CPU。程序结构采用调用子程序的方式展开。子程序调用示例如图2所示。
图2 STEP 7-MicroWIN程序组态
采集的数据通过OPC服务器与上位通讯,其中的接口软件采用的是KEPServer V4.0,上位软件变量管理结构如图3所示。
图3 上位软件变量管理结构
2、S7-200 PLC程序设计
①昌晖16路巡检仪YR-GFM809介绍
多路温度巡检仪通讯协议采用标准Modbus协议,所用的传输模式为RTU模式。采用先进的微电脑技术及芯片,性能可靠,抗干扰能力强,与各类传感器、变送器配合使用,可对多路温度、压力、液位、流量、重量等工业过程参数进行巡回检测、报警控制、变送输出、数据采集及通讯。通讯协议设计保证了单片机与PLC之间的无误码传输,使仪表的参数设定和修改更加简单。硬件设计保证了输入电路测量精度,软件设计保证了 A/D转换电路测量精度。
通讯口设置如下:通讯方式异步串行通讯接口RS485,波特率采用9600bps。字节数据格式为:1位起始位、8位数据位、1位停止位、无校验。寄存器地址根据说明书给出的表格对应即可。
②程序结构
由于上位机与PLC距离较远约100m,采用PPI通讯最远保证距离为50m,所以采用以太网通讯。以太网通讯配置步骤如下:在向导-以太网中建立新的配置,选择CP243-(16GK7 243-1EX00-0XE0),定义IP地址为192.168.27.2,其中,注意为配置分配存储区,模块的配置块要求24个字节的V存储区。根据程序员选项,本例中配置的总计大小为159个字节,选择区域为VB379至VB537,如图4所示。
图4 以太网通讯组态结构
设置CP243-1所占用的输出字节地址,此地址根据计算CP243-1前面的I/O所占用的Q地址字节来决定。本例中CP243-1安装在紧挨CPU的0号槽,其前面输出就占用了QB0和QB1两个字节,CP243-1的地址按顺序排,即设为QB2。CP243-1模块占用一个QB输出字节。
完成以太网向导配置后,需要在程序中调用以太网向导生成的ETHX_CTRL,并将项目程序下载后,将PLC断电重新上电使得配置生效。
本系统巡检仪与S7-200的通讯通过Mi-cro/WIN MBUS指令实现的。欲在S7-200程序中使用Modbus主设备指令,首先插入MBUS_CTRL指令,调用指令后,初始化完成。在灰窑温度检测系统中,Modbus主设备通讯速率设置为9600bps,无奇偶校验。从站允许应答时间为1000ms。程序如图5所示。
图5 初始化调用MBUS_CTRL指令
其中,EN-使能:必须保证每一扫描周期都被使能;Mode-模式:常为1,使能Modbus协议功能;Baud-波特率:设置要与从站对应,本例设为9600;Panty-校验:0为无校验;Timeout-超时:主站等待从站相应时间,这个值必须足够大以保证从站有时间响应;Done-完成位:初始化完成,自动置位,可用于启动MBUS_MSG程序;Error-初始化错误。初始化完成后,启动读写指令V700.1。程序如图6所示。
图6 置位V700.1启动循环执行指令
读取从站数据调用MBUS_MSG指令,程序如图7所示。
图7 循环调用MBUS_MSG指令
V700.1 置位读取从站数据,读取保持寄存器40144起始的13个数据,根据数据格式写入&VB1000,如40144为32位浮点数,则保存在VB1000、VB1001、VB1002、VB1003中,依次类推,读取完成V702.1置位,复位读取从站保持寄存器V700.1、V702.3。
EN-使能:同一时刻只能有一个读写操作,建议每一个读写功能都用设一个MBUS_MSG指令的Done完成位来激活,以保证所有读写指令的循环进行;First-读写请求位,每一个新的读写操作必须使用脉冲触发;Slave-从站地址,一般可选范围为1-247;RW-0为读操作,1为写操作,开关量输出和保持寄存器支持读和写操作,开关量输入仅支持读功能;Addr-读写从站的数据地址,00001-09999是开关量输出,10001-19999是开关量输入,30001~39999是模拟量输入,40001-49999是保持寄存器;DataPtr-数据指针,如果是读指令,读回来的数据放到此数据区中,如果是写指令,要写出的数据放到此数据区中; Done-完成位;Error如果程序执行有误,将错误信息在此显示。
3、技术问题和优点
①系统建立过程中遇到的问题
A、WINCC 安装过程中提示“SQL Server Native Client(9.00.2208.00)找不到”,问题原因在于缺少文件,在WINCC安装包文件中找到sqlncli.msi安装完成,解决问题。
B、在程序调用库文件“MBUS_CTRL, MBUS_MSG”的时候,设置参数应该重点注意通讯速率,仪表地址,仪表读取或写入地址,PLC分配的存储 地址。例如作主站的S7-200的MBUS_MSG指令向Modbus从站发送请求消息,和处理从站返回的响应消息。要读取从站的I0.0开始的地址区时,它的输入参数Addr(Modbus地址)为10001。S7-200从站保持寄存器的V区起始地址为VB200时,要读取从站VW200开始的V存储区时,保持寄存器的地址是40001。
C、执行程序MBUS-MSG程序过程中,Error错误指示为:3=接收超时(从站无响应),原因是起始位设置错误,导致程序不能顺利循环。
D、MicroWin版本低,程序安装过程中没有库文件,单独安装库文件后,方能使用。
②系统优点
采用标准的Modbus协议,传输模式为RTU模式,巡检仪与S7-200通过MODBUS通讯传输数据。能节省硬件成本,减少敷线强度,降低检修难度。而且此程序设计方法可推广到PLC与变频器的通讯控制方式上,可大量节省AI模块的应用,降低工程成本。
介绍了一种西门子S7-200与智能仪表的通讯程序设计方法。基于WINCC组态软件来监控灰窑设备的运行,在设计过程中运用PLC与智能仪表通讯,实现了对多了温度信号的读取。经过实践证明,程序设计合理,程序库文件调用简单,简便易行、可操作性强、成本低廉,具有很强的实用价值。
作者:李会宁
共有访客发表了评论
网友评论