张利国,窦满峰
(1.西北工业大学,陕西西安,710129;2.东北石油大学秦皇岛分校,河北秦皇岛,066004)
DSP以其强大的数据处理能力,成为电机控制的首选芯片,而电机的运行参数和运行状态要想直观的体现出来,必需通过上位机软件的丰富功能来实现。目前,Labview虚拟仪器作为上位机软件应用研究较为广泛,多采用RS-232或RS-485的用户自定义串口通信,无法适应工控领域的应用,为适应工控领域串口通信的需求,设计与工控领域组态软件如力控软件、组王软件等的硬件接口,满足实现工控组态软件对电机控制驱动的智能控制。
文献[1]介绍了Modbus通信协议利用RS232通信,只针对专用开发软件的通信设计,不具有推广性;文献[2]介绍了一种InTouch组态软件的RS232通信,利用第三方软件,编程复杂。本文介绍可编程多种通信接口,适应工业中多数组态软件具有Moudbus通信协议端口的硬件及软件设计接口技术。解决一个设计项目对多种接口的需求,给出多接口实现方案。
串口通信仅仅定义了硬件的通信规范,而没有具体的软件通信协议,通常称之为自由协议。因此,串口通信经常与软件通信协议结合。Modbus通讯协议支持传统的RS-232、RS-422、RS-485和以太网设备。
本设计采用Modbus通讯规约中RTU(Remote Terminal Unit)协议(Modbus规约包括RTU协议和ASCII协议)。RTU通讯方式采用8位二进制数据传数据,CRC循环冗余校验作为数据校验,通讯速度较快。本接口技术通讯协议(Modbus_RTU)中的数据结构以及数据传输采用以下规范:
(1)数据传输格式
异步传输,1位起始位,8位数据位,2位停止位,无校验位,共11位。缺省波特率为9 600 bit/s。从机支持主机修改传输速率。
(2)数据收发功能报文格式
数据报文格式如表1所示。
表1 上位机请求读写取数据报文格式
本设计采用读一组寄存器数据功能码03H和写一组寄存器数据功能码10H。
主机从从机获得数据,包括从机仪表采集的模拟量数据、开关量数据及系统参数等。从机的地址、通信波特率写入、开关量输出、模拟量输出和系统参数的保存均采用相同的功能码,每个寄存器对应特定的端口,每个端口控制指定的设备,这样可提高控制的可靠性。
下位机读写保持寄存器完成对上位机的请求的执行与应答。分别通过子程序实现03H和10H功能,它们拥有共同的实现结构,如图1所示。
图1 读写保持寄存器子程序结构框图
共同的实现结构有助于简化编程结构,提高程序的可扩展性,利于程序的实现与修改。
工控组态软件[2-3]是数据采集与过程控制的专用软件,其突出特点是实时多任务,可以实现数据采集与输出、数据处理与算法、图形显示及人机对话、实时数据的存储、检索管理和实时通讯等多任务。
工控组态软件选用北京三维力控组态软件作为测试软件,软件可实现远程遥控操作,远程监测电机的工作状态与性能,可及时采集数据并分析数据,生成可视化动态数据并生成有效数据库。
定义一系列数据用于反映软件监测与被控电机的各种参数,如:控制板实时温度、母线电流、电机温度、电机转速及控制板采集的其它数据,还包括一些必要的中间变量和间接变量。数据库如图2所示。
图2 变量管理窗口
建立数据库中的数据与图形对象的连接关系,使画面生动直观地反映参数的变化情况。如控制板实时监测母线电流,可设置过流报警限,如超过30 A报警,实现代码如下:
力控组态软件对于采用不同通信协议的I/O可提供有针对性的I/O驱动程序,实时数据库借助I/O驱动程序对I/O设备执行数据采集与指令控制,如本文介绍的Modbus RTU通信协议属于工控组态软件通用的工业控制通信协议,通过组态软件的设置可较容易地实现I/O连接。
RS-232和RS-485通讯接口的主要区别是:
(1)从接线上,RS-232是三线制,RS-485是两线制;
(2)从传输距离上,RS-232只能传输15 m,RS-485最远可以传输1 200 m;
(3)从速率上,RS-232是全双工传输,RS-485是半双工传输;
(4)从协议层上,RS-232只支持点对点通讯(1∶1),RS 485支持总线形式通讯(1∶N)。
根据以上区别制定以下方案:
(1)根据需要选择通信接口,RS-232接口适合近距离实验性通信,RS-485适合于实际工程应用性通信。
(2)由于接口可选择的设计,对硬件的设计要求提高,选择单芯片多功能硬件,既能满足设计要求,又能减轻硬件设计负担。
(3)硬件设置接口选择拨码开关,软件设计通过接口判断位,执行相应程序。
电机控制板通讯芯片采用MAXIM公司生产的MAX3160,此芯片是一种高性能管脚可编程多协议收发器件,可通过引脚设置为2Tx/2Rx RS-232接口或单路RS-485/422收发器;该芯片内部采用双电荷泵结构,独特的低压差发送输出级,满足RS-232和RS-485/422协议标准的电压供电范围+3~+5.5 V。芯片的接收器采用了失效保护电路,此功能确保当接收器输入短路或开路时,器件输出保持高电平,MAX3160的限摆率功能具有减小EMI和终端匹配不当时减小信号反射。当禁止限摆率功能时,其数据传输速率在RS-485/422模式下可高达10 Mb/s,在RS-232模式下可达1 Mb/s。另外,该器件还具有节电模式、过流保护和过热保护功能。
本通信系统中RS-232接口和RS-485接口兼有。在以往的硬件设计中多采用多片专用芯片和控制电路来完成,造成结构复杂,稳定性差。采用MAX3160芯片并辅以少量其它电路,只需通过软件编程来控制相应的管脚即可方便地实现RS-232和RS-485的接口组合,图3给出基于TMS320F2812处理器通信接口方案,MAX3160有三个端口DSP软件与DSP的三个端口连接,实现数据的传送与控制。利用该电路可利用该电路可根据需要由软件控制和 RS-485/RS-232等四个可编程脚,从而实现RS-232或RS-485异步通信。
图3 通信接口电路
编程采用C语言实现,数据传送采用RS-232或RS-485线上实时通讯。作为DSP内部编程方式是线上等待、中断响应。图4是Moudbus_RTU通信中断程序的流程图。
RS-232只支持点对点通讯,RS-485支持总线形式通讯。所以在数据接收与数据发送时,两种接口的数据收发控制子程序有所区别。
另外,中断程序中的功能多以子程序形式出现,提高程序的可读性和运行的可靠性。子程序主要包括功能码判断、数据收发、10 ms定时软复位中断(超时)、校验、数据非法判断、寄存器读写和功能码不识别应答等。
图4 通信中断程序流程图
工控软件与电机驱动控制通过满足如下条件实现无缝连接。
(1)电机驱动控制通信硬件接口电路,可实现RS-232和RS-485通信。
(2)配合相应接口基于Modbus_RTU通信协议的软件编程。
(3)对应RS-232和RS-485接口与上位机接口的转换装置。
(4)工控组态软件与下位机接口设置及工控组态软件的上位机编程。
工控软件结合硬件平台的调试是将下位机控制器的通信硬件电路,利用硬件转接接口与上位机通信接口进行硬件连接,进行下位机软件与上位机软件的联合调试。下位机进行实时测量并记录数据,上位机请求发送实时采集数据,并通过工控软件对数据进行分析并描绘出实时的变化曲线。图5为上位机工控软件采集到的数据并进行了实时显示。
图5 工控软件界面
工控组态软件对电机的智能控制主要体现在,可实现电机的起停、远程控制、电机控制参数调整、电机故障报警和电机运行历史参数查询。
试验条件,采用力控工控组态软件设计的上位机控制界面;上位机与控制板选择使用RS-485接口;电机控制器采用TMS320F2812为控制核心,IGBT三相全桥逆变器驱动电机;电机采用18 kW永磁同步电机。调试项目及结果如下:
(1)电机起动、停止,工控组态软件发送控制命令,通过电机控制器可控制电机正常起动和停止。
(2)工控组态软件设置电机转速,与电机控制器通信,由控制器控制电机按设定转速运行,电机转速测得满足设定值。
(3)工控组态软件设定电机故障报警限制,数据传输电机控制器,当电机故障时产生报警信息。试验设定电机过热报警上限,产生硬件报警信息,同时报警数据传输到工控组态软件。
(4)工控组态软件建立数据库,可将下位机传输到上位机的实时存储,并可随时通过工控组态软件查看。
工控组态软件实现根据项目任务改变上位机编程及界面设置,完成对电机的实时控制和实时数据采集,达到对电机的实时监控。
本文通过对电机控制器通信电路的设计及软件编程,实现了与上位机工控软件的接口技术。设计与调试结果得到以下结论:
(1)Modbus_RTU通信协议在TMS320F2812处理器中的软件实现,能够适应工控领域采用此协议的组态软件实现通信;
(2)通信接口的硬件设计及软件编程,硬件通信可扩展能力强,为远程通信包括网络通信提供基础;
(3)完善的上位机力控软件与下位机软件设计,可为其它组态软件的使用提供参考。
[1] 程杨,刘学平,占涛,等.一种基于Modbus协议的工业控制系统设计[J].机械设计与制造,2011(1):1-3.
[2] 梁秀霞,张培楠.基于InTouch组态软件与串口的通讯实现[J].仪表技术与传感器,2012(3):62-63,66.
[3] 张勇,侯立刚,肖炎良,等.工控组态软件实时数据库系统的开发与设计[J].自动化仪表,201132(12):28-31,35.
[4] 王兴贵,张明智,杜莹,等.Modbus RTU通信协议在智能仪表与工控机通信中的应用[J].低压电器,2008(2):8-11.
[5] Yolacan E,Aydin S,Ertunc H M,et al.Real time DSP based PID and state feedback control of a brushed DC motor[C]//2011 23rd International Symposium on Information,Communication and Automation Technologies.2011:1-6.
[6] McConahay J.Using Modbus for Process Control and Automation[J].Control Engineering,2011,58(12):A12-A14.
[7] 张成鹤,王平,郑林华,等.可编程多协议收发器MAX3160的原理与应用[J].国外电子元器件,2002(12):62-64.