中国集成电路
2009·1·http://www.cicmag.com (总第 116期)
应用China lntegra ted CircultCIC
1 引言
随着工业控制要求的不断发展,上位机监控已
基本成为集散控制系统所不可缺少的部分。一般情
况下, 在大型的集散控制系统中都是用专业工控组
态软件制作上位机的监控界面, 而以 PLC厂家所推
荐的 DDE SERVER 作为联系上位机和 PLC的桥
梁。操作员站采用工控组态软件实现画面监控。由于
这种
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
成本较高, 所以在很多小型的集散控制系
统中,趋向于采用通用
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
软件,如 DELPHI,VISUAL
BASIC,VISUALC++等编制上位机监控界面。同时,
在一些实时性要求较高的监控应用中, 用 VISUAL
BASIC等工具可实现更底层的控制, 在硬件配置相
同时系统响应比工控组态软件要快。由于本方案将
用 VB实现上位机
与 OMRON PLC 串行通讯
杨利宣,刘大全
(上海微松半导体设备有限公司,上海 201114)
摘要: 随着工业自动化的发展,PLC与计算机在工业中的应用越来越广泛,为了充分发挥它们的各自优
越性,PLC与个人计算机间的通讯越来越频繁。本文以 OMRON小型 PLC CP1H为例,介绍了如何用 VB编
程软件实现上位机和 PLC的串行通讯。该方案具有硬件简单,使用灵活的特点。对中小型控制系统实现
人机界面有一定的参考价值。
关健词: Vi sual Bas i c 6. 0;可编程控制器;串行通讯
Serial Communication between Computer
and PLC by Using VB Programming
YANG Li-xuan,LIU Da-quan
(Shanghai MICSON Semiconductor Equipment Co., Ltd. Shanghai 201114,China)
Abstract: With the development of indus tria l automation, PLC and computer becomes more and more extens ive ly
used in indus try. To play their potentia l to the full extent, communica tion of PLC and computer becomes more and
more frequent. Taking OMRON CP1H PLC as an example , this paper introduces a communica tion method between
computer and PLC by us ing VB programming. This solution has s imple hardware s tructure and is flexible . It has
grea t reference value for rea lizing HMI of small to middle-s ized control sys tem.
Keywords: Visual Bas ic 6.0;PLC;Seria l Communication
79
CIC中国集成电路China lntegra ted Circult应用
2009·1·(总第 116期) http://www.cicmag.com
图 1 PLC与计算机连接示意图
高级语言引入工控网络的监控中, 对于那些有兴趣
自行开发上位机控制软件的开发人员, 将有一定的
借鉴作用。本文将以在实际工程中运用 VB实现上
位机和 OMRON CH1H PLC的通讯为例, 向大家介
绍一种简单可靠,易于掌握的通讯方案。
2 通讯硬件及软件介绍
2. 1 PLC介绍
OMRON可编程控制器 SYSMAC CP1H是最新
的超高速的一体化紧凑型 PLC。它整合了 CPM2A
和 CJ1系列 PLC的优点。内置数字 I/O、高速计数、
脉冲输出、模拟输入和输出功能,提供了极大的灵活
性。编程电缆只需要
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的 USB线缆,使用快捷方
便。配备与 CS/CJ系列共通的体系结构,与以往产品
CPM2A 40点输入输出型尺寸相同,但处理速度可
达到约 10倍的性能。CP1H PLC提供了两个通讯口,
可进行 RS- 232C 通信和 RS- 422A/485 通信。将
CPU单元前面的拨动开关 SW4(若选用串行端口
1)或者 SW5(若选用串行端口 2)设定为 OFF(出
厂时设定)。并且将串口设置中的模式设为 host link
模式。RS232端口根据 PLC系统设定的串行端口设
定的值进行动作。初始值:高位链接(9600位 /s、启
动位 1位、数据长 7位、偶数校验、结束位 2位)。
2. 2 VB介绍
VISUAL BASIC 6.0 中提供了一种实现串口通
讯的MSComm控件。该控件可完成对串口的读写工
作,从而实现与 PLC的通讯,为此需正确设置它的
一些属性。MSComm控件的属性有许多,其中一些需
要在编程时设置,另一些则取默认值即可,具体置方
法可参见相关资料。MSComm控件有两种通信方式,
查询方式和事件驱动方式。事件驱动法:OnComm事
件是MSComm控件提供的唯一的事件, 当有数据到
达端口或端口状态发生改变或通信错误产生时,都
将触发 OnComm事件, 以捕获和处理这些通信事件
和通信中产生的错误,通过查询 CommEvent属性值,
可以获得关于通信事件和通信错误的完整信息,进
而进行处理。查询法:MSComm控件的 CommEvent属
性返回通信中产生的事件和错误类型, 由通信控件
自动检测和跟踪通信状态后设置。因此,程序员可以
在每个重要的程序功能之后检查 CommEvent属性
值来检测事件和通信错误。当然,要完成正常的通信
功能, 还必须正确设置 CommEvent控件的相关属性
值。
3 通讯的实现
3. 1 上位机和可编程控制器之间的硬件
连接
我们用电缆将其 RS- 232C通信板与计算机串
口相连,即可构成一个简单的监控线路,如图所示。
当然,可以实现对多台进行监控,当 1台上位机
同时和 N 台 PLC 通讯时,可通过 NT- AL001 把
RS- 232转换成 RS- 422可实现和多台 PLC的通讯。
3. 2 上位机和可编程控制器之间的通讯
协议
上位机链接通信使用的是 OMRON 的 Host
Link协议,在一次交换中传输的命令或应答的数据
被称为一帧,一帧最多可包含 131 个数据字符。
OMRON CP1H编程手册介绍了两种通讯方式,第一
种是由上位机向 PLC发初始命令, 而第二种是由
PLC向上位机发初始命令。前一种方式用得较多。系
统使用 HOST- LINK通信协议进行通信,上位机具
80
中国集成电路
2009·1·http://www.cicmag.com (总第 116期)
应用China lntegra ted CircultCIC
有传送优先权,总是首先发出命令并启动通信,
HOST LINK单元收到命令交由 PLC执行,然后将执
行结果返回上位机,二者以通信帧为单位,轮流交换
数据。通信时一组传送的数据称为“块”,它是命令
或响应的单元的数据块称为命令块,反过来,从
HOST- LINK单元发送到上位机的数据块称为响应
块。多点通信时,可作为单帧发送的最大数据块为
131个字符,因此当一个数据块含有 132或更多个
数据块时,要分成两帧或多帧发送。每个数据块都
以设备号及标题开始,以校验码(FCS)及结束符结
束。响应块中还包括反应执行结果的响应码。图 2
所示为数据传送时程序
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图。
上位机链接命令可参考相应 PLC的编程手册,
其基本格式如下:
上位机发送命令的格式
其中:
起始符———@
节点号———指定与上位机通讯的 PLC(在
PLC串口设置中设置)
命令码———设置两个字节的命令码
正文———设置命令参数
校验码———设置两字符的帧检查顺序码,
用于校验。它是从“@”开始到正文结束的所有字符
的 ASCII码按位异或运算的结果。
终止符———设置“*”和“回车”(CHR
$(13))两个字符表明命令结束。当 PLC收到上位
机的命令后,会以下述格式应答。
其中:
起始符———@
节点号———指定与上位机通讯的 PLC(在
PLC串口设置中设置)
命令码———和上位机所发命令相同
结束码———命令结束状态(如:00表示正
常完成,01表示在 RUN模式下无法执行)
正文———仅在有读数据时生成
校验码———用于校验,由 PLC计算给出,
同上位机的 FCS计算方法相同,可用来判断 PLC传
来的应答是否可靠
终止符———设置“*”和“回车”(CHR
$(13))两个字符表明命令结束。
4 通讯程序实例
4. 1 在 VB中添加控件
在窗体中添加 MSComm控件 MSCommSet和一
个时钟控件 Timerl,时钟控件用来处理通信超时。在
使用MSComm控件之前要进行初始化, 建立起与串
行端口的连接。在通信控件的属性页中设置其属性,
要保证和 PLC通讯参数一致。
4. 2 串行口初始化
常用属性如下
Comport:设置通讯中,指定用于通讯的串口号。
图 2 数据传送程序流程图
上位机到 PLC
命令格式
PLC到上位
机响应格式
81
CIC中国集成电路China lntegra ted Circult应用
2009·1·(总第 116期) http://www.cicmag.com
Setting:进行通讯设置,例如对于 OMRON CP1H
PLC,一般设置为“9600,7,2,e”,它的含义为:波特
率为 9600,7个数据位,2个停止位,偶校验,它的设
置必需和 PLC的通讯设置一致。
Portopen:读取和设置口的状态,串口在程序运
行时需且只需打开一次。
Inputlen:指定每次能从输入缓冲区中读取的字
符数,一般采用默认值 0,即一次可把输入缓冲区中
的所有字符读入。
Inbuffersize:输入缓冲区大小,一般采用默认值
即可。
Outbuffersize:输出缓冲区大小,一般采用默认值
即可。
Output:向串口写数。
Input:从串口读数。
Inbuffercount:用来判断输入缓冲区内的字符数。
其详细内容请参考参考文献[2]。
初始化程序如下
Private Sub Initialize()
MSComml.Commport = 1
MSComml.Setting =“9600 ,e ,7 ,2”
MSComml.PortOpen = True
MSComml.Inpulen = 0
MSComml.InputMode = ComInputModeText
MSComml.Handshaking = ComNone
MSComml.Inbuffersize = 1024
End Sub
4. 3 上位机和 PLC 的数据传送的部分程
序
下面, 以向 DM区 D0200为始的单元写入一个
字”1234”为例说明。写多个字时,只须将“1234”换
成多个需写入的字即可。始果要读以 D0200为起始
单元的数据,只须将 Data字符串中“W”改为“R”,
并将“1234”改为须读入的字数便可。对于 DM区
PLC上电(OFF→ON)或模式切换(程序模式←→
运行模式 /监视模式间的切换) 时也可保持数据。
而 OMRON CP1H PLC由于很多区的信息在 PLC处
于“运行”模式时都是不可写的,若需要写入,必须
先通过 SC命令码把 PLC置为“监控”模式,写入成
功后再把 PLC改回“运行”模式。根据协议,可以得
到命令格式如下:
Private Sub Form Load()
Data =“WD02001234”
outdata =“@00”+ Data
L =Len(outdata)
fcsl = 0
For i = 1 To L
fcsl =fcs1 Xor Asc(Mid(outdata,i,1))
Next i
FCS = Hex(fcs 1) ’计算校验码 FCS
Dim Instring As String ’保存输入子串的缓冲
MSComml.Output = outdata + FCS + “*”+ Chr
$(13)’将命令送到 PLC
Do
DoEvents
Loop Until MSComml.InBufferCount > = 10’等待
数据返回到串行端口
Instring = MSComml.Input ’从串行端口读响
应。
MSComml.PortOpen = False ’关闭串行端口。
If Mid (Instring,Len (Instring)- 1,1)<>“*”
Then’检查响应数据“*”
MsgBox“通讯出错”
Else
fcs2 = 0
For i = 1 To Len(Instring)- 4 ’校验响应数据
FCS
fcs2 = fcs2 Xor Asc(Mid(Instring,i,1))
Next i
fcs3 = Hex(fcs2)
If fcs3 = Mid(Instring,Len(Instring)- 3,2)
82
中国集成电路
2009·1·http://www.cicmag.com (总第 116期)
应用China lntegra ted CircultCIC
数字信号时产生的误差;二是信号在无线传输时的
误码。为了解决以上两个问题就需要提高转换精度,
同时还要提高无线发射 /接收模块的可靠性来减少
误码率。
5 结论
本设计的温度监控系统采用无线传输,解决了
恶劣环境中有线传输布线难和不灵活的问题,同时
采用 LCD液晶显示,使得操作简单,显示直接明了,
而且大大减少了功耗。经过实验测试表明此无线温
度监控系统具有精度高、可靠性好、功耗低的特点,
因此它有着广泛的应用前景,尤其在工业现场。
参考文献
[1]赵建领.51系列单片机开发宝典[M].北京:电
子工业出版社.2007
[2]黄智伟.无线发射与接收电路设计[M].北京:
北京航空航天大学出版社.2007
[3]HY12864T-LCD. datasheet. 秋田科技有限公
司.2006
[4]DS18B20. datasheet.Dallas semiconductor.
2002
作者简介
刘勇,在读硕士研究生,主要从事 EDA和信号处理研
究。
Then
MsgBox“通讯有效”
Else
MsgBox“通讯出错”
End If
End If
End Sub
5 结束语
PLC与上位机的串行通讯在现代工业控制中
得到了越来越广泛的应用,PLC作为下位机完成现
场各种开关量和模拟量的采集、运算和控制,上位
计算机则可提供人机交互界面, 实现数据的存储、
打印以及现场数据的实时显示等监视功能。利用
VB6.0 实现 OMRON CPM1A PLC与上位机的串行
通讯,并且还可利用 VB6.0进行实时曲线的绘制和
显示, 因此对普通的控制系统有重要的参考价值。
由于 VB本身能提供良好的用户界面,面向对象的
设计方法,提供串行口控件,方便的动画程序设计,
省去了编写大量串行口操作和界面设计程序,因而
VB在编制 PLC控制系统上位机监控软件方面有
很大的潜力。
参考文献
[1]范逸之. VISUALBAISIC与 RS232串行通信控制
[M].北京:中国青年出版社,2000- 8- 1
[2]明日科技.Visual Basic开发技术大全.人民邮电出
版社,2007- 4- 1
[3]李江全.Visual Basic串口通信与测控应用技术实
战详解.人民邮电出版社,2007- 6- 1
[4] OMRON公司.SYSMACCP系列 CP1H CPU单元
操作手册,编程手册,2007年 3月
上接第 74页
CIC
CIC
83