图1 油田输油控制系统结构组成控制系统的通信原理根据油田输油控制系统的要求,我们给出了通信原理框图(图2),这里只重点突出工控PC机与变频器RS—485的接口部分。RS—485的驱动器可带32个接收器,在波特率为100Kbit/s时,通信距离可达到1200m; 通信距离为15m时,波特率可达10Mbit/s。在工业现场,RS-485是应用较多的一种通信方式。图2 中工控PC机通过RS-232C—RS-485转换器与多个变频器相连接,最多可达到32台。每个变频器被赋予各自的地址码用以识别身份,这样,上位机便能通过RS-485通信线,对挂在上面的所有变频器进行控制操作。
图2 通信原理框图变频器的串行口通信协议分析通过对油田输油控制系统的结构设计,以及对三菱FR-A500变频器原理及通信方式的研究,我们发现三菱FR-A500变频器的通信方式为异步半双工RS—485协议;波特率19200bit/s,9600bit/s,4800bit/s 可选;ASCII 7或8位数据位可选;1位奇偶校验可选;1或2位停止位可选。其通信协议的数据格式有十种,分别为:A,A’,B,C,D,E,E’,F,G,H;下面以格式A为例简要说明一下变频器通信协议:格式A的功能是变频器运行频率、运行参数的写入和复位变频器,其结构如下:
*1 ENQ——表示控制代码,它有以下几种:(括号内为ASCII码) STX (H02) 正文数据开始;ETX (H03) 正文数据结束;ENQ (H05) 通信请求;ACK (H06) 应答无数据错误;LF (H0A) 换行;CR (H0D) 回车;NAK (H15) 应答发现数据错误;*2变频器站号——可用十六进制数在H00和H1F(站号0 至31 )间设定;*3指令代码——由计算机发给变频器,指明程序要求(如:监视、运行等);*4等待时间——规定变频器收到从计算机来的数据和传输应答数据之间的等待时间。根据计算机的响应时间在0和150ms之间设定,最小设定单位10ms。*5数据——表示计算机与变频器之间传输的数据,如:频率、参数等;*6总合校验——由被校验的ASCII码数据的总和(二进制)的最低一个字节表示的2个ASCII数字(十六进制)。*7表示CR(回车)、LF(换行)代码。与格式A相对应的数据格式有C和D;若用户程序通信请求以格式A发送到变频器的数据被变频器接受,则变频器以格式C形式的数据返回给计算机;若变频器发现计算机发送的数据有误,则变频器以格式D形式的数据返回给计算机。数据格式C和D分别如下:
其他的数据格式的功能如下:格式A’ 用于运行指令的写入,其对应的应答数据格式为格式C和格式D;格式 B用于监视变频器的运行参数(频率、电压、电流、转速)及读出变频器的系统参数,其对应的应答数据格式为E、E’、F、G、H。一般情况下,变频器通过操作面板(PU)来设置变频器参数,一旦参数设定好了,就不能改变,这样很难通过现场信号进行实时的控制。通过以上对变频器通信协议的分析,考虑用软件来实现工控机与变频器的串行通信,利用软件可以灵活的实现系统所需的各种功能而不必改动现场的硬件电路,而且RS-485通信线最多能同时控制32台变频器,同时,各变频器的运行状态也能实时地回送给上位机。5 控制系统通信控制软件设计 5.1串口通信程序设计方法基于对系统结构和变频器串口通信协议的分析,必须对工控计算机的串行口进行编程。在DOS的操作系统下,计算机所有的硬件对编程人员是透明的,因此比较容易进行内存管理和硬件中断管理,所以程序的响应速度快。但是,DOS是单任务操作系统,对硬件资源浪费严重,并且在进行图形界面编程时其难度和任务量都远远超过了对硬件部分的编程。因此我们采用Windows 9X操作系统和基于此平台的开发软件来编写控制系统软件。在Windows 9X环境下,操作系统完全接管了各种硬件资源, 不允许用户程序直接读写硬件端口和进行中断管理。所以早期的程序员只能通过数目众多的API函数来控制端口,使用起来很不方便。本系统利用VB6.0下提供了一个ActiveX控件(Microsoft Communication控件, 简称MSComm 控件)来实现串行口的通信设计。通过在应用程序中嵌入MSComm控件的方式,进行计算机串口的通信管理,下面简要介绍一下MSComm控件的功能:MSComm 6.0控件可以实现数据缓冲区的管理,Input (从缓冲区读取接收数据)的数据类型为Variant,从缓冲区读取数据的格式为字符串格式(Text)或二进制格式(Binary)。MSComm控件提供的具体功能如表1:
其中串口号(CommPort)设置为1、2 … n等表示COM1、COM2 … COMn。参数设置(Settings)的格式为“BBBB,P,D,S”,BBBB表示波特率,P表示奇偶校验(N:无校验,E:偶校验,O:奇校验),D表示字节有效位数,S表示停止位数。串口状态(PortOpen)为BOOL变量,TRUE表示打开串口,FALSE表示关闭串口。InputMode使程序能方便地选择从缓冲区读取数据的格式,设置为0时,为字符串格式(Text),设置为1时,为二进制格式(Binary)。InputLen设置或返回的是用Input从缓冲区读字符串时每次读出的字符个数,这个性质对于读出数据块中定长数据串非常有用。InBufferCount和OutBufferCount用于串口的查询方式。对于较复杂的通信任务,可通过Com9Xvent处理串口的事件,当相应事件或串口错误事件发生时,系统会激活OnComm事件,在OnComm中添加用户的处理代码,则可实现类似DOS中断的串口处理程序。5.2变频器串口通信软件结构为了用该控件控制一个串口进行通信操作,还必须在应用程序中插入该控件。为此,将MSComm控件插入到程序的某个对话框,并为这个控件对象命名为MSComm1,则程序中对串口的各种操作都可通过对象MSComm1来实现。下面是串口控制子程序的流程图:
图3 变频器串行通信软件程序流图
6 结束语
本文利用Win9X下的ActiveX控件和三菱变频器RS-485的串行通信功能,成功实现了在Win9X环境下单台IPC机对多台三菱变频器的控制,并能实时检测各变频器的运行状态。整个控制系统灵活方便,具有很大的实用性。本文在Win9X下多台变频器控制的设计方案及软件实现为此类问题的解决作了很好的尝试与探索。与DOS方式的控制相比,具有开发周期短、充分利用硬件资源、软件界面美观等优点。但由于Win9X是多任务分时操作系统,所以该系统不能做到强实时控制,这是今后有待改进的地方。
我们公司主营柔性振动盘、柔性供料器、非标自动化设备、柔性振动盘、柔性生产线、柔性自动上料系统、并联机器人摆盘机、视觉自动分拣设备、柔性上料工作站、视觉检测机等业务,厂家直营,支持定制,免费获取全套方案。
本文来源于互联网,我们本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并以尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。