安防监控知识
元器件知识|智能建筑中PLC与PC的通信实现微机监控
2017-02-20  浏览:52
安防之家讯:本文通过介绍可编程序控制器(PLC)的开发和PLC与VB的通信技术,结合数据库技术,为智能建筑中的系统集成提供一种思路,提高智能建筑中设备使用的安全和可靠性。

关键词:智能建筑;PLC;串口通信;VB语言;控制。

1引言

可编程序控制器(Programmable Controller)简称PLC在智能建筑中也得到广泛应用,如中央空调控制、二次加压设施、消防系统、电梯系统等。它集逻辑运算、顺序控制、定时、计数、算术运算功能为一体。另外还可以与其他计算机进行通信联网,这种通信不但包括不同的PLC之间的数据交换,而且还包括PLC与计算机之间的通信。

2系统构成

本系统采用PLC采集模拟信号、数据处理,通过串行通信口上传到计算机,计算机对传上来智能建筑中监控设备的数据进行分析、分类记入数据库,实时显示在上位机上并提供数据查询。PLC为S7-224,串行通信接口的信号线采用RS-485,此信号线为半双工,即不能同时接收和发送。将PLC置于run态,就可以将PLC中存于发送缓冲区中的数据及信号送人上位机的串口,上位机通过串口通信程序接收这些数据后显示并通过数据库控件Adodc的绑定,把数据记录到数据库,从而完成数据的采样并记录。

3 S7-200的通信方式与通信参数的设置

本工程选择STEP7-Micro/WlN32支持的通信硬件PC/PPI电缆,它所支持的波特率有9.6Kbps和19.2Kbps,支持的协议为PPI协议,即点对点接口协议,基于开放系统互联模型0Sl。PPl是主/从协议,网络上的S7-200CPU均为从站,其他CPU、SIMATIC编程器或TD200为主站。S7-200CPU仍通信端口采用RS-485信号标准的连接口,PC/PPI电缆把S7-200计算机连接起来,通过使用接收中断、发送中断和字符中断等指令,自由端口通信可以控制S7-200CPU通信口的操作模式。本工程使用的是自由端口模式,允许在CPU处于RUN模式时通信口0使用自由端口模式,通过设定SMB30的值,我们可以选择波特率、奇偶校验、每个字符的数据位和协议。CPU处于STOP模式时,停止自由端口通信,通信口强制转换成PPI协议模式,此时,就可以向CPU中输入PLC程序,实现编程软件对PLC的编程和控制功能。在这里的通讯过程采用主从方式,即计算机为主机,PLC为从机,只有主机计算机发送请求报文后,从机PLC才向PC返回发送缓冲区中的数据。
计算机与PLC通讯时,一般由计算机发给PLC指令,PLC收到指令后自动发回答应。下面给出命令帧、答应帧和帧检查的结构。
FCS(Fame CheckSum)表示报文开头和报文结结束间所有执行逻辑加操作所得的结果,它由两位ASC码字符组成,每次PLC接收到计算机发送过来的一帧数据,即计算其效验和,结果记为FCS2,将FCS2与帧中所包含的FCS1比较,可检查该帧是否有数据错误,PLC立即发送错误信息计算机,利用这一机制,有效防止了数据传输错误。

4自由端口模式下PLC的通信

由于本工程使用的是PC/PPl电缆,所以要在PLC的程序中考虑电缆的切换时间。PLC接收到请求报文到它返回发送缓冲区的数据的延迟时间必须不小于电缆的切换时间。波特率为9600bps,电缆的切换时间是2ms。在本工程的程序中是用定时中断实现切换延时的。
定时中断子程序:
NefworkTitle定时中断程序INT2:
LDSM0.0
DTCCH 10
XMT VB200.0
当程序运行到“启动定时中断”(即ATCHINL的语句时,就会跳到如上所示的中断子程序中,SM0.0是特殊存储器,该位始终为1,即只要PLC处于RUN状态,这一开关即是接通的。XMTVB200.0语句是用来发送数据到串口的,此时发送的是存储在以200为首地址的连续的存储空间中的数据,是通过端口0发送的。
另外,在初始化时要注意自由端口通信协议的设定,一定要使通信过程中的波特率,数据位,奇偶校验及停止位与上位机VB以及通信线上中设定的参数相同,否则将不能实现通信过程,要么接收不到数据,要么会出现“下标越界”的错误。

5上位机的通信部分采用VB语言编程

在编程过程中只要设置MSComm控件的属性,就可以实现串行通信。在此控件众多的属性当中,需要重新定义的属性只有Comm—Port仍;输数据的通信端口号)、Settings(设置数据传输的波特率、奇偶校验、数据位以及停止位,注意,此参数一定要与PLC通信程中设置的参数相一致)、Porf0Pen(设置通信端口的状态)、InputMode(读取接收缓冲区的格式)等。本工程采用事件驱动方式处理接受信息,即把RfhreshoId属性设置为非零的值,此时只要接收字符或传输线发生变化就会产生串口事件OnComm。通过查询CommEvent属性可以捕获这些通信事件。
Mscomm控件的主要属性列表:
计算机串口初始化程序段如下:
With MSComm 1
PorfODen=False
Comport=1 设置通信端口为1
PortOpen-True''打开通讯端口
InputMode=comlnpufModeBinary以字节方式接受数据
EndWith
在VB中实现异或计算的程序及注释如下:
nByfe(1)=UBound(sdata)+1''送数据区字节数
fcs=nByte(1)’校验码初始化
Fori=2 to UBound(sdate)+2
nByte(1)=sdata(1-2)。待发送数据报文数组的数据区
fcs=fcs×or n,Byte(1)异或运算,求校验码
nByte(1)=fcs''送校验码
其中sdafa发送的数据数组的变量名称,For Next语句实现所发送的数据每一位都进行异或运算。这样就可以把发送数据的异或校验码送到PLC中,在PLC比较两次计算出的校验码是否相同,从而提高通信的可靠性。
本工程中把计算机向下发送控制命令的部分写成自定义函数send(xi)(i从1到6),在每一个需要发送控制命令的按钮处调用此函数,只是在send中参数设置为不同的控制函数。
为模拟一个配电屏控制面,该软件可以对三相输出电压、电流、功率因数这些信号进行采集、显示并存储,并对设备的动作状态、故障情况采集到数据库中。该控制面上方有一系列的控制按钮,点击某一按钮就会向下位机发送相应的控制命令,控制下位机动作。

6与数据库绑定的控件

采集数据的最终目的不仅要把需要显示的数据(比如:日常量)显示在界面上,另外还要把数据记录到数据库中,以备日后查询。显示数据的过程很容易实现,就是把接收缓冲区的内容按照事先约定好的顺序依次取出即可。要把数据记录到数据库就需要用到数据库绑定控件,在本工程中用到的是Adodc控件,这一控件也不包括在常用的工具框中,仍然要依照加MSComm控件的方法把工具条Microsoft ADO Data Control6.0(sP4)(OLEDB)加到工具框中,然后就可以把这一控件拖入Form(在本次工作中把Adodcl控件放在了程序运行时不显示的查询画面中,这样就可以同时完成记录到数据库和查询工作)中,通过设定Adodcl的Conectionst ring(要求与事先建好的数据库所存储的地址相联接)、CommandType(由于要向数据库写人数据因此要把它设置为2-adCmdtable)以及RecordSource。(如果指定的数据库包含多个表,就要选择一个与此Adodcl相对应的表)属性(其他属性用默认值即可)就绑定完毕。

7结束语

从以上叙述,可以看到,由计算机与PLC组建实时监控系统关键在于解决计算机与PLC实时通信、PLC对设备状态实时监控问题。计算机与PLC组建的实时监控系统开发成本低、实时性好、操作简便、通用性强,利用计算机易组网功能,既可以做到智能建筑内部网络互联、信息共享,又可通过调制解调器连接因特网,使异地信息共享、远程监控变为现实。实际工程中,该系统在恶劣的工业环境下工作稳定、可靠,具有一定的应用推广价值。安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 安防器材 的产品:
  • 安防监控资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved