《控件MSComm实现计算机与欧姆龙PLC串行通信编程的研.pdf》由会员分享,可在线阅读,更多相关《控件MSComm实现计算机与欧姆龙PLC串行通信编程的研.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、7 4收稿日期:2 0 1 0-0 2-0 5作者简介:张红军(1 9 7 5-),男,工程师,现工作于国家广播电影电视总局无线局 6 5 4电台。基于V B 通信控件M S C o m m 实现计算机与欧姆龙P L C 串行通信编程的研究与应用张红军,韦晓明,苏锐生(国家广播电影电视总局无线局6 5 4 电台 新疆呼图壁,8 3 1 2 0 0)摘 要:主要阐述了如何在V B(V i s u a l B a s i c)编程环境下利用M S C o m m 通信控件实现计算机与欧姆龙P L C 进行串行通信的编程技术。关键词:M S C o m m 控件;串行通信Abstract:In th
2、is article,how to realize the serial communication programming between computer and Omron PLC using MSCommcommunication control under VB(Visual Basic)programming environment is focused on.Key words:MSComm control;Serial communication中图分类号:T P 2 9 文献标识码:B 文章编号:1 0 0 1-9 2 2 7(2 0 1 0)0 4-0 0 7 4-0 40
3、 引 言计算机串行通信是计算机与控制设备(P L C)进行数据传送的一种通信方式,也是实现工业自动控制经常用到的通信模式。每一种通信方式都严格约定了与其对应的通信协议。要确保计算机与P L C之间能正常通信,就必须遵照P L C 通信协议编写通信程序。本文将围绕如何使用V i s u a lB a s i c(简称V B)的M S C o m m 通信控件编写计算机与欧姆龙P L C 串行通信程序进行阐述。1 串行通信串行通信在工业系统控制的范畴中一直占据着极其重要的地位,串行端口(R S-2 3 2)是计算机上的标准配置,常用于连接调制解调器来传输数据,在计算机的硬件设备管理器中可以看到,定
4、义为C O M 1、C O M 2 等。常用的串行通信方式有两种,分别是R S-2 3 2 和R S-4 8 5,本文以R S-2 3 2 方式为例进行介绍。2 V B 集成开发环境中M S C o m m 通信控件的使用与设置2.1 V i s u a l B a s i c 集成开发环境V B采用了面向对象的程序设计思想。它的基本思路是把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对象集合,所谓“对象”就是一个可操作的实体,如窗体、窗体中的命令按钮、标签、文本框等。面向对象的编程就好像搭积木一样,程序员可根据程序和界面设计要求,直接在屏幕上“画 出窗口、菜单、按钮等不同类型的
5、对象,并为每个对象设置属性。2.2 串行通信控件M S C o m m 的使用和设置V B 提供了支持串行通信的可编程组件M S C o m m,用户只需要将其加载到应用程序中,对其进行简单的属性设置即可使用。现将控件的加载及属性设置方法进行介绍。2.2.1 将M S C o m m 控件加载到应用程序中在V B 集成开发环境(I D E)中选择“工程”选项卡中的“部件”子菜单进入控件选择页面,如图1所示。图1 部件选择菜单示意图在控件选择页面中选上M i c r o s o f t C o m m C o t r o l 6.0控件加载项,单击“确定”按钮完成M S C o m m 控件的加
6、载,如图2 所示。图2 控件加载页面示意图基于V B 通信控件M S C o m m 实现计算机与欧姆龙P L C 串行通信编程的研究与应用 张红军,等自动化与仪器仪表2 0 1 0 年第 4 期(总第 1 5 0 期)7 5当完成M S C o m m 控件的加载后,在I D E 中的常规控件栏即可看到M S C o m m 控件,此时就可使用此控件了,如图3 所示。图3 控件示意图2.2.2 M S C o m m 控件属性设置当应用程序成功添加M S C o m m 控件后,就可在其属性设置页面完成其属性的设置,如图4所示。在一般的串行通信应用程序中只需要对M S C o m m 控件的
7、如下几个属性进行设置。图4 控件属性设置页面C o m m P o r t:通信程序使用的串口序号,根据计算机的串口硬件配置进行选择,可以为1、2等。S e t t i n g s:属性设置字符串,属性有:波特率、奇偶校验、字节数据位数、字节停止位数。可以为9 6 0 0、e、7、2。也可在程序中动态设置,属性设置程序代码如下:f r m M a i n.M S C o m m 1.C o m m P o r t=1f r m M a i n.M S C o m m 1.S e t t i n g s=“9 6 0 0,e,7,2”3 P L C 通信数据帧介绍计算机与P L C通信时,按应答
8、方式进行。由计算机发给P L C 一组A S C I I 码字符数据,这一组数据成为命令帧。P L C 对收到的命令帧进行校验,并将校验结果返回给计算机,P L C返回给计算机的这一组数据称为响应帧,只有当校验正确时P L C才按照命令执行。计算机和P L C通信时,P L C 是被动的,必须先由计算机给P L C 发出命令帧,P L C 再给计算机发出响应帧,每帧最多由1 3 1个字符组成。下面将命令帧与响应帧的组成结构介绍如下:3.1 命令帧命令帧组成结构如图5所示。图5 命令帧结构示意图帧结构解析:在起始处必须放置;节点号:有效值为0 0 3 1,表示P C 机最多可同3 2 台P L
9、C 通信;头代码:P L C 的命令代码;发送文本:P C机发送的命令参数;F C S(F r a m e C h e c k S e q u e n c e):帧检查顺序代码(帧校验码);帧校验码是2 位(B i t)十六进制数。它是由帧数据包含的所有字符的A S C I I 码进行位异或运算的结果。终止符:“*”号和回车符“C R”。举例如下:读H 区命令帧结构如图6 所示。图6 读H 区命令帧结构示意图3.2 响应帧响应帧结构如图7所示。图7 响应帧结构示意图帧结构解析:返回命令头;节点号:有效值为0 0 3 1,返回数据的P L C 节点号;头代码:P L C 的命令代码;尾代码:返回
10、命令完成状态码;接收文本:在有数据时返回的数据;F C S:帧检查顺序代码;终止符:“*”号和回车符“C R”。举例如下:读H 区响应帧结构如图8 所示。图8 读H 区响应帧结构示意图3.3 F C S(帧数据冗余校验码)的计算为了降低串行通信的误码率,在接收和发送端都必须对数据进行校验,常用的方法是进行F C S校验。对帧数据进行冗余校验计算时,应对帧数据中各个字符的A S C I I码进行位异或运算,然后将结果转为2位十六进制字符。4 计算机与P L C 串行通信程序实例4.1 通信主程序的设计架构设计通信主程序的主要功能是:实现计算机对P L C 的运行控制和状态监视,即构成一个闭环监控
11、系统。程序设计架构如图9 所示。7 64.2 打开串行通信端口打开通信端口,对端口进行初始化设置,程序设计流程如图1 0 所示。图9 通信程序设计架构图1 0 打开通信端口程序流程图4.3 写P L C 数据将计算机发出的命令写入P L C,实现计算机对P L C 的控制功能。程序设计流程如图1 1所示。图1 1 写P L C 程序流程图4.4 读P L C 数据从P L C 中读取数据,监视P L C 的运行状态,程序设计流程如图1 2 所示。图1 2 读P L C 程序流程图例1 打开通信端口程序源代码I f f r m M a i n.M S C o m m 1.P o r t O p
12、e n =F a l s e T h e nf r m M a i n.M S C o m m 1.C o m m P o r t =1f r m M a i n.M S C o m m 1.S e t t i n g s =“9 6 0 0,E,7,2”f r m M a i n.M S C o m m 1.P o r t O p e n =T r u eE n d I f例2 写P L C 函数程序源代码P u b l i c S u b M y W r i t e(M y A d d r e s s A s S t r i n g,M y V a l u eA s S t r i n g
13、)D i m a,t m p s t r A s S t r i n g D i m i 2 A s I n t e g e r C R L F =*+C h r(1 3)D i m w o r d A s S t r i n g w o r d =0 0 W D a =w o r d&M y A d d r e s s&M y V a l u e a =a&f c s(a)&C R L F I f f r m M a i n.M S C o m m 1.P o r t O p e n =T r u e T h e n f r m M a i n.M S C o m m 1.I n B u f
14、 f e r C o u n t =0 f r m M a i n.M S C o m m 1.O u t p u t =a i 2 =0 D o D o E v e n t s i 2 =i 2 +1 L o o p U n t i l f r m M a i n.M S C o m m 1.I n B u f f e r C o u n t =1 1 O r i 2 1 0 0 0 0 I f i 2 =M y B i t O r i 2 1 0 0 0 0 I f i 2 1 0 0 0 0 T h e n t i m =0 t m p s t r =f r m M a i n.M S
15、C o m m 1.I n p u t t m p s t r =t m p s t r +f r m M a i n.M S C o m m 1.I n p u t I f M y F u n c t i o n =z t 1 T h e n G l o b a l _ S Y S T E M S T A T E 1 =t m p s t r E n d I f I f M y F u n c t i o n =z t 2 T h e n G l o b a l _ S Y S T E M S T A T E 2 =t m p s t r E n d I f f r m M a i n.T
16、e x t 3 =P L C 通讯正常 f r m M a i n.T i m e r 1.I n t e r v a l =5 0 0 E l s e t i m =t i m +1 I f M i d(t m p s t r,8,4)8 8 8 8 T h e n f r m M a i n.T e x t 3 =P L C 通讯失败 E n d I f E n d I f E n d I fE n d S u b附录D F C S 函数程序源代码F u n c t i o n f c s(B y V a l i n p u t s t r A s S t r i n g)A s S t
17、r i n g D i m s l e n,i,x o r r e s u l t A s I n t e g e r D i m t e m p f e s A s S t r i n g s l e n =L e n(i n p u t s t r)x o r r e s u l t =0 F o r i =1 T o s l e n x o r r e s u l t =x o r r e s u l t X o r A s c(M i d$(i n p u t s t r,i,1)N e x t i t e m p f e s =H e x$(x o r r e s u l t)I f
18、 L e n(t e m p f e s)=1 T h e n t e m p f e s =0 +t e m p f e s f c s =t e m p f e s E n d F u n c t i o n参考文献1 徐 德,孙同景,陈桂友.可编程序控制器(P L C)应用技术 M .山东:山东科学技术出版社,2 0 0 5,3皮壮行等编著.可编程序控制器的系统设计与应用实例 M .北京:机械工业出版社,2 0 0 0,1 1M i c r o s o f t C o r p o r a t i o n 著.V i s u a l B a s i c 6.0 中文版语言参考手册(希望图书
19、创作室译)M .北京:北京希望电子出版社,1 9 9 8,9M i c h a e l H a l v o r s o n 著.M i c r o s o f t V i s u a l B a s i c 6.0 P r o f e s-s i o n a l S t e p B y S t e p.专业版循序渐进教程(希望图书创作室译)M .北京:北京希望电子出版社,1 9 9 9M i c r o s o f t C o r p o r a t i o n 著.V i s u a l B a s i c 6.0.中文版程序员指南(希望图书创作室译)M .北京:北京希望电子出版社,1 9
20、9 82345(上接第7 3 页)在电机学理论教学的同时,使用传统教学结合项目教学,不但增强了学生对于理论知识的理解和增强了学生的学习兴趣,而且在项目教学中,学习过程成为一个人人参与的创造实践活动,注重的不是最终的结果,而是完成项目的过程。学生在项目实践过程中,理解和把握课程要求的知识和技能,体验创新的艰辛与乐趣,培养分析问题和解决问题的思想和方法。在项目教学过程中,学生学会了如何利用所学相关知识来解决电机学理论分析和学习过程中遇到的实际问题,学会了将知识融会贯通和举一反三,能够用发展的目光来看待自己的学习,对专业课学习形成系统地认识,建立合理的电气工程的知识框架,这正是大学教育的目的所在“让年轻人凭借自身具有的敏锐、坦荡、同情心、观察力在共同的学习、生活、自由的交谈和辩论中,得到受益一生的思维训练,这才是大学所要完成的重要任务”。参考文献1 孙雨萍.“电机学”特色教学体系研究 J .电气电子教学学报:2 0 1 0(2)4 2 4 5谢胜利,王 泱.在 电机学 课程中开展项目教学的研究 J .中国电力教育:2 0 0 6(2):3 4 3 6杨文方,布 挺.关于“电机学”课程教学的思考和实践 J .中国电力教育:2 0 0 9(8):2 8 2 923