工业PLC的控制系统中上下位机的通讯实现
2015-05-07赵剑孙晓琳
赵剑 孙晓琳
摘 要:控制系统中各个设备之间的通信是目前控制系统发展的重点环节。文章以基于PLC的控制系统中上下位机通讯的实现,介绍计算机通信的基本原理,PLC通信方式,VB通信控件,PC/PPI电缆的应用。并用交通灯实例说明程序实现方法,较完整的阐述了个环节之间通信的实现方式。
关键词:PLC;VB;串行通信;程序
1 概述
现代控制领域中,综合性控制系统DCS(DIstributed Control System,分散控制系统)随着大型工业生产自动化的兴起和过程控制要求的日益复杂应运而生。它是计算机技术、系统控制技术、网络通讯技术和多媒体技术相结合的产物,可提供窗口式人机界面和强大的通信功能。电气ECS(Electrical Control System)系统是DCS的一条重要分支,其主要应用于发电机的启、停控制及逻辑;工厂用电系统各开关的控制及逻辑;电气系统的各参数与设备状态的监视;继电保护动作情况、故障报警及时间顺序记录。因此系统中总站与从站各个设备之间的通讯,是系统控制过程中的重要一环,决定着控制决策执行的正确与否。文章以基于PLC控制系统中的通信对系统通信原理进行介绍,并附交通灯控制实例加以说明。
2 通信原理
2.1 并行通信与串行通信
工程应用中,为实现分散控制和集中管理,控制系统的各个部分必定要相互进行数据通信。按照传输方式,可分为并行通信与串行通信。
并行数据通信是以字节或字尾单位的数据传输方式,其特点是传输速度快,但传输线的根数多。适用于近距离数据传输。
串行数据通信是以二进制的位(bit)为单位的数据传输方式,每次只传送1位,适用于举例较远的场合。工业控制一般使用串行通信。PC机和PLC都有通用的串行通信接口,例如RS-232C和RS-485接口。
2.2 异步通信与同步通信
在实际通信中,操作时很难保证数据接收方和发送方有相同的传输速率,为了保证发送过程和接受过程同步,不发生累计误差造成的错位。可以根据实际通信要求选用同步或异步通信方式。
异步通信发送字符的信息格式有1个起始位,7、8个数据位,1个奇偶校验位(可省略),1、2个停止位组成。在通信开始之前,通信双方需要对所采取的信息格式和数据传输速率作相同的约定。由于1个字符中包含的位数不多,及时发送方和接受方的收发频率略有不同,也不会因两台设备之间的时钟脉冲周几的积累误差而导致收发错位。其特点就是传送附加的非有效信息较多,传输效率稍低。
同步通信方式以字节为单位(8bit),每次传送1、2个同步字符,若干个数据字节和校验字节。在同步通信中,发送方和接收方要保持完全同步,因此要用调制解调的方式从数据流中提取出同步信号,使接收方得到与发送方完全相同的接收时钟信号。其传输速率较高,一般用于高速通信。
2.3 单工通信方式与双工通信方式
单工通信方式只能延单一方向发送或接收数据。双工方式的数据可以沿两个方向传送,每一个站既可以发送数据也可以接收数据。双工方式又分为全双工和半双工两种方式。
3 PLC通讯功能介绍
PLC其它PLC,变频器,PC机,远程设备,工业以太网等按照不同的通信协议进行通信,文章主要介绍PLC与PC机之间的通信。
PLC与使用自由端口模式的PC机的通信:自由端口模式为PC机与PLC之间的通信提供了一种方便和灵活的方法。在自由端口模式,PLC的串行通信有用户程序控制,可以用接收完成中断、字符接收中断、发送完成中断、发送指令和接受指令来控制通信过程。
发送指令(XMT)启动自由端口模式下数据缓冲区的数据发送。通过指定的通信端口,发送存储在TBL中的信息(最多255个字符)。发送结束时可以产生中断事件。接收指令(RCV)初始化或终止接收信息的服务(最多255个字符)。通过指定端口,接收的信息存储在TEL中。在接收完最后一个字符时,或每接收一个字符均可产生一个中断。
4 VB通信功能的介绍
4.1 Windows环境下上位机通信软件介绍
在Windows环境下,上位机与PLC实现串行通信,需要有软件提供人机交互平台,实现通信控制。常用的可实现串行通信的软件有WinCC flexible组态软件和VB程序设计软件。由于实际工程需要的多变性及复杂性,多选用VB搭建人机交互平台。
VB不仅能实现串行通信,还能满足各种工程实际的不同要求,设计不同的面向对象的工作窗口界面。它本身提供的各种控件,可以方便简易的实现各种设计要求。
4.2 MSComm控件的属性
VB提供了一个串行通信控件Miscrosoft Comm Control,即MSComm控件。编程人员只需要设置和监视MSComm控件的属性和事件,就可以轻而易举的实现串行通信。
MSComm控件提供了两种处理方式,即可产生两种事件进行通信,事件驱动方式和查询方式。事件驱动方式:Rthreshold属性非0时,收到的字符或传输线发生变化时就会产生串口事件OnCome。通过查询CommEvernt属性可以捕获并处理这些通信事件。查询方式:通过查询接收缓冲区的字节数(InputBufferCount)属性值,处理接收到的信息。
5 应用实例
城市交通路口信号控制充分应用了这一通讯功能的应用。现代社会多变的交通状况。传统的交通控制方法已经不能解决目前的城市交通问题,因此基于PLC可通信的控制系统可时效性的解决这一问题。部分通信程序如下:
(1)VB程序:
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then //如果接收到字符
S1=MSComm1.Inut //把接收缓冲区内的数据赋值给临时变量S1
If (S1 = Chr(&H1B)) And (Len(SCOMS) > 2) Then //如果变量'S1'接收到数据并且变量'SCOMS'中的字节数大于2,则
SCOMS = " " //清空其中数据
ELSE //否则
If S1 <> Chr (&HD) Then //如果变量'S1'没有接收到结束字符'&HOD',则
SCOMS = SCOMS&S1 //将'S1'中的数据累加到'SCOMS'中
ELSE //否则
…… //数据处理
End Sub //结束
(2)PLC程序:
RCV VB100, 0 //分配接收缓冲区
MOVB 8,VB400 //设置发送字节数为8,发送缓冲区为VB400
MOVB 16#1B, VB401 //设置发送信息的起始字符为'16#1B'
MOVB 16#0D, VB408 //设置发送信息的结束字符为'16#0D'
MOVB '1', VB402 //若Q0.0有输出,VB402为'1'
NOT //否则
MOVB '0',VB402 //为'0'
XMT VB400, 0 //在端口0向用户回送信息,发送缓冲区指向VB400
通过VB实现与PLC通信。使PC机可以实时的管理PLC的工作。在此通信基础上,控制系统各部分运行良好,无误码出现,有效的解决了交通拥堵中红绿灯控制的问题。
6 结束语
基于PLC控制系统的通信过程明显将现有控制技术提升一个新的阶段。通信技术已经是工业控制中不可或缺的一个重要环节,也会是未来发展的主要方向,以满足现代工程远程化,实时性的发展需要。