S7系列PLC电气控制设计与应用第4讲 S7-200在泵站监控系统中的应用
2013-02-07李方园
1 引言
随着各地水利、水电和给排水工程的不断进展,无人值守或少人值守泵站逐渐增多,为保障泵站的安全运行,并解决无人值守泵站的安全防范问题,非常有必要对泵站进行监控系统的建设。
如图1所示为某泵站的工作示意图,它包括一个蓄水池、4台喷淋泵(1台备用)和4台高压泵(1台备用)。该泵站能在现场操作箱的控制下进行相应的工作,包括各种巡检功能、压力控制、故障报警和火警处理等功能。
现需要对泵站系统进行远程计算机监控改造,以达到少人值守的目的。
根据图1所示,该泵站监控工作情况和要求如下:
(1)该泵站现在需要对8台泵的运行与故障进行监控,每台运行泵2个输入信号(即运行与故障),每台备用泵1个输入信号(运行信号),共计14个点;
(2)能在计算机上进行监控显示14个点的情况。
图1 泵站监控系统示意
2 小型PLC通讯系统
小型PLC通讯系统是利用小型PLC的内置通讯口1、2或者通讯模块建立的自动化控制系统,以便于计算机监控、PLC控制等。具体的小型PLC通讯系统有二种方式,即1:1通讯系统和1:N通讯系统。
2.1 1:1通讯系统
所谓1:1通讯系统,即上位机在任何时候都只能与一台小型PLC建立通讯关系,小型PLC之间也只能是建立一对一的连接关系。1:1通讯系统非常适合于小型自动化装备系统的本地控制、远程监控和自动诊断。
1:1通讯系统通常有以下三种建构方式:
通过小型PLC的内置通信口1或者2与上位机(计算机或工控机、触摸屏或文本操作器)外部设备之间进行1:1通信;
通过内置通信口在主机与外部设备(监控系统)之间进行1:1通信;
通过通讯模块和modem,进行远距离的RS-232C通信。设备之间进行1:1通信。
2.2 1:N通讯系统
所谓1:N通讯系统就是一个上位机能够于N台主机进行通讯,根据协议的不同,N取值会不尽相同,一般而言,RS485系统多采用N最大为32。
该通讯方式共有2种构建形式,即利用扩展的通讯模块或者利用小型PLC内置的RS485通讯口。
3 S7-200 PLC的通讯方式
西门子S7-200 PLC之间或者PLC与PC之间通信有很多种方式:自由口、PPI方式、MPI方式、Profibus方式,其中前三者属于典型的1:1或1:N通讯系统,而ProfiBus-DP则是S7-200具有最为简洁的一种总线配置系统。
通过EM277 ProfiBus-DP扩展从站模块,可将S7-200 CPU连接到ProfiBus-DP网络,该端口可以运行于9600波特率和12兆波特率之间的任何速率。
3.1 S7-200 PLC的通讯端口硬件
图2所示为S7-200 PLC的通讯端口硬件,其硬件结构为RS485,为了确保实现1:1或1:N系统,通常要进行通讯端口的连接。
图2 S7-200 PLC的通讯
当然,西门子公司还提供了S7-200专用通讯连接器,只需要将开关位置打开或关闭即可,其原则也是首尾两端需要在“打开”位置。
3.2 PPI通讯
因为S7-200 PLC的编程口物理层为RS-485结构,因此西门子所提供STEP7-Micro/Win软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。
西门子的PPI通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。PPI协议是PLC内部固化的通讯协议,并不对外公开其协议。如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
3.3 自由口模式
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控。
自由接口模式允许程序控制S7-200 CPU的通讯端口。用户可以使用自由接口模式使用户定义通讯协议与多种智能设备通讯。自由接口模式支持ASCII和二进制协议。
欲启用自由接口模式,可使用特殊内存字节SMB30(用于0号端口)和SMB130(用于1号端口)。用户可以从SMB30和SMB130读取或向SMB30和SMB130写入。这些字节配置各自的通讯端口,进行自由口操作,并提供自由口或系统协议支持选择。
用户程序使用以下功能控制通讯端口的操作:
传送指令(XMT)和传送中断:“传送”指令允许S7-200 CPU从COM端口最多传送255个字符。传送完成时,传送中断向S7-200中的程序发出通知。
接收字符中断:接收字符中断通知用户程序在COM端口中收到一个字符。程序则可根据正在执行的协议处理该字符。
接收指令(RCV):“接收”指令从COM端口接收整条信息,完全收到信息后,为用户程序生成中断。您使用S7-200的SM内存配置“接收”指令,根据定义的条件开始和停止信息接收。“接收”指令允许程序根据具体字符或时间间隙开始或停止信息。大多数协议可用“接收”指令执行。
自由接口模式仅限在S7-200处于RUN(运行)模式时才成为激活。将S7-200设为STOP(停止)模式会使所有的自由接口通讯暂停,通讯端口则返回至在S7-200系统块中配置的PPI协议设置。
4 项目解决思路
该泵站监控系统的硬件接线中,S7-200与计算机(装有Visual Basic软件)通过PC/PPI电缆进行通信。
S7-200的输入信号如表1所示。
表1 监控系统的输入信号
泵站监控的软件设计如下:
(1)S7-200程序的编制
泵站监控的PLC程序包括主程序、子程序SBR_0、SBR_1和中断子程序INT_0,程序清单及注释如图3~图6所示。
图3 主程序
图4 子程序0
图5 子程序1
图6 中断子程序
(2)Visual Basic软件编程
Visual Basic是一种功能强大、简单易学的程序设计语言。它不但保留了原先Basic语言的全部功能,而且还增加了面向对象程序设计功能。它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串口的计算机通信程序。在泵站系统中,正是利用MSComm控件进行与S7-200进行通讯。
Visual Basic软件需要先选定控件Microsoft Comm Control 6.0(如图7所示),同时可以从工具栏中看到标识。
图7 选定控件Microsoft Comm Control 6.0
MSComm控件提供了两种处理通信的方式:一种为事件驱动方式,该方式相当于一般程序设计中的中断方式。当串口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。本例采用该方式,程序如图8所示。另一种为查询方式,在用户程序中设计定时或不定时查询MSComm控件的某些属性是否发生变化,从而确定相应处理。在程序空闲时间较多时可以采用该方式。
图8 Visual Basic程序
5 结语
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
[1]李方园. 自动化综合实训教程[M].北京:科学出版社,2011.
[2]李方园. 零起点学西门子S7-200 PLC[M].北京:机械工业出版社,2012.