VB与三菱PLC通讯
一. 随着生产自动化程度的不断提高,可编程序控制器PLC得到了广泛的应用,特别是小型PLC具有编程简单、性能可靠和价格低的特点,被大量应用于单机控制系统中,如啤酒的稀释控制、离心机控制等。作为设备维修技术人员,一般都能掌握PLC和计算机PC的应用知识,但如何利用PLC和PC来设计小型自控系统,实现简单的数据采集和监控操作,从而满足生产需要,却是一个要深入学习研究的问题。 面向生产操作,设计简单有效的控制系统,涉及到三部分的软件编程: 第一:PC上人机操作界面的设计。PC作为上位机,一般都是运行在Windows 第二:实现生产工艺要求的PLC控制程序设计。因为是小型控制系统,其生产控制过程并不复杂,技术人员只要充分了解了生产工艺和控制要求,运用PLC编程工具,此部分设计编程并不难。 第三:PC与PLC通讯程序的设计。此部分的开发设计较难,需要掌握PC和PLC的有关通讯硬件驱动和通讯协议的知识。但对于小型控制系统来说,主要通过PC串口来通讯,所以通讯程序设计的关键是如何利用Visual 下面以啤酒稀释自控系统设计为例,主要讲解PC和PLC通讯程序的设计要点。 二. 1. 啤酒稀释是啤酒生产中一个重要环节,通过把高浓度的酒液与脱氧水按比例混合成稀释酒,从而提高啤酒产量和增加啤酒品种,稀释的控制过程很简单,主要步骤有: 1) 2) 3) 4) 由于酒和水的瞬时流量是变化的,所以3)、4)步要反复进行。以上所有的计算功能和PID调节功能都由PLC完成。 2. 人机操作主要用来输入啤酒浓度数据、操作命令,直观显示各种流量数据并记录偏差曲线,界面图如下: 3. 本例子中上位机PC选用联想奔腾Ⅱ品牌机,外加RS232转RS485通讯转换卡。下位机PLC选用三菱FX2N-16MR,另加模拟输入模块FX2N-2AD 三. 在分析具体的VB通讯程序之前,先要介绍有关VB串口通信控件MSComm的应用知识和三菱PLC 1. 如图所示是Mscomm控件的图标。 它可以用来提供简单的串行端口通信功能,也可以用来创建功能完备、事件驱动的高级通信工具。Mscomm控件提供了一系列标准通信命令的使用界面。使用它可以建立与串行端口的连接,通过串行端口再连接到其它设备(如调制解调器、PLC),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。 2. MSComm 属性 CommPort Settings PortOpen Input Output 如下程序打开串行端口COM1 MSComm1.CommPort MSComm1.Settings MSComm1.PortOpen 3. 通信控件有2种不同的方式来处理和解决各类通信软件的开发和设计问题。 (1) 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如:当线路数据到达本端或CD线和RTS信号线状态发生变化时,要求我们使用相应的事件来跟踪和出理。在这些情况下, (2)查询方式 利用定时器控件Timer,我们可以设计程序每隔一段时间去读取CommEvent的值并处理所发生错误和事件。 4. 在本例子中,PC与PLC (1) (2) 在啤酒稀释的人机操作界面中,有运行时不可见的通信控件(MSComm1)一个、定时器控件一个Timer1。通信控件(MSComm1)用于初始化串口数据并打开串口;定时器控件(Timer1)用于每隔0.5秒执行通讯命令,把查询命令从PC发送到PLC,同时接收PLC返回的应答数据。设计通讯数据的发送和查询功能,必须掌握PLC所遵循的通讯协议。 5. 三菱FX系列PLC共有四种通信模式,本实例采用的是PLC与计算机专用协议通信方式(无须PLC编程,电脑直接读写操纵PLC),其通讯命令字和通讯格式介绍如下: PC发送给PLC的通信命令字 命令字 BR WR BW WW BT WT RR RS PC TT PC发送给PLC的通信命令格式 约定说明:ENQ为请求标志,ASCII值5,VB中以chr(5)表示; ACK为正确标志,ASCII值6,VB中以chr(6)表示; STX为请求标志,ASCII值2,VB中以chr(2)表示; EXT为请求标志,ASCII值3,VB中以chr(3)表示; 表格中粗体字为需要求和效验的部分; 和效验为每一项的ASCII值的总和转换成十六进制后,取其低两位; 站号、PLC号、元件数量、和效验都是以十六进制表示; 1) 1 PC侧: PLC侧: 例如:要读出站号为5的PLC的X40到X44共5点的状态值,延时100毫秒,假设PLC中X40与X43为OFF,其余为ON,则指令数据如下: 注释: 代码: ASCII码: 只要将以上代码以字符串形式(VB中可以表示为chr(5)&”05FFBRAX00400547”)发送到PLC,就会有正确的回应信息,如下: 注释: 代码: ASCII码: 2) PC侧: 该命令使用与BR命令相同。 3) 1 PC侧: PLC侧: 4) PC侧: 6. 根据三菱PLC的通讯指令格式,在PC中编写数据查询功能块RevData( 1) (没有和校验) Sub '' Dim Dim Dim Dim Select Case Comm cha Case Comm cha End iAdd iNum Stmp ChaCount main.MSComm1.InBufferCount main.MSComm1.Output Now=Second() Do DoEvents If Loop RevDataTmp ''RevDataTmp中 End 2) Sub '' Case Comm iValue Case Comm Stmp MSComm1.Output Now= DoEvents Loop EndSub (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |