本文具体阐述了PC与PLC互连通讯的一般方法,并以永宏公司的FATEK-FBS PLC为对象,以实际四层电梯模型监控系统为例,先容了利用大家都认识的编程语言Visual Basic 和Step7,实现PLC与上位计算机实时通讯的通讯过程。
1 通讯方式
面临众多出产厂家的各种类型PLC,它们各有优缺点,能够知足用户的各种需求,但在形态、组成、功 能、编程等方面各不相同,没有一个同一的尺度,各厂家制订的通讯协议也千差万别。目前,人们主要采用以下三种方式实现PLC与PC的互联通讯:
(1) 通过使用PLC开发商提供的系统协议和网络适配器,来实现PLC与PC机的互联通讯。但是因为其通讯协议是不公然的,因此互联通讯必需使用PLC开发商提供的上位机组态软件,并采用支持相应协议的外设。可以说这种方式是PLC开发商为自己的产品量身定作的,因此难以知足不同用户的需求。
(2) 使用目前通用的上位机组态软件,如组态王、InTouch、WinCC、力控等,来实现PLC与PC机的互连通讯。组态软件以其功能强盛、界面友好、开发简洁等长处目前在PC监控领域已经得到了广泛的应用,但是一般价格比较昂贵。组态软件本身并不具备直接访问PLC寄存器或其它智能仪表的能力,必需借助I/O驱动程序来实现。也就是说,I/O驱动程序是组态软件与PLC或其它智能仪表等设备交互信息的桥梁,负责从设备采集实时数据并将操纵命令下达给设备,它的可靠性将直接影响组态软件的机能。但是在大多数情况下,I/O驱动程序是与设备相关的,即针对某种PLC的驱动程序不能驱动其它种类的PLC,因此组态软件的灵活性也受到了一定的限制。
(3) 利用PLC厂商所提供的尺度通讯端口和由用户自定义的自由口通讯方式来实现PLC与PC机的互连通讯。这种方式由用户定义通讯协议,不需要增加投资,灵活性好,特别适合于小规模的控制系统。
通过上述分析不难得出,把握如何利用PLC厂商提供的尺度通讯端口和自由口通讯方式以及大家所认识的编程语言来实现PC与PLC之间的实时通讯长短常必要的。
2 FATEK-FBS PLC通讯方式及原理
FATEK-FBS PLC内部集成的PPI接口为用户提供了强盛的通讯功能,可在多种模式下工作:PPI、Profibus-DP、自由口方式等。其中自由口通讯方式最具有特色,通讯协议可完全由梯形图程序控制,通过它可以实现PLC与任何具有通讯能力的设备进行互连,因而在本系统中选用自由口通讯方式。
目前PLC与PC机的链接通讯有两种方式,一种是PC机始终处于主导地位,数据的传送都由PC机定时发出命令,另外一种是PLC始终具有优先权。在本电梯模型监控系统中所有的控制信号均为开关量信号,考虑到上位PC机仅实时显示电梯的运行状态,不需向PLC发送控制指令,采用第二种通讯方式。利用PLC轮回扫描的特点,设备状态一旦改变,PLC立刻检测到,并将反映系统状态变化的数据存入指定的数据缓冲区,通过XMT发送指令,将数据通过COM口发至上位机。每个系统的状态对应于数据缓冲区中的一个指定字节,所存储数据均为16进制数据,为保证通讯过程的可靠性,上位机对所接受到的数据进行首尾字符校验,假如校验成功,则说明接收到的首末字节之间的数据是准确的,从而进行处理,否则,抛却这批数据,要求对方重发。
3 应用实例与程序设计
(1) 系统构成
FATEK-FBS PLC内部集成的PPI接口物理特性为RS485,而上位机的尺度串口为RS232,为了实现两者的通讯必需进行协议转换,永宏公司提供的PC/PPI电缆带有RS232/RS485电平转换器,因此再不增加任何硬件的情况下,可以利便的实现二者的互联和协议转换。
作为控制器的FATEK-FBS PLC利用电梯模型自带的电源线实现与四层电梯模型的互连,该电梯模型为教授教养试验装置,具备一般电梯的基本功能。硬件连接如图1所示。
图1 硬件连接示意图
(2) PLC部门编程
① 自由端口的初始化
在自由口通讯模式下,通过设置特殊存储器SMB30(端口0),来为自由端口通讯选择波特率、奇偶校验和数据位。这些设定必需与PC机设定值相一致。其格局如下:
SMB30
pp为奇偶校验选择,d为数据位选择,bbb为波特率选择。
00为无校验,0为每个字符8位,000为38 400
baud,001为19 200baud;
01为偶校验,1为每个字符7位,010为9 600 baud,011为4 800baud;
10为无校验,100为2 400baud,101为1 200baud;
11为奇校验,110为600baud,111为300baud;
mm为协议选择:00为PPI协议,01为自由口协议,10为PPI/主站模式,11默以为PPI/从站模式。
② FATEK-FBS PLC实时向上位PC机传送数据
图2 下位机程序流程图
在对电梯模型控制中,所有的控制信号均为开关量,基于这一特点,系统状态的改变即为这些开关量信号状态的改变,因此可通过跟踪这些开关量信号的上升沿信号、下降沿信号的到来,做为系统状态改变的依据。据此在本系统中,通过对统一个开关量信号的上升沿、下降沿分别定义不同的16进制数的方式,来代表信号的产生与结束,当检测到这些信号产生时,便将这些数据存入指定的数据缓冲区中的字节中,并通过COM口发至上位PC机,同时产生发送完成间断,PLC延迟等待接收来自上位机的应答信号,通过分析存储在接收字符缓冲器SMB2中的数据,判定是否需要重新发送。下位机程序如图2所示。
(3) 上位机部门编程
基于VB处理监控界面图形、数据报表及通讯的利便快捷,本课题上位机的编程环境采用VB来实现。VB不仅提供了MSCOMM串行通讯控件,而且也为这个控件提供了尺度的事件处理函数,并通过设置它的一些属性对通讯接口进行初始化,从而很轻易的实现了串行通讯的题目。
下面先容一下有关此控件的属性:
Commport,设置通讯连接端口。程序必需指定要使用的串行端口的号码,WINOOWs使用所设置的通讯端口与外界进行通讯。
Settings,设置初始化参数。其格局为“BBBB,P,D,S”,其中BBBB为连接速度,P为奇偶校验方式,D为数据位数,S为休止位数。默认值是“9 600,n,8,1”。
PortOpen,设置通讯连接端口的状态。使用串行端口之前必需先将要使用的串行端口打开。
Input,返回并删除接收缓冲区中的数据流。
InputLen,设置从串行端口读入的字符串长度。
Rthreshold,设置引发接收事件的字符数。
InputMode,设置接收数据数据形式。
OnComm事件,用来处理所有与通讯相关的事件。使用事件程序的好处是不需要一直让程序处于检测的状态下,只要事先将程序代码写好,一有事件发生,就会直接执行相对应的程序代码。可见这种事件驱动的方式也为实现实时通讯提供了必要的前提。上位机程序如图3所示。PC机根据接收到的信息很轻易的实现对每个开关量的状态进行识别,从而控制监控界面的实时显示。
图3 上位机程序流程图
4 结语
以上是基于FATEK-FBS PLC自由口通讯方式实现与上位机PC实时通讯的一个简朴应用。经验证,该方法简朴、实时性好,可靠性高,对于逻辑控制系统,是能够实现对被控对象实时监控简朴易行的方法。