智能建筑中PLC可(kě)编程与PC的通信实现微机(jī)监控
摘 要:本文通过介绍
PLC可编程控制器的开发(fā)和PLC与(yǔ)VB的通信技术,结合数(shù)据(jù)库(kù)技术,为智能建筑中的(de)系统集成提供一种思路,提高智能建筑中设备使用的(de)安全和可靠性。
1、引言:
PLC在智能建筑中也(yě)得到广泛应用,如中央空调控制、二次加压设施、消(xiāo)防系(xì)统(tǒng)、电梯系(xì)统等。它集逻辑运算、顺序控制、定时、计数、算术运算功(gōng)能(néng)为一体。另外(wài)还可以与其他计算机进行通信联网,这种通信不但包括不同的PLC之间的数据交换,而且还包括PLC与计算机之间的通信。
2、系统构成(chéng):
本系(xì)统采用PLC采集模拟信号、数据处理(lǐ),通过串行通信口上传到计算机,计算机对传(chuán)上来智能建筑中监控设备的数据进行分析、分类记入数据(jù)库,实时显示在上位机上并提供数据查询。PLC为S7-224,串行通信接口(kǒu)的信号(hào)线采用RS-485,此信号线为半双工,即不能(néng)同时接收和发送。将PLC置于run态,就(jiù)可以将PLC可编程中存于发送缓冲区中(zhōng)的数(shù)据及信号送人上位机的串口,上位机通(tōng)过串口通信程序接收这些数据后显示并通过数据库控(kòng)件Adodc的绑定(dìng),把数据记录到数据库,从而完成(chéng)数据的采样并记录。
3、S7-200的通信方式与通信参数的设置:
本工程选择STEP7-Micro/WlN32支(zhī)持(chí)的通信硬件PC/PPI电缆,它所支持的波特率有9.6Kbps和19.2Kbps,支持的协议为(wéi)PPI协议,即点对点接口协议,基于开放系(xì)统互联(lián)模型(xíng)0Sl。PPl是主/从协议,网络(luò)上的S7-200CPU均(jun1)为从站,其他CPU、SIMATIC编程器或TD200为主站。S7-200CPU仍通信端口采用RS-485信号(hào)标准的连接口,PC/PPI电缆把S7-200计算机连接起来,通过使用接收中断(duàn)、发送中断和字符中断(duàn)等指令,自由端口通信可以控制S7-200CPU通信口的操作模式。本(běn)工程使用的是自由端口(kǒu)模式(shì),允许在CPU处于(yú)RUN模式时通信口0使用(yòng)自由端口模式,通过设(shè)定SMB30的(de)值,我们可以选择波特率、奇偶校验、每个字符(fú)的数据位(wèi)和协议。CPU处(chù)于(yú)STOP模式时,停止自(zì)由端口通信,通信口强制转换成PPI协议模式,此(cǐ)时,就可以向CPU中输入PLC程序,实现编程软件对PLC的编程和控制功能。在这里(lǐ)的(de)通讯过程采用主从方式,即计算机为主机,PLC为从机,只有主机计算机发送请(qǐng)求报文后,从机PLC才向PC返回发送缓冲区中(zhōng)的数据。
计(jì)算机与PLC通讯时,一般由计(jì)算机发(fā)给(gěi)PLC指令,PLC收(shōu)到指令后自动发回答(dá)应。下面给出命令(lìng)帧、答应帧和帧检查的结构。
FCS(Fame CheckSum)表示报文开头和报文结(jié)结束间所有执行逻辑加操作所得(dé)的结果,它由两位ASC码字符组成,每次PLC接收到计算机发送过来的一帧数据(jù),即计算其(qí)效验和,结果记为FCS2,将FCS2与帧(zhēn)中所包含的FCS1比较,可检查该帧是(shì)否有数据(jù)错误,PLC立即发送错误信息计算机,利用这一机制,有效防(fáng)止了(le)数据传输错误。
4、自由端口模式下PLC的通(tōng)信:
由于本工程使用的是PC/PPl电缆,所以要在PLC的(de)程序中考虑电缆的切换时间。PLC接收到请求报文到它返回发送缓冲区的(de)数据的延迟时间必须不小于电缆的切换时间。波特(tè)率为9600bps,电(diàn)缆的切换时间是2ms。在本工程的程序中是用定时中断(duàn)实(shí)现切(qiē)换延时的。
定时中断子(zǐ)程序:
NefworkTitle定时中断程序INT2:
LDSM0.0
DTCCH 10
XMT VB200.0
当程序运行(háng)到“启动定时中断”(即ATCHINL的语句时,就会跳到如上(shàng)所示(shì)的中断子程序中,SM0.0是特殊存储器,该位始终为1,即只要PLC处于RUN状态,这一开关即是接通的。XMTVB200.0语句是用来(lái)发送数据到串口的,此时发送的(de)是存储(chǔ)在以200为(wéi)首地址的连(lián)续的存储空间中的数据,是(shì)通过端口0发(fā)送的。
另外,在初始化时要注意自由端口通(tōng)信协议的设定,一定要使(shǐ)通信过(guò)程中的波特率,数(shù)据位,奇偶校验及停止位与上位机VB以及通信线上中设定的参数相同,否则将不能实现通信(xìn)过程,要么接(jiē)收不到数据,要么会出现“下标(biāo)越界”的错误。
5上位机的通信部分采用VB语言编程
在编程过程中(zhōng)只要(yào)设置MSComm控件(jiàn)的(de)属性,就可以(yǐ)实现串行通信。在此控件众多的(de)属(shǔ)性当中,需要重新定义的属性只有Comm—Port仍;输数据的通(tōng)信端口(kǒu)号)、Settings(设置数据传输的(de)波特率、奇偶(ǒu)校验、数据位以及停止位,注意,此参数一定要与PLC通信程中设置的参数相一致)、Porf0Pen(设置通信端口的状态)、InputMode(读取接收缓冲区的格式(shì))等。本工程采用事件驱动方式处理接受信息,即把RfhreshoId属性设置为非零的值,此时只要接收字(zì)符或传输线发生变化就会(huì)产生串口事件OnComm。通过(guò)查询CommEvent属性可以捕获(huò)这些通信事件。
Mscomm控件的主要属性列表:
计算机串口初始化(huà)程序段如下:
With MSComm 1
PorfODen=False
Comport=1 设置通信端(duān)口为1
PortOpen-True'打开通讯(xùn)端口
InputMode=comlnpufModeBinary以字节方式接受数据
EndWith
在VB中(zhōng)实现异或计算的程序及注释如下(xià):
nByfe(1)=UBound(sdata)+1'送数据区字节数
fcs=nByte(1)’校验码初始化
Fori=2 to UBound(sdate)+2
nByte(1)=sdata(1-2)。待发送数据(jù)报(bào)文数组的数据区
fcs=fcs×or n,Byte(1)异或运算,求校验码
nByte(1)=fcs'送校验码
其中sdafa发送的数据数组的变量名称,For Next语句实现(xiàn)所发送的数据每一位都进行异或运算。这样就可(kě)以把发送数据的异或校验码送到PLC中,在PLC比(bǐ)较(jiào)两次计算出的(de)校验码是否相同,从(cóng)而提高通信的可靠性。
本工程中把计算机向下发送控制命令的部分写成(chéng)自(zì)定义函数send(xi)(i从1到6),在每一个需要发送控制命令的(de)按钮处调用(yòng)此函数,只是在send中参数设置为不同(tóng)的控制函数。
为模拟一个配电屏控制面,该软件可以对三相输出电压、电流、功(gōng)率因数(shù)这些信号进行采集、显示并(bìng)存储(chǔ),并对设备的动作状态、故障情况采集到数据库中。该控制面上方有一系列的控制按钮,点击某一按钮就会向下位机发送相应的控制命令,控制下位机动作(zuò)。
6、与数据库绑定的控件:
采集数据的最终目的不仅要把(bǎ)需要显示的(de)数据(比如:日常(cháng)量)显示在(zài)界面上,另外还要把数据(jù)记录到数据库中,以备日后查询。显示数据的过程很容易实现,就是(shì)把接收缓冲区的内容按照事先约(yuē)定好的顺序依(yī)次取出(chū)即可(kě)。要(yào)把(bǎ)数(shù)据记录到数据库就需要用到数据(jù)库绑定控件,在本工程中用到的是Adodc控件,这(zhè)一(yī)控件也不包括在常用的工具框中,仍然要依照加MSComm控件的方法(fǎ)把工具条Microsoft ADO Data Control6.0(sP4)(OLEDB)加到工具框中,然后就可以把这一控件拖入Form(在本次工作中把Adodcl控件放在了程序运行时不显示的查询画面中,这样就可以同时完成(chéng)记录到数据库和查询工作)中,通过设定Adodcl的(de)Conectionst ring(要(yào)求(qiú)与事先建好的数据(jù)库(kù)所存储的地址相联(lián)接)、CommandType(由于要向数据库写人数据因此要把它设置为(wéi)2-adCmdtable)以(yǐ)及RecordSource。(如果指定的数据库包含多个表,就要选择一个与此Adodcl相(xiàng)对应的表)属性(其(qí)他属性用默认值即可(kě))就(jiù)绑定完毕。
7、结(jié)束语(yǔ):
从(cóng)以上叙述,可以看(kàn)到,由计算机与PLC可编程(chéng)组建实时监控系统关键在于解决计算机与PLC实时通信、PLC对(duì)设备状态实时监控(kòng)问题。计算机与PLC组建的(de)实时监控系统开(kāi)发成本低、实时性好、操作简(jiǎn)便、通用性强,利用计算机(jī)易组网功能(néng),既可以做到智能建筑内部网络互联、信息共享,又可通过调制解(jiě)调器连接因特网,使异地信息共享、远程监控变为现实。实际工(gōng)程(chéng)中(zhōng),该系统在恶劣(liè)的工(gōng)业(yè)环境下工作稳定、可靠,具有一定的应用推广价值(zhí)。