机电之家行业门户网运行
文章 下载
最新公告:

  没有公告

设备维修与管理培训
您现在的位置: 设备维修与管理 >> 监测诊断 >> 控制技术 >> 监测诊断系统 >> 文章正文
 
赞助商
 
 
最新文章
 
 步进电机的PLC直接控制
 涤纶工业长丝纺丝机用变频器、可
 PLC实现变频调速器多电机控制
 啤酒糖化绞笼吹气出槽改用LOGO!
 PLC控制步进电机在机床自动线中的
 应用PLC改进绕线式电动机起动控制
 KDN-K3系列PLC在热封切袋机中的应
 GEO系列旋转包装机计量控制系统的
 PLC在轧钢生产故障诊断中的应用研
 浮法玻璃生产线的智能自动化技术
 
推荐技术
 
 
相关文章
 
基于InTouch的泵站计算机
基于PLC和PC的分布式计算
VB环境下利用并口实现PL
如何设计一套完善的自动
一类异构监控系统的集成
基于PLC的旋窑监控系统的
双边剪夹送辊监控系统的
基于PLC变频恒压供水监控
基于LabVIEW的油脂加工远
纺织企业PLC温湿度监控系
 
客户服务
 
如果您有设备方面好的文章或见解,您可以送到我们的投稿信箱
客服电话:0571-87774297
信   箱:88ctv@163.com
我们保证在48小时内回复


s

b

g

l

.

j

d

z

j

.

c

o

m

 

[组图]用VB6.0实现PC对多个PLC的监控           
用VB6.0实现PC对多个PLC的监控
作者:佚名 文章来源:网络 点击数: 更新时间:2009-6-5 11:29:56

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控件属性

3 通信程序设计
本系统以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的实时监控。对于分布是控制系统大幅度地减小了通讯成本,具有一定的推广价值。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    不良信息
    举报中心
    机电之家设备管理网
    致力于机电设备维修与管理技术
    网络110
    报警服务
    服务热线:0571-87774297 传真:0571-87774298 电子邮件:donemi@hz.cn 服务 QQ:66821730
    机电之家(www.jdzj.com)旗下网站 杭州滨兴科技有限公司提供技术支持

    版权所有 Copyright © 机电之家--中国机电行业门户·设备维修与管理

    主办:杭州高新(滨江)机电一体化学会
    网站经营许可证:浙B2-20080178-1