版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、V b 6.0 实现计算机与三菱P L C 的通信摘要:本文介绍了V B 进行串口通信的各种基本方式和三菱可编程控制器之间的通信的程序设计,重点介绍了利用M S C O M M .O C X 进行串行通信的设计方法。关键词:串行通信, P L C , V i s u a l B a s i c 6.0A b s t r a c t : D e s c r i b e s a l l k i n d s o f b a s i c s e r i a l p o r t c o m m u n i c a t i o n m e t h o d s u s i n g V i s u a lB
2、a s i c 6.0 a n d d e s i g n o f f r e e p o r t c o m m u n i c a t i o n p r o g r a m o f M I T S U B I S H P LC , f u r t h e r m o r e s e t f o c u s o n t h e d e s i g n i n g m e t h o d o f s e r i a l p o r t c o m m u n i c a t i o n t h r o u g h d y n a m i c l i n k e d l i b r a r y
3、 i n V i s u a l B a s i c 6.0K e y W o r d s : S e r i a l p o r t c o m m u n i c a t i o n , P L C , V i s u a l B a s i c 6.0一、引言在工业生产中,人们常常面临着数据采集与管理。作为工厂自动化的三大支柱可编程控制器P L C (P r o g r a m m a b l e L o g i c C o n t r o l l e r ,由于其安全可靠,广泛的用于数据采集与控制。生产过程中,要监视P L C 内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然
4、功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用高级语言开发一个简易实用的通信程序。微软公司推出的V i s u a l B a s i c 6.0,开发串行通信程序时,有两种方法,一种是用W i n d o w s A P I 函数,另一种是用V B 支持的通信控件M S C O M M .O C X 。利用W i n d o w s A P I 函数是通过调用读写等函数来操作串口。两种比较,使用M S C O M M .O C X 控件编程方便,具有更完善的发送和接收功能。这里采用了M S C O M M .O C X 控件。本文根据杭州某包装材料公司原料配料控制系统为
5、背景,简述实现计算机与三菱F X 系列P L C 通信的实现过程。二、硬件与选型日本三菱公司是国际著名的工厂自动化设备制造商,工业可编程控制器在国内市场占有率一直保持前列。项目选用三菱F X 2N -64M R 型P L C ,S C -09电缆作为计算机与P L C 通信的连线。连接电缆的9针端连接在计算机串口上,另一端连接在P L C 的R S -422编程口。系统框图如图一所示: 计算机 三菱 P L C 图一三、软件编程软件设计主要包括P L C 梯形图设计和计算机V B 程序、数据库设计。计算机操作系统为W i n d o w s 98,编程语言用V i s u a l B a s
6、i c 6.0,数据库选用A c c e s s 97,梯形图程序在三菱P L C 编程软件G P P W I N 软件环境设计。上位机软件实现计算机对P L C 内部数据读取、写入参数和保存数据到数据库。三菱F X 2N 型P L C 编程口通信协议如下:命令命令字 控制元件 备注 读元件 0 X ,Y ,M ,S ,T ,C ,D 读字/位元件状态写元件 1X,Y,M,S,T,C,D写字/位元件状态置位 7X,Y,M,S,T,C位元件置位复位 8X,Y,M,S,T,C位元件复位通信格式:起始符 命令字 首地址 数据区 结束符 和校验 波特率9600,偶校验,8位数据位,一位停止位。在新建工
7、程的表单上添加M S C O M M.O C X控件,初始化程序:P r i v a t e S u b F o r m_L o a d(M S C o m m1.C o m m P o r t=1选择C O M1口M S C o m m1.S e t t i n g s=9600,e,7,1E n d S u b 系统参数主画面如下图所示:图二数据读取子程序:P u b l i c F u n c t i o n G e t D a t a(B y V a l S t a r t A d d r e s s A s S t r i n g,B y V a l G e t B y t e s
8、A s I n t e g e r, B y V a l H e x_B y t e s A s S t r i n gA s S t r i n gM S C o m m1.I n p u t L e n=G e t B y t e s*2+4M S C o m m1.O u t p u t = S T X + C M D_R e a d + S t a r t A d d r e s s + H e x_B y t e s + E T X + G e t S u m C h k(C M D_R e a d+S t a r t A d d r e s s+H e x_B y t e s+E
9、T X传送数据组成:起始符+命令+首地址+数据位+结束符+和检验码G e t D a t a=M S C o m m1.I n p u tM S C o m m1.I n B u f f e r C o u n t=0M S C o m m1.I n p u t L e n=0E n dF u n c t i o n如需读取数据,通过调用G e t D a t a子程序。参数设置程序可参考读取子程序,只是改变命令而已。A c c e s s97数据库中包含三个表单,包括参数表、记录表、报警记录表。通过如下子程序是将实际称量值(记录表更新到数据库:P r i v a t e S u b S a
10、v e D a t a(D i m i A s I n t e g e rD i m v a l i d A s B o o l e a nO n E r r o r R e s u m e N e x tv a l i d=T r u eD a t a1.R e c o r d s e t.A d d N e wD a t a1.R e c o r d s e t.F i e l d s(d t i m e=T i m e S e r i a l(O n H o u r,O n M i n u t e,O n S e c o n dD a t a1.R e c o r d s e t.F i
11、 e l d s(s y s t i m e=T i m e系统时间D a t a1.R e c o r d s e t.F i e l d s(g e t_x l=L F(1小料当前称量值D a t a1.R e c o r d s e t.F i e l d s(g e t_f j s=L F(2方解石当前称量值D a t a1.R e c o r d s e t.F i e l d s(g e t_c s=L F(3长石当前称量值D a t a1.R e c o r d s e t.F i e l d s(g e t_s y s=L F(4石英砂当前称量值D a t a1.R e c o
12、 r d s e t.F i e l d s(g e t_c j=L F(5纯碱当前称量值O n E r r o r R e s u m e N e x tD a t a1.R e c o r d s e t.U p d a t e更新数据库记录D a t a1.R e c o r d s e t.M o v e P r e v i o u sE n d S u b程序中,L F(i变量对应为图二系统参数表单中实称值。保存参数子程序只是对数据库操作,程序结构可参考以上子程序。上位机与P L C通信质量的好坏,对系统的安全可靠运行影响极大,因此,编写程序时,除了在两者之间的通信协议上保持绝对一致
13、和采取相应的容错技术外,还要考虑系统的整体容错技术,防止系统的不正常。四、结束语串行通信是目前计算机与其他设备之间通信广泛采用的方式之一,传送数据准确,程序稳定运行是系统开发的主要目的。本设计中充分利用计算机和P L C的资源,在几乎不增加设备开支的情况下成功的实现上位机与P L C之间的通信。参考文献1、美国 M i c r o s o f t V i s a l B a s i c6.0C o n t r o l s r e f e r e n c e控件参考手册2、舒继武V i s u a l B a s i c中通信及应用微型机与应用,1996;3、陈小欧W i n d o w s环境
14、下串口异步通信程序设计电子技术应用由于Visual Basic6.0具有可视化,支持面向对象的程序设计,具有结构化的事件驱动编程模式,编程效率高等优点,所以我们VB6.0提供串口通信控件MSComm来进行通信编程。在VB6.0的开发环境中MSComm控件可直接从VB的T oolBox中加入窗体Form,即可用其进行通信。MSComm控件有很多重要属性,其中最主要的有: Comm Port:设置并返回通信端口号。 Settings:设置串口的通信参数,以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen:设置并返回通信端口的状态,并强行打开和关闭端口。 Input:从接收
15、缓冲区读取数据。 Output:向输出缓冲区写入数据。 InBufferCount:接收缓冲区中的字节数。 InputLen:设置并返回Input每次读出的字节数。MSComm控件同时支持事件驱动及查询方法,在本系统中,我们采用查询通信方式,通过检查InBufferCount属性值来判断输入缓冲区中是否接收到相应的数目字符。PLC通信模块设置为波特率:9600,数据位:8,停止位:1,可以在线写;不进行字符的奇偶检验和报文的和校验。以下是计算机读取1#站PLC数据寄存器DO的内容和将计算机时钟值写入PLC计数器C250中的程序。(1窗口加载程序Private Sub Form-Load(MSC
16、omm1.CommPort=2 选择通信端口2MSComm1.Settings=9600,N,8,1设置端口参数:传输速率9600,无校验,8位数据,1位停止位END Sub(2读取1#站PLC数据寄存器DO的内容指令序列代码格式为:ENQ 01 FF WR 0D000 01 CR LFPrivate Sub CommandRead-Click(If MSComm1. PortOpen=False ThenMSComm1. PortOpen=True打开串行端口END IfMSComm1. Inputlen=0串行数据接收缓冲区初始化rd $=Chr $(5+01FFWR0D000001+ C
17、hr $(13+ Chr $(10准备向PLC发送的读取数据命令字符串MSComm1. Output=rd $向PLC发送该字符串Dummy=DOEvents=(Loop Until MSComm1. InBufferCount=9rdh $= MSComm1. Input读取接收缓冲区数据pd $=Mid $(rdh $,1,5取PLC应答字符串的前5位If pd $=chr $(2+01FFThen判断读取是否正确js $ =chr $(06+01FF向PLC发送已正确接收数据信号MSComm1. Output=js $rdh $=Mid $(rdh $,6,4检出DO内数据并将其转化为十
18、进制数rdh =Val(&H+ Trim(rdh $x =MsgBox(读取正常,16Elsex =MsgBox(读取数据错误!,16END IfEND Sub(3将计算机时钟值写入PLC计数器C250中指令序列代码格式为:ENQ 01 FF WW 0CN250 01 CR LFPrivate Sub CommandWrite-Click(If MSComm1. PortOpen=False ThenMSComm1. PortOpen=True打开串行口END If MSComm1. In putLen=0串行数据接收缓冲区初始化szt $ =Trim(str(Int(Timer/60xr $
19、 =Trim(Str(Val(Space(4-Len(szt $+ Hex(Val(szt $取上位机时钟值将其转化为PLC要求的格式wr $ = Chr $(5+01FFWW0CN25001+ xr $ + Chr $(13+ Chr $(10 准备向PLC发送的写入数据命令字符串MSComm1. Output = wr $向PLC发送该命令字符串DO 等待接收PLC回答的字符串Dummy = DO Events = (Loop Until MSComm1. InBufferCount=5fh $ = MSComm1. Input 读取接收缓冲区数据jc $ = Mid $(fh $,1,5
20、 取PLC应答字符串的前5位If jc $ = chr $(6+01FFThen 判断写入是否正确x = MsgBox(写入正常!,16Elsex = MsgBox(没有正确写入!,16END IfEND Sub(4通信关闭程序Private Sub CommandClose-Click(If MSComm1. PortOpen = True ThenMSComm1. PortOpen = False 关闭串行端口x = MsgBox (关闭通信!,16END SubGenerated by Foxit PDF Creator Foxit Software For evaluation onl
21、y. 一、引言 由于体积小、可靠性高以及组态灵活等优点,PLC 在工业控制领域得到了广泛的应用, 如基于 PLC 的变频监控系统。在 PLC 组成的控制系统中,一般由上下微机组成主从式控制 系统,PLC 作为下位机,完成数据采集、状态判别、输出控制等,上位机(微型计算机、 工业控制机)完成采集数据信息的存储、分析处理、状态显示以及打印输出,以实现对系统 的实时监控。这种监控系统充分利用了微型机和 PLC 各自的特点,实现了优势互补,得到 了广泛的应用。 二、通讯连接方式 在工业控制及测量领域较为常用的网络之一就是物理层采用 RS 一 485 通信接口所组成 的工控设备网络。由于 RS 一 48
22、5 具有物理连接方便、抗干扰能力强、传输距离远等特点, 采用这种通信接口可以十分方便地将许多设备组成一个控制网络。 PLC 与上位机一般采用 RS 一 485 接口的串行方式。FX2N 是三菱公司推出的一种新型 的小型 PLC,该 PLC 有许多优点,其中一个主要的特点就是在 CPU 单元上,增加了一个外 置的 RS 一 485 的 FXZN 一 485 一 BD 通 j 承板,可以很方便地和外部设备进行串行通讯。 1、在用双绞线场合下,将 330 欧 14 千瓦终端电阻接与端子 SDA 与 SDB 和 RDA 与 RDB 问。 2、在用单绞线,将“0 欧 12 千瓦终端电阻接与端子 RDA
23、与 RDB 间。 三、通信协议及格式 网络能有序安全运行的一个很重要原因,就是它遵循一定的规范,就是说,信息在网络 中的传递同人在街上行走一样, 也要用规则来约束和规范的。 网络里的这个规则就是通讯协 议。换句话说,通讯协议是网络社会中信息在网络的计算机之间、网络设备之间及其相互之 间。通行。的交通规则。 在不同类型的网络中,应用的网络通讯协议也是不一样的。虽然这些协议各不相同,各 有优缺点,但是所有协议的基本功能或者目的都是一样的,即保证网络上信息能畅通无阻、 准确无误地被传输到目的地。 通讯协议也规定信息交流的方式,信息在哪条通道间交流,什么时间交流,交流什么信 息,信息怎样交流,这就是网
24、络中通讯协议的几个基本内容。 通讯格式: 例如:要读出站号为 0 的 Fx2n 系列 PLC 的 X00 到 X08 共 9 点的状态值,延时 100ms, 假设采用 Communication Format(D81 20)的 Formatl 方式: 注 释 : 请 求 站 号 PLC 号 命 令 延 时 元 件 首 地 址 元 件 数 量 和 效 验 代 码 : ENQOOFFBRAX00000942 ASCII 码: 05H30H30H46H46H42H52H41H58H30H30H30H30H30H35H34H32H 您 只 要 将 以 上 兰 色 部 分 的 代 码 以 字 符 串 形
25、 式 ( VB 中 可 以 表 示 为 CHR ( 5 ) &”00FFBRA00000942。 )发送到 PLC,就会有正确的回应信息,如下: 注释:头站号 PLC 号元件首地址尾和效验代码:S1OOFF001 1 01 1 01 EXT05 ASCII 码: 02H30H30H46H46H30H30H31H31 H30H31 H31 H30H31 H03H30H35H. 若发送码有误,则有以下回应: 注释:头站号 PLC 号和效验代码:NAKOOFF06 Generated by Foxit PDF Creator Foxit Software For evaluation only. A
26、SCII 码:1 5H30H30H46H46H30H36H 四、通讯程序的设计 在 PLC 与上位机通信之前,必须对 RS 一 485 通讯端口进行初始化,使两者按相同的 格式通讯。初始化参数包括波特率、起始位、数据位、停止位和奇偶校验等。FX2N 的 RS 一 485 通讯口一般设置为 9600bps、8 个数据位、1 个停止位、无校验,因而只需对上位机 的 RS 一 485 端口进行初始化即可。通讯形式由特殊数据寄存器 D8120 设定。由 D8120 设 定只在由 RS 指令驱动时有效,因此在指令后改变 D81 20 值,此设定值不能被实际接受。 上位机的通讯程序用 VB 语言设计:通讯:读 PLC,TX 通讯标 txbz(1)=1 Ifplcszl=Then MSComml.0utBufferCount=O MSComml.InBufferCount=0 MSComml.Output=Chr$(5)+”01“+”FFWROD01 0009“+Chr$13)+Chr$(1 0) t=timeG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年西安雁塔区长延堡社区卫生服务中心招聘备考题库及完整答案详解一套
- 2025年河北省三河市医院招聘36人备考题库及完整答案详解1套
- 灰色插画风总结汇报模板
- 2025年成都大学附属小学公开招聘教师备考题库含答案详解
- 2025年遵化市事业单位公开选聘高层次人才8人备考题库含答案详解
- 2025年国家空间科学中心质量管理处招聘备考题库参考答案详解
- 2025年汤旺县事业单位公开招聘19人备考题库及完整答案详解一套
- 2025年福州市妇女儿童活动中心关于招聘劳务派遣制工作人员的备考题库及参考答案详解1套
- 2025年南宁市兴宁区虹桥路幼儿园招聘备考题库及1套完整答案详解
- 后疫情时代邀约策略
- 2025秋湘美版(新教材)小学美术三年级上册知识点及期末测试卷及答案
- 2025年人力资源部工作总结暨2026年工作计划
- 2025中原农业保险股份有限公司招聘67人笔试备考重点题库及答案解析
- GB/T 27572-2025橡胶密封件110 ℃热水供应管道的管接口密封圈材料规范
- 红日药业医学事务专员面试流程及题库含答案
- 建筑工程管理专科实践报告
- 2025年国家统计局齐齐哈尔调查队公开招聘公益性岗位5人考试笔试备考试题及答案解析
- 2025湖北武汉市公安局蔡甸区分局第二批招聘警务辅助人员43人考试笔试备考题库及答案解析
- 文库发布:Java数组课件
- 《增值税法》实施解析及应对指南(2026版)课件
- 伤口护理中的营养支持策略
评论
0/150
提交评论