设为首页| 收藏本站| 联系我们

智能建筑中PLC可编程与PC的通信实现微机监控

摘 要:本文通过介绍PLC可编程控制器的开发和PLC与VB的通信技术,结合数据库技术,为智能建筑中的系统集成提供一种思路,提高智能建筑中设备使用的安全和可靠性。  
1、引言:
  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组建的实时监控系统开发成本低、实时性好、操作简便、通用性强,利用计算机易组网功能,既可以做到智能建筑内部网络互联、信息共享,又可通过调制解调器连接因特网,使异地信息共享、远程监控变为现实。实际工程中,该系统在恶劣的工业环境下工作稳定、可靠,具有一定的应用推广价值。

我们的优势:

品牌理念品牌理念 标准流程 标准流程 有效沟通有效沟通专业管理 专业管理客户视图 客户视图优秀团队优秀团队品质保证品质保证无忧售后无忧售后
上海茂育科教设备有限公司,立于上海,心怀天下
生产基地:上海松江工业园
销售中心:上海市普陀区祁安路88-6号
业务电话:021-56311657 , 56411696 , 业务传真:021-56411696 公司邮箱:shanghaimaoyu@126.com
教学设备厂 沪公网安备 31010702001294 号 沪ICP备13020377号-1
备案