收稿日期:2005-03-17
作者简介:张宪青(1981-),男,山东宁津人,天津工业大学机电学院硕士研究生,研究方向为流体传动与控制等,(E -mail )xiang 1981@126 。
文章编号:1001-2265(2005)09-0029-02
用VB6.0实现PLC 与上位机串行通讯及实时曲线显示
张宪青,李修仁
(天津工业大学机械电子学院,天津 300160)
摘要:P LC 与上位机的串行通讯在现代工业控制中得到了越来越广泛的应用。P LC 作为下位机完成现场各种开关量和模拟
量的采集、运算和控制,上位计算机则可提供人机交互界面,实现数据的存储,打印以及现场数据的实时显示等监视功能。文章介绍了如何利用VB6.0实现OMRON CPM1A P LC 与上位机的串行通讯,以及如何利用VB6.0进行实时曲线的绘制和显示,对普通的控制系统有重要的参考价值。
关键词:上位机;可编程控制器;通讯;实时曲线中图分类号:TP391 文献标识码:A
The Serial Communication bet w een PLC and H ost Computer and the Display of R eal Time Curve by VB
ZHANG Xian 2qing ,LI Xiu 2ren
(C ollege of Mechanics and Electronics ,Tianjin Polytechnic University ,Tianjin 300160,China )
Abstract :The serial communication between P LC and H ost computer has been used more and more widely in the field of modern industrial control.P LC is used to collect ,calculate and control every kind of digital and anolog data ,while the host computer can provide mutual interface ,realizing the function of data saving ,printing ,and displaying.This paper introduces how to apply VB6.0to realize the communication between P LC and H ost C omputer ,and how to realize the display of real time curve.It has important reference value to general control systems.
K ey words :host computer ;P LC ;communication ;real time curve
0 引言
P LC 与上位机的串行通讯在现代工业控制中得到了越来越
广泛的应用。P LC 作为下位机完成现场各种开关量和模拟量的
采集、运算和控制,上位计算机则可提供人机交互界面,实现数据的存储,打印以及现场数据的实时显示等监视功能。
VB6.0功能强大,简单易学,编程可视化,受到许多编程者的青睐。利用VB6.0可方便地实现P LC 和上位机的串行通讯。本文以OMRON CPM1A 型P LC 和个人PC 为例,介绍了利用VB6.0实现通讯和实时曲线绘制的过程和方法。
1 通讯硬件连接
图1 个人PC 与P LC 连接示意图OMRON CPM1A P LC
自身带有一个RS232C 通
讯端口,用RS232C 电缆将此端口与计算机的串口连接起来,就构成了一个1:
1的简单的监控系统,如图1所示。
2 通讯的实现
2.1 PLC 的通讯命令和格式
上位机与P LC 之间的通讯实际上是计算机与P LC 通讯模块
HOSTLINK 之间交换命令和响应。P LC 中的HOSTLINK 能够对从
计算机发送来的字符串进行分析、检查数据的格式、分析指令代码,然后根据指令代码进行响应的操作,并向计算机发出响应信号,通知计算机已完成操作或者反映通讯中的错误、FCS 错误、代码错误。
当上位机给P LC 发出命令时,其命令格式如图2所示
。
图2 上位机命令格式
其中:“@”为命令开始标志位,所有命令都以@开始;“设备号”标识与上位机所连接的P LC ,占两个字符,CPM1A P LC 在DM6653中设置此设备号,默认值为00;
“识别号”即命令代码,通过此命令代码,上位机告诉P LC 进行怎样的操作(读/写等),如:识别号RR 代表读P LC 的IR/SR 区的数据,识别号也占两个字符;
“正文”用来设置命令参数;“FCS ”为帧检查序列,是用两位ASC II 码表示的8位数据,这8位数据是将一帧的每个字符(从@、设备号到正文的最后一个字符)连续进行“异或”运算的结果,一旦通讯出错,通过计算FCS 可以及时发现;
“结束符”用以表示命令的结束,用“3”和回车符
2005年第9期
・设计与研究・
CHR $(13)表示。
当P LC 执行完上位机发出的一帧命令后,会给上位机返回一响应帧,其响应格式如图3所示
。
图3 P LC 响应格式
其中:
“@”、“设备号”、“识别号”和“FCS ”的含义同命令格式中的一样;
“异常号”:返回命令的执行状态代码,通过“异常号”可以知道命令的执行情况,有无错误以及是什么错误等;
“正文”:命令为读出数据时返回目标数据;“结束符”:“3”和CHR $(13)表示响应的结束。2.2 VB 6.0通讯控件MSComm 的使用及通讯程序设计
在VB6.0环境下,从“工程”菜单里的“部件”中将“Microsoft C omm C ontrol 6.0”选中并添加到工具窗口中。使用时,用鼠标点中该图标,然后在窗口中拖拉即可。
通讯控件MSC omm 有许多属性,在这里只对几个重要的属性做一下说明:
设计时使用的属性:
C ommP ort :设置/返回通讯端口;
InBufferSize :设置/;
InputLen :从接收缓冲区读出的字符数,为0时,表示全部读出;
OutBufferSize :设置/返回发送缓冲区的大小;Settings :设置/返回波特率、奇偶校验、数据位和停止位参数,这些参数的设置必须与所用P LC 的参数设置一致。与CPM1A P LC 通讯时,标准通讯参数为“9600,e ,7,2”,即波特率9600,偶校验,7位数据位,2位停止位。
运行中使用的属性:
P ortOpen :打开/关闭串口;OutPut :向P LC 发送命令;InPut :从P LC 接收命令;
InBufferC ount :用来判断输入缓冲区的字符数,当给其赋0值时,清空缓冲区。
下面几段程序实现了定时读取输出口I/O 口状态的功能,可以作为一般通讯程序设计的参考。
Private Sub C ommand1Click ()‘P LC 运行按钮单击事件I f MSC omm1.P ortOpen =False Then MSC omm1.P ortOpen =True ‘如果串口没打开,则打开串口End I f
plcstart =″@00SC03″
MSC omm1.Output =plcstart +FCS (plcstart )+″3″+Chr $(13)‘启动P LC 运行
MSC omm1.InBufferC ount =0T imer1.Enabled =True ‘启动半秒定时器End Sub
Private Sub T imer1T imer ()‘半秒定时器事件Dim outstring As String outstring =″@00RR00100001″‘读输出口10口状态
outstring =outstring +FCS (outstring )+″3″+Chr $(13)MSC omm1.InBufferC ount =0
MSC omm1.Output =outstring ‘向P LC 发送命令Do DoEvents
Loop Until MSC omm1.InBufferC ount >14
instring =MSC omm1.Input ‘响应完成后接收P LC 返回的字符
Text1.Text =Mid (instring ,8,4)‘从返回的字符中提取有
用的字符
End Sub
Private Sub C ommand2Click ()‘P LC 停止按钮单击事件I f MSC omm1.P ortOpen =False Then MSC omm1.P ortOpen =True End I f
plcend =″@00SC00″
MSC omm1.Output =plcend +FCS (plcend )+″3″+Chr $(13)‘停止P LC 运行
MSC omm1.InBufferC ount =0T imer1.Enabled =False ‘关闭定时器MSC omm1.P ortOpen =False ‘关闭串口End Sub
3 实时曲线的绘制和显示
图4 实时曲线绘制流程图工业控制中,用户经常提出用实时曲线来动态地监视某个量的变化趋势。
实时曲线反映的是现场数据的实时性,以监测该点在现场工况变化的情况下的控制稳定性,因此在实现时需显示曲线的动态变化。通常当前点在曲线的最右端显示,随着时间的推进整个曲线动态地向左移动。
在VB6.0中,可以用PictureBox 控件结合定时器进行曲线的绘制。定时器定时时间到的时候,触发定时器事件,在定时器事件中,进行数据点的采集,同时在PictureBox
里将此次采集的数据点与上次采集的数据点用Line 命令连起来。当曲线到达右边界时,用API 函数BitBlt 将曲线左移一个单位的数据点水平间距,然后用背景重绘最右端一个单位间距的线段以消隐该线段,最后用最新的数据绘制最右端线段。限于篇幅,在这里只给出流程图,此流程如图4所示。
需要指出的是,使用BitBlt 函数时必须先声明:在路径“C:\ProgramFiles \M icros oftVisualS tudio \C omm on \T ools \W inapi ”下,打开API 阅览器,从“文件”中选择“加载文本文件”,然后加载“WIN32API ”,所有的API 函数被加载进来,从中(下转第32页)
螺旋曲面数控加工集成系统主要包括界面集成、数据集成和算法集成,系统可在同一界面下完成程序管理、螺旋曲面零件的型线设计与计算、刀具轨迹生成、螺旋槽铣床数控加工、手动操作等功能,用户可以在这些功能间任意切换,无需退出系统即可完成螺杆零件的设计、加工轨迹生成和数控加工控制的整个过程。在本集成系统中,CAD 、CAM 、CNC 三个模块之间不是以文件的形式相互传输数据信息,而是利用数据库有效地联系起来,从而实现了螺旋曲面数控加工过程中数据的集成,为三个模块间数据信息完整、可靠和有效地传输提供了保证。
在计算机辅助几何设计中,螺旋曲面可采用Besier 或B -S pline 等方式来描述[4]。在本系统的CAD 模块中,螺旋曲面造型采用三次样条插值法完成型面的建模与光顺处理,将结果数据存入CAD DB 中。CAM 模块定义其切削条件和加工方式,生成刀具加工轨迹,然后进行精度分析、干涉判定和加工过程
动态仿真,最后形成数控加工程序,传递给CNC 模块,完成螺旋曲面的铣削加工。集成系统的软件框图如图2所示
。
图2 集成系统的设计流程图
3 集成系统的应用实例
以某型螺杆为例,其输入的基本参数数据有:螺杆为5头,左旋,导程650mm ,大径102.0mm ,小径74.0mm ,盘铣刀直径为<290mm ,刀尖角为35°,刀尖圆弧半径为1.2mm 。
由该集成系统的主界面进入螺旋曲面型线设计与计算模块,输入这些已知的参数数据后,利用空间啮合理论、曲线拟合方法等进行数据点的计算,完成螺杆型面的几何建模与光顺处理,将结果数据存入数据库中。数控加工轨迹生成模块从数据库中调出相应的数据,生成刀具加工轨迹,并进行精度分析、干涉判定和加工过程动态仿真,最后形成如下形式的NC 加工程序:
......
N200X - 1.397C 1.593F 220N210
X - 1.283C 1.747F 230N220X - 1.196C 2.034F 240N230X - 1.057C 2.288F 250N240X -0.877C 2.467F 260N250X -0.725C 2.772F 270N260X -0.523C 3.023F 280N270X -0.288C 3.192F 290N280X -0.052C 2.004F 300N290X 0.052C 2.004F 300
N300X 0.288C 3.192F 290
......
该数控加工程序由加工控制模块传输给运动控制器,由驱动执行机构控制螺旋槽铣床根据CAD/CAM 模块生成的NC 程序代码完成螺旋曲面的连续加工。
4 结束语
随着信息技术和集成化技术的飞速发展,CAD/CAM/CNC 集成化已成为现代机械制造业发展的主流[5]。复杂螺旋曲面已成为一个高技术的新兴制造业,该数控加工集成系统解决了螺旋曲面数控加工过程中的关键技术问题,推动了螺旋曲面加工及其应用行业的发展,其应用领域不仅局限于目前的应用行业,还可以扩展到更多的专用数控机床和特殊功能数控机床上,促进企业信息化、集成化水平的进一步提高。
[参考文献]
[1]王正兵,任思.开放式体系结构—数控系统发展的潮流[J ].
制造技术与机床,2002(1).
[2]孙兴伟,王丽花.基于动态链接库的数控系统[J ].沈阳工业
大学学报,2004(4):426-428.
[3]王可,陈欣,付玉升,孙兴伟.螺旋曲面数控包络铣削方法及
其集成控制系统[P].中国:申请号200410082852.6,2004.
[4]王隆太.机械CAD/CAM 技术[M].北京:机械工业出版社,
2002.
[5]刘亚东,李从心,阮雪榆,等.应用高速切削技术的
CAD/CAM/CNC 集成系统研究[J ].机械设计与制造,2000(5).
(编辑 江复)
(上接第30页)选择BitBlt 函数,声明范围选“私有”,其代码便在
最下端框中显示,将代码直接拷到VB 程序的“声明”里即可。
4 结束语
在普通的工业控制系统中,用VB 实现P LC 和上位机的通讯以及实时数据的采集、实时曲线的显示还是简便易行的。另外,
VB 与数据库还可完成数据的存储、查询和打印等功能。笔者将
此法应用于某气密性检测设备的监控系统中,已成功运行。
[参考文献]
[1]郭宗仁,吴亦锋,郭永.可编程控制器应用系统设计及通信
网络技术[M].北京:人民邮电出版社,2002.
[2]刘定晟,杨俊,蒋迪清.用VisualBasic 实现测控软件中的实时
曲线和历史曲线[J ].工业控制计算机,2001,14(4):32~35.
[3]江永富,廖晓梅.P LC 上位机监控软件的开发[J ].微机应用
与自动控制,2003,29:45~47.
[4]余松,赵忠堂,甘川.用VisualBasic 实现上位机和P LC 的通visual basic pdf
讯[J ].电气传动,1999(3):41~43.
[5]赵闻蕾,付维胜.利用VB6.0实现PC 机和P LC 的串行通信
[J ].微计算机信息,2004,20(1):34~35.
[6]范逸之.VISUA L BAISIC 与RS232串行通信控制[M].北京:
中国青年出版社,2000,81(编辑 李秀敏)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论