You are on page 1of 3

Technology and Products 技术与产品

用 VB6.0 实现上位机对多个 PLC 的监控

曲阜师范大学 电气信息与自动化学院 宋 辉 李 坤

随 着计算机通信技术的日益成熟及企业对工业
自动化程度要求的提高,
自动控制系统从传 上位机实 ADAM
1 01

……
RS232 RS422
统的集中式控制向多级分布式控制方向发展,
构成 现控制与 -4520
监控
控制系统的PLC也就必须具备通信联网功能。在具
1 32
体应用过程中,若要监视PLC内部的数据与运行状
况,选用市场上的人机界面或组态软件,虽然功能 CPM1- CIFII PLC 站号
丰富,但大都价格昂贵,尤其在一些中小规模的生
附图 上位机与多台PLC的连接方式
产场合。
因此许多企业希望能自己用高级语言开发
一个简易实用的通信程序,
通过面向对象的可视化 在通信过程中上位机始终处于主动方,PLC则
编程语言能 VB6.0 很容易地实现分布式监控。PLC 处于从动方,
所有的数据交换只能在主站和从站之
等下位机控制生产过程,
本地计算机进行实时监测 间进行,从站之间不能直接交换数据,如果从站之
或参与控制。 间需要交换数据,必须通过主站中转 1。首先上位
本文通过对 O M R O N 的 C P M I A 小型机与上 机向 PLC 发送指令帧,PLC 接收了上位机的指令
位计算机通信原理和通信方法的研究,
介绍如何用 后,先进行 FCS 校验,看其是否正确,如果正确,
VB6.0 实现上位计算机对 PLC 的实时监控。 则接收并向上位机传送响应帧,否则,PLC 拒绝向
上位机传送数据。需要说明的是,整个通信过程中
监控原理 因 PLC 中配有通信机制,一般不需要对 PLC进行编
程。上位机接收到 PLC 传送的数据,也要判断正确
1.通信方法 与否,如果正确,则接收,完成一次正常通信,否
上位机作为主站要能够通过 PLC 监控下层设 则,通信需重新开始。
备的状态,首先要实现上位机与PLC 间的通信。由 2.通信协议
于串行通信具有线路简单,应用灵活,可靠性高等 (1)通信条件
优点,并且普通计算机均带有串行口,所以 PC 与 要使上位机与下位机正确地交换数据,
必须确
PLC间通常采用串行通信方式。串行通信可以通过 保以下两点:①双方在初始化时要使波特率、数据
Windows 的API 函数实现,也可以串行通信控件实 位数、停止位数、奇偶校验均保持一致。②要严格
现,但后者较容易,本文采用 VB 的通信控件。如 按照 PLC 的通信协议的规定及帧格式编写 PC 的通
果只实现对一台 CPM1APLC 的监控,需要 CPM1- 信程序。
CIFO1(OMRON 提供的专用的 RS232 适配器)形成 (2)通信的命令帧/响应帖
RS232C 口与上位机通信;如果是实现对多台 PLC O M R O N 公司的 C P M I A 小型 PLC 传输协议的
的监控,则需用 RS232 - RS422/RS485 转换器 一般格式为:
A D A M - 4520 和 CPM1 - C I F 1 1 ( O M R O N 提供的 @ × ×× × …… ×× * ↓
专用 RS422 适配器)与上位机通信,最多可连接32
起始字符 设备号 命令码 / 正文 FCS 校验码 结束符
台 PLC,连接方式如附图所示。 响应码

电气时代自动化系统工程专辑 www.eage.com.cn | A17


技术与产品 Technology and Products

其中, @ 为前导字符,表示开始;设备号为 对多个 PLC 的实时监控。


00~31(本例限设到 10),共可设置 32 个站号,用 (1)串口初始化程序
来识别所连接的 P L C,可通过 PLC 的 D M 6 6 5 3 的 If MSComm1.PortOpen <> True Then
低 8 位来设定,默认站号为 00;命令码为 CPMIA MSComm1.PortOpen = True
小型PLC规定的对其操作的命令代码;正文为需要 End If
读或写的数据地址以及数据;FCS 为帧校验代码, MSComm1.Settings = "9600,E,7,2"
用于及时发现通信过程中的错误,
以备处理; * 和 MSComm1.InputLen = 0
CR 表示命令结束。 MSComm1.InBufferCount = 0
命令帧为 PC 机传向 PLC 的帧格式,响应帧为 MSComm1.InputMode= comInputModeText
PLC 传向 PC 机的帧格式,其命令帧与响应帧中的 MSComm1.Handshaking = comNone
各个部分除数据区不同外,其他部分的含义是相 (2)计算机与 PLC 通信的 VB 程序
同的。 Public Function ReadData(ByVal InputStr As
3.MSComm 控件介绍 String, ByVal Num1 As Integer, ByVal Num2 As
V B 中的 M S C o m m 控件具有功能完善的串口 Integer) As String
数据发送和接收功能。M S C o m m 控件具有两种通 Dim OutputStr As String
信方式:事件驱动方式和查询方式3。因为查询方 Dim InString As String
式占用 CPU 时间太多,我们采用事件驱动方式。 Dim ReturnStr As String
要完成通信,必须正确设置 MSComm 控件的相关 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
CommPort 设定通信连接端口代号,
程序必须指 Form1.MSComm1.Output = OutputStr + Chr¥
定所要使用的串行端口号,
默认为端口1, (13) ' 按照PLC帧格式输出
Windows 系统使用所设定的端口与外界通信 End If
Settings 设定通信口参数,其格式是
“9600,E, Do
7,2”
,其中9600为通信波特率,
E位代表通
DoEvents
信校验方式位偶校验,
7 为数据位位数,

Loop Until Form1.MSComm1.InBufferCount >
为停止位位数
PortOpen 设定通信口状态,
若为真,通信端口打 = Num2 ' 返回帧的长度
开,否则关闭 InString = Form1.MSComm1.Input
Input函数 接收缓冲区返回的字符 EndString = Mid¥(InString, 6, 2) '取返回帧的响
Output函数 向缓冲区写入字符 应码
OutBufferCout 传回输出缓冲区中的字符数
If EndString <> "00" Then
InBufferCount 传回接收缓冲区中的字符数
ReadData = "Error"
InputLen 设定串行端口读入字符串的长度
InputMode 设定接收数据的方式,本试验要设置位0
ExitFunction
End If
通信程序设计 EndString = Mid¥(InString, 1, Len(InString) - 4)
ReturnFCSString=Mid¥(InString,Len(InString)
本系统以 PC 对基于 PLC 的交通灯控制系统的 - 3, 2) '取返回帧校验码
监控为例,在上位机与PLC正常通信的前提下设计 FCSString = FCS(EndString)
界面。窗体的内容主要包括,四大区:端口、站号 If FCSString <> ReturnFCSString Then
选择区,设定时间输入区,监控显示区,控制按钮 ReadData = "Error"
区。从站号选择区选择不同站号即不同 PLC,实现 ExitFunction

A18 | 电气时代自动化系统工程专辑 www.eage.com.cn


Technology and Products 技术与产品

End If 结论
If Len(InString) >= Num2 Then
ReturnStr = Mid¥(InString, Len(InString) - Num1 本文给出了利用 V B 中的 M S C O M M 控件实
- 3, Num1) '取返回帧的数据,
其度为Num1 现上位机与多个 P L C 之间的通信方法,实现了
ReadData = ReturnStr 上位机对多个 P L C 的实时监控。对于分布式控
End If 制系统大幅度地减小了通信成本,具有一定的
End Function 推广价值。

新闻&动态 News & Trend

台达 A S D A - A +系列伺服新品上市

近日,台达电子集团 ASDA 伺服家族又添一新的成员—— ASDA - A +系列


伺服,
该产品将编码器的分辨率提升到20 bits(1 280 000 ppr),
对于需要高精度加
工的工具机产业,能够提供更精准的控制。另外,对于需要高扭力输出的应用设备
(射出成型机、弹簧机、弯管机、龙门型加工机)
,ASDA - A +提供了 4.5 kW 到
7.5 kW的高扭力选择(19.1 ~47.74 N・M)。
据称,ASDA - A +系列伺服适用于不同的应用领域,其中针对弯管机设备,
在控制弯管弯曲工作时,可达到运行快速平稳,定位的高精准度及重现性,并且能
提高设备的使用寿命;针对折床机设备,
使用伺服电动机可达到精准的深度控制与
高稳定性,可避免削减时的不良率,并且提升安全性与生产产能,同时能节省能源、低耗能和提升高效率;针对
弹簧机,使用伺服电动机进行驱动,不会因机构凸轮受限,可在不同方向进行加工的动作,还可达到复杂的成形
动作,并且在安装上能缩短时间,进而提升产能,其高分辨率可确保高精密度。
有关数据显示,随着用户对伺服产品认识的加深,对机械设备控制的速度、精度、灵活性的提升,伺服产品
市场在 2006 年获得增长,高于 2005 年的增长预期,而在未来 3~5 年内,伺服仍会维持稳定的增长态势。

华北工控发布低功耗车载专用板 N O R C O - 7 7 3 6

车载电脑的出现给汽车行业带来一场信息化的革命,
每辆汽车正在面临构建一
个完美的车载信息与娱乐系统终端的挑战。
华北工控最近推出的一块低功耗车载专
用主板—— NORCO - 7736 将在一定程度上满足人们对车载电脑多样化的需求。
据称,NORCO - 7736 采用 852GM + ICH4 芯片组,默认配置使用 INTEL
ULV Celeron - M 600 MHz CPU;最大功耗仅 5~7 W,无需风扇即可运行。同
时在可以使用 CPU 风扇的情况下,NORCO - 7736 可以支持 FSB400 的 Intel
Pentium -M和Intel Celeron-M 的全系列 CPU。此外,主板所有接口均为IDC
插座,八层的 PCB 板尺寸仅为 161 mm × 120 mm,大大节省了车载设备的整体使用空间。
除具备许多常规功能外,设计者还赋予了 NORCO - 7736 一些特殊功能:所有接口均采用插针 / 插座形式,
扩展和连接更加方便;两路RS232接口,
Pin9 提供+5 V/500 mA的电流供电;COM2 可通过跳线设置选择RS232/
RS422/RS485 等多种工作模式;6 路 USB 接口,其中 2 路支持提供 1 A 电流的负载能力;音频采用 AC’97 芯片,
提供标准 5.1 声道音频输出和一个 MIC - IN 接口,具备强大的视听和娱乐功能。

电气时代自动化系统工程专辑 www.eage.com.cn | A19

You might also like