




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
三菱 PLC 编程口通信技术在机械手远程控 制中的应用 (保德神东发电有限公司,山西 保德 036603) 摘 要: 介绍了根据三菱 FX系列 PLC编程口通信技术 的特点,设计基于 VB的 PC与 PLC机械手远程 控制程序。 通过机械手监控系统软件的具体应用,系统地介绍了 VB环 境下的 MSComm通讯控件 、PLC 与上位机的编程口通信协议、 系统控制方法设计以及监控软件的实现过程。 关键词:可编程控制器;编程口 VB;通信;机械手 中图分类号:TN919.3TP241 文献标识码:A 文章 编号:10076921(XX)18011603 可编程控制器 PLC由于可靠性高、适应性好、接口功 能强、体积小以及组态灵活等优点,在 工业控制领域得到 了广泛的应用。但是 PLC在实际的工程应用中一般与上位 计算机组成分布 式/分级型控制系统来完成监控任务,这 就需要使用 PLC的通讯技术。而 PLC的编程口在上传 控制 程序后,一般处于闲置状态,在机械手监控系统中,三菱 FX1N 40MR PLC作为下位机并 以编程口作为通信口,用来 完成控制量的输出、传感器数据的采集等工作,上位机采 用个人 计算机,用来完成传感数据分析、运动规划,状态 显示等功能,以实现对机械手的实 时监控。 为实现 PLC与上位计算机的数据通讯,有多种开发平 台可以使用,其中 VB是一套完 全独立的 WINDOWS开发系 统,是可视化的、面向对象、采用事件驱动方式的高级程 序设计语 言。尤其是它提供了一个预定义对象MSComm 通讯控件。通过设置该对象的属性,向对象 发送信息,以 及为对象事件编写响应代码,可以很方便地完成用户应用 程序之间的串行通讯 ,对于通过编程口与串行口进行数据 通讯的 PLC与上位计算机组成的监控系统,它提供了稳 定、 可靠的通讯。 1 机械手的系统控制方法 机械手是由机械本体、气动控制系统、PC-PLC 监控系 统组成,其机械结构如图 1所示。机械 手是由基座、腰部、 手臂和手爪等几部分组成,分别完成扭转、升降、手爪翻 转、手臂伸缩 和手爪夹持动作。而上述 5种动作是由气缸 驱动实现的,气动原理如图 2所示。其中扭转气缸 、升降 气缸、手臂伸缩气缸是由三位五通阀来控制,而手臂翻转、 手爪夹持、气动系统通断 是由二位五通阀来控制的。对各 电磁阀的控制是由 PLC远程实现的。 740)this.width=740“ border=undefined 为了实现对机械手工作状态的监视和控制,充分利用 计算机系统具有的远程控制和管理功能 。为此,我们将控 制系统确定为两级计算机监控系统:PC 计算机为管理级, 可编程控制器 PL C为控制级。系统组成如图 3所示:系统 由上位机 PC、PLC、驱动电路、执行元件以及传感器 、外 部控制信号等几部分组成。 740)this.width=740“ border=undefined 2 PLC 编程口与上位机的通信协议基础 带有异步通信适配器的 PC机与 PLC只有满足以下几个 条件,才能互联通信: 2.1 PC与 PLC的异步通信接口采用的总线标准一致, 否则要通过“总线标准变换单元”变换 后才能互联。在机 械手的控制系统中,PC 机与 FX系列 PLC不能直接连接,要 通过 FX-232AW单 元进行 RS232C/RS-422的变换,即上位 机与可编程控制器是通过 RS232/422编程电缆进行连接 通 信的。 2.2 双方的初始化,使波特率、数据位数、停止位、 奇偶校验都相同。FX 系列 PLC采用异步 格式,由 1位起始 位、7 位数据位、1 位奇偶校验位以及 1位停止位组成,波 特率为 9600bps, 字符为 ASCII码。 2.3 严格按照 PLC通信协议的规定及帧格式编写 PC机 的通信程序。FX 系列 PLC有 4个通信命令 ,它们是读命令、 写命令、强制通命令、强制断命令。同时 FX系列 PL C采 用面向字符的传输规程,用到 5个通信控制字符: ENQ计算机发出请求 ACKPLC 对 ENQ的确认回答 NAKPLC 对 ENQ的否认回答 STX信息帧开始标记 ETX信息帧结束标记 PC 机向 PLC发送的报文格式如下: 740)this.width=740“ border=undefined 3 利用 VB编写通信程序 利用 VB提供的定时器控件和 MSComm通讯控件,可以 很方便地编制面向对象的应用程序,命令 传递、数据交换、 图形显示在定时器控件和通讯控件中完成。 使用 MSComm通讯控件的第一步是建立与串行口的连接。 通过设置 CommPort , PortOpen和 Se ttings属性来打开 串行端口。 CommPort 属性:设置或返回通讯端口号。注意:每个使 用的 MSComm控件对应着一个串行端口 。如果应用程序要 访问多个串行端口,例如应用程序需要和多个下位 PLC通 讯,必须使用多 个使用 MSComm控件。 Settings 属性:以字符串的形式设置或返回串行通讯协 议。该属性值由 4个设置值组成,有如 下的形式: “BBBB, P, D, S”, BBBB为波特率,P 为奇偶校验, D为数据位数,S 为停止 位 数。在实现上位机和 PLC的通 讯中,Settings 属性值的设置应该根据下位机 PLC的 D8120单元 的值来设定。Fx 系列的标准通讯参数为 9600,E,7,1 PortOpen 属性:设置并返回通讯端口的状态。将 PorlOpen属性设置为 True打开端口,将 Port Open属性设 置为 False关闭端口。注意:打开端口建立连接之前,必 须先用 CommPort, Sett ings属性正确指定端口号和通讯 协议,一旦打开端口后, 不可以随便更改 CommPort , Settings属性的设置,如果在程序运行中必须更改这两项 属性 ,应该先关闭端口,改变设置值之后,再重新打开端 口。 端口打开后,就创建了空的接收和发送缓冲区,端口 关闭缓冲区被清零。MSComm 控件提供了 一系列的属性来管 理这些缓冲区。 1nBufferSize 和 OutBufferSize属性:分配接收和发送 缓冲区内存的大小。 InBufferCount 和 OutBuffeiCount属性:分别获得接缓 冲区和发送缓冲区中字节的数目。在程 序执行过程中,将 这两个属性的值设置为零,即可清空接收或发送缓冲区。 Rthreshold 和 Sthreshold属性:设定 OnComm事件发生 前,接收或发送缓冲区中可以存放的字 节数。将这两个属 性值设置为零,可以抑制相应的 OnComm事件发生。 Input 属性:获取输入缓冲区中的数据,并将保存在输 人缓冲区的数据删除。 Output 属性:向发送缓冲区写人数据。 InputLen 属性:设置并返回 Input属性从接收缓冲区 读取的字符数。如果把 Input属性设置为 零,在使用 Input属性时,MSComm 控件将读取接收缓冲区的所有内容。 通信口初始化程序举例如下: Private Sub Form_Load() 进行通讯端口和初始化设 置。 MSComm1.CommPort1 MSComm1.Settings“9600,e,7,1”端口设置:波 特率为 9600bit/s、偶校验、7 位数据 位、1 位停止位。 MSComm1.InputModecomInputModeText 文本字符串 接收方式 MSComm1.InBufferSize1024 输入数据接收缓冲区 长度 MSComm1.OutBufferSize512 输出数据缓冲区长度 MSComm1.RThreshold0 每接受到字符就产生接受中 断 MSComm1.SThreshold0 禁止发送中断,进行无条件 发送 If MSComm1.PortOpenFalse Then MSComm1.PortOpenTrue 打开串行通信接口 COM1 End If End Sub 4 机械手监控软件的实现 利用计算机语言 VB编写的机械手监控程序主要分为以 下几部分:登陆及选择控制方式画面、 手动控制界面和自 动控制界面。手动控制界面与自动控制界面如图 4所示。 740)this.width=740“ border=undefined 上位计算机主要完成运动命令的生成,在获取机械手 传感器信息的基础上,完成机械手动作 在计算机屏幕上的 实时显示。在机械手出现故障时,允许通过手动控制界面 的按钮来远程控 制机械手动作。下位机 PLC完成对电磁阀 的控制从而驱动气动执行元件。 手动控制界面主要由状态显示区、按钮控制区、位置 显示区、时间显示区以及各种交互控制 按钮组成。如图 4 所示。按钮控制区的按钮通过用户程序和 PLC与各电磁阀 的线圈相连 ,实现远程控制气缸动作。每个气缸控制按钮 的多少是与电磁阀的线圈数相对应的,如果是 三位五通阀 则有三个按钮,二位五通阀有两个按钮。 自动循环控制界面主要由状态显示区、按钮控制区、 位置显示区、时间显示区、报警区以及 日志报告区等。如 图 4所示。匣置显示区的各状态显示是通过 PC与 PLC实时 通信实现的 。 4.1 控制命令的发送:手动控制界面与自动循环控制 界面中控制命令都是通过按钮控制区 的按钮发送出去的, 在发送控制命令之前,必须先形成控制命令帧。通常,按 钮对 PLC的控 制是对中间辅助继电器的控制,是软件对 PLC内部写命令过程,该过程是通过 WriteToPLC() 函数实 现的,其程序如下: Public Sub WriteToPLC() Dim DUMMY As String If MSComm1.PortOpenFalse Then MSComm1.PortOpenTrue 打开通信端口 Comm1 End If MSComm1.InputLen0 初始化通信端口 Comm1 MSComm1.OutputMWRITE)nCmdCounter) 通信端 口 Comm1写出数据包 End Sub 控制界面中的所有的写命令又是通过数组 MWRITE()来 实现的。其元素包括举例如下: MWRITE(1)Chr$(2)“1”“0111011”Chr$(3) “89” 手爪夹持 M136置 1 MWRITE(2)Chr$(2)“1”“0111010”Chr$(3) “88” 手爪松开 M136置 0 4.2 定时读取机械手状态信息:在状态显示区内,显 示的是手爪气缸、手臂气缸、升降气 缸、扭转气缸和手腕 气缸的电磁阀的工作状态。当按钮控制区的按钮被按下时, 状态显示区 的状态指示灯将被点亮,表示 PLC的某个对应 的输出端子正在工作。该信号是通过与 PLC进行 的实时数 据交换得到的,是 PLC的端子的实时状态。同样地,在位 置显示区,显示的是机械 手运动气缸的活塞杆位置状态, 是否到达左右极限。当活塞杆到达极限位置,相应的位置 显 示区的极限报警灯将被点亮,表示 PLC的某个对应的输 入端子正在工作。该信号也是通过与 P LC进行的实时数据 交换得到的,是 PLC的端子的实时状态。软件对 PLC各个 元器件状态的获取 是通过读命令和软件的定时器控件 Timer来实现的。读命令是通过函数 ReadFromPLC()实 现 的。其程序为: Public Sub ReadFromPLC() Dim DUMMY As String 向计算机发送读取命令 If MSComm1.PortOpenFalse Then MSComm1.PortOpenTrue End If 读取 D数据寄存器的数据 MSComm1.InputLen0 MSComm1.OutputReadCmd(nCounter) 从 MSComm1.Output发送数组 ReadCmd(20) 中的字符串 Do DUMMYDoEvents() Loop Until MSComm1.InBufferCount 6 ReturnData(nCounter)MSComm1.Input 将 MSComm1.Input接收到的信号存放在数组 ReturnData()中,然后根据接收到的数据分配给 用户界面 中的各种状态显示。 手控界面中的所有的读命令又是通过数组 ReadCmd()来 实现的。其元素包括举例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025计算机三级考前冲刺测试卷往年题考附答案详解
- 2023年度施工员测试卷附答案详解【考试直接用】
- 2025年合肥共达职业技术学院单招《物理》试题预测试卷附完整答案详解【全优】
- 爆破安全员考及答案带答案
- 2025中考数学总复习《分式》全真模拟模拟题含答案详解(完整版)
- 2024年保安员考试考试黑钻押题及完整答案详解【典优】
- 2025年上海商品房租赁合同
- 2023年度粮油食品检验人员考前冲刺测试卷附参考答案详解(突破训练)
- 自考专业(国贸)考试综合练习及完整答案详解【全优】
- 2025国际商事仲裁中涉及贿赂的合同的仲裁
- 铁路客运市场营销现状分析及策略优化
- (2025)学法用法考试题及答案
- 2026年色彩流行趋势报告
- 2025年县教育局中小学校长后备干部考试试题及答案
- 心衰护理题库及答案
- 《无人机飞行控制技术》全套教学课件
- 环境反应工程导论课件
- 超声诊断在肱骨外上髁炎(网球肘)中的应用
- 舆论导向培训课件
- 腮腺脓肿护理查房
- 保管员技师考试题及答案
评论
0/150
提交评论