由于操作过于频繁,请点击下方按钮进行验证!

用VB6.0来实现PC对多个PLC的监控

1 引言

随着计算机通讯技术的日益成熟及企业对工业自动化程度要求的提高,自动控制系统从传统的集中式控制向多级分布式控制方向发展,构成控制系统的PLC也就必须具备通信联网功能。在具体应用过程中,若要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,尤其在一些中小规模的生产场合。所以许多企业希望能自己用高级语言开发一个简易实用的通信程序,通过面向对象的可视化编程语言VB6.0很容易地实现分布式监控。PLC等下位机控制生产过程,本地计算机进行实时监测或参与控制生产现场的参数。本文通过对OMRON的CPM1A小型机与上位计算机通信原理和通信方法的研究,介绍了如何用VB6.0实现上位计算机对PLC的实时监控,并取得了良好的效果。

2 监控原理

2.1 通信方法

上位机作为主站要能够通过PLC监控下层设备的状态,首先要实现上位机与PLC间的通信。由于串行通信具有线路简单、应用灵活、可靠性高等优点,并且普通计算机均带有串行口,所以PC与PLC间通常采用串行通信方式。串行通信可以通过Windows的API函数实现,也可以串行通信控件实现,但后者较容易,本文采用VB的通信控件。如果只实现对一台CPM1APLC的监控,需要CPM1-CIFO1(OMRON提供的专用的RS232适配器)形成RS232C口与上位机通信;如果是实现对多台PLC的监控,则需用RS232—RS422/RS485转换器ADAM-4520和CPM1-CIF11(OMRON提供的专用RS422适配器)与上位机通信,最多可连接32台PLC,连接方式如图1所示。



图1 系统通信原理


在通信过程中上位机始终处于主动方,PLC则处于从动方,所有的数据交换只能在主站和从站之间进行,从站之间不能直接交换数据,如果从站之间需要交换数据,必须通过主站中转1。首先上位机向PLC发送指令帧,PLC接收了上位机的指令后,先进行FCS校验,看其是否正确,如果正确,则接收并向上位机传送响应帧(包含首尾校验字节),否则,PLC拒绝向上位机传送数据。需要说明的是,整个通信过程中因PLC中配有通信机制,一般不需要对PLC进行编程。上位机接收到PLC传送的数据,也要判断正确与否,如果正确,则接收,完成一次正常通信,否则,通信需重新开始。

2.2 通讯协议

(1)通讯条件设计。要使上位机与下位机正确地交换数据,必须确保以下几点:

● 双方在初始化时要使波特率、数据位数、停止位数、奇偶校验均保持一致;
● 要严格按照PLC的通信协议的规定及帧格式编写PC的通信程序。

(2)通讯的命令帧设计。OMRON公司的CPMIA小型PLC的传输协议的一般格式为:


(3)通讯的响应帧设计



其中,@为前导字符,表示开始;设备号为00-31(本例限设到10),共可设置32个站号,用来识别所连接的PLC,可通过PLC的DM6653的低8位来设定,默认站号为00;命令码为CPMIA小型PLC规定的对其操作的命令代码;正文为需要读或写的数据地址以及数据;FCS为帧校验代码,用于及时发现通信过程中的错误,以备处理;*和CR表示命令结束[2>。

命令帧为PC机传向PLC的帧格式,响应帧为PLC传向PC机的帧格式,其命令帧与响应帧中的各个部分除数据区不同外,其他部分的含义是相同的。

2.3 MSComm控件介绍

VB中的MSComm控件具有功能完善的串口数据发送和接收功能。 MSComm控件具有两种通信方式:事件驱动方式和查询方式[3>。因为查询方式占用CPU时间太多,我们采用事件驱动方式。要完成通信,必需正确设置MSComm控件的相关属性,本设计在窗体中对其进行初始化,主要包括端口设置,波特率设置,奇偶设置等。主要属性如表1所示。

表1 MSComm控件属性

2 通信程序设计

本系统以PC对基于PLC的交通灯控制系统的监控为例,在上位机与PLC正常通信的前提下,设计如下界面。窗体的内容主要包括,四大区:端口、站号选择区,设定时间输入区,监控显示区,控制按纽区。从站号选择区选择不同站号即不同PLC,实现对多个PLC的实时监控。

3.1 串口初始化程序

If MSComm1.PortOpen <> True Then
MSComm1.PortOpen=True
End If
MSComm1.Settings=“9600,E,7,2”
MSComm1.InputLen=0
MSComm1.InBufferCount=0
MSComm1.InputMode=comInputModeText
MSComm1.Handshaking=comNone

3.2 计算机与PLC通信的VB程序

Public Function ReadData(ByVal InputStr As String, ByVal Num1 As Integer, ByVal Num2 As Integer) As String


Dim OutputStr As String
Dim InString As String
Dim ReturnStr As String
Dim EndString As String
Dim FCSString As String
Dim ReturnFCSString As String
Form1.MSComm1.InBufferCount=0
OutputStr=InputStr+FCS(InputStr)+“*”
If Form1.MSComm1.PortOpen=True Then
Form1.MSComm1.Output=OutputStr+Chr$(13)’按照PLC帧格式输出
End If
Do
DoEvents
Loop Until Form1.MSComm1.InBufferCount >=Num2’返回帧的长度
InString=Form1.MSComm1.Input
EndString=Mid$(InString,6,2)’取返回帧的响应码
If EndString <> “00”Then
ReadData=“Error”
Exit Function
End If
EndString=Mid$(InString,1,Len(InString)-4)
ReturnFCSString=Mid$(InString, Len(InString) -3,2)’取返回帧校验码
FCSString=FCS(EndString)
If FCSString <> ReturnFCSString Then
ReadData=“Error”
Exit Function
End If
If Len(InString)>=Num2 Then
ReturnStr=Mid$(InString, Len(InString)-Num1-3, Num1)’取返回帧的数据,其度为Num1
ReadData = ReturnStr
End If
End Function

4 结束语

本文给出了利用VB中的MSCOMM控件实现上位机与多个PLC之间的通信方法,实现了上位机对多个PLC的实时监控。对于分布是控制系统大幅度地减小了通讯成本,具有一定的推广价值。


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。

网友评论 匿名:
相关链接
  • 原创 | PC-DMIS定制报告应用案例:电池盒密封圈检测
  • 24-11-22
  • 微课 | PC-DMIS专项技能_移动安全点、捕捉网格点
  • 24-11-22
  • 活动回顾 | PolyWorks Shanghai VIP技术交流日活动圆满落幕
  • 24-11-22
  • TOP30!海克斯康入选2024福布斯中国数字科技领军企业
  • 24-11-22
  • 从一片神奇玻璃的检测,看科技如何改变生活
  • 24-11-22
  • 直播预告 | 间隙面差检测如何做到精准高效?答案在这里
  • 24-11-22
  • 玩嗨啦!这群未来的“智慧工程师”来海克斯康研学了
  • 24-11-22
  • 海克斯康出席中国汽车工程学会年会暨展览会
  • 24-11-22
  • 磁编码器:电动车辆背后的隐形“英雄”
  • 24-11-22
  • 干货 | 温泽专家详解航空发动机叶片截面质心位置的计算
  • 24-11-22
  • 『里程碑』向采埃孚交付温泽第10,000台“德国制造”的坐标测量机
  • 24-11-22
  • CREAFORM 形创展讯 | 上海遇到深圳,CREAFORM 形创双城展会活动同期举行,期待与您现场交流!
  • 24-11-20
  • 关于内部校准和委外校准间的平衡
  • 24-11-20
  • FARO 点播网络研讨会 探索全新 Quantum X Fa
  • 24-11-19
  • FARO 携手龙测三维 @ 国际电力展
  • 24-11-19
  • 直播预告 | 一「扫」搞定3D测量难题,轻松应对复杂测量环境
  • 24-11-18
  • 揭秘!喷淋盘通孔毛刺检测的妙招在这里
  • 24-11-18
  • 展会预告 | 相约职教展,共探教育新未来
  • 24-11-18
  • 共话康复医学高质量发展!这场大会干货满满
  • 24-11-18
  • 2024收官盛展,API邀您相聚椰城,共度暖冬!
  • 24-11-18
  • 分享到

    相关主题