利用MODBUS提高多CPU协同开发效率
在电力系统微机综合保护和自控装置以及其它工业自动化控制领域,微控制器的应用越来越广泛,其装置的复杂性也越来越高。为了解决其开发对象实时多任务性的要求,单CPU、单入开发的模式下在被多个、多类型CPU和多人协同开发的模式所代替。在这新的开发模式中,面临一个新问题——在实施信息交互的过程中如何将实现CPU之间信息交互的软硬件标准化,这是关系到该模式能否成功实施的关键。在众多的通信方式中,基于UART的RS-485串行通信模式以其连线简捷、可靠性高和可带动多CPU、多设备级连的能力而被广泛采用。在软件通信协议的选择上,MODBUS协议由于其通用、成熟的第三方标准测试软件,为用户使用提供了诸多优势。因此,在开发新型电动机综合保护装置TH21-4M的过程中,采用RS-485串行通信方式和MODBUS通信协议,实现了多CPU之间的数据和控制命令的信息交互。为了增强串行通信的高效、协调性,笔者在通信机制的软硬件结构上采取了很多措施,并取得了很好的效果。在调试系统通信阶段,使用了各CPU模块先与MODBUS标准测试软件通信,之后再互相联调的方法,大大提高了协同开发的效率。实践证明,该设计思想简化了系统的结构,大大提高了装置的运行效率和可靠性。本文将结合TH21-4M的设计思路,从硬件设计和软件规划两方面,介绍如何利用MODBUS通信协议,实现多CPU结构的协同开发。
1 TH21-4M电动机综合保护装置的特点
TH21-4M电动机综合保护装置综合保护功能以外,兼有测量、远动和通信的功能;大屏幕的汉字液晶显示,可以实现友好的人机界面;利用CAN总线,与监控主机进行通信,从而构成分级分散式的变电站综合自动化系统的子系统。
在设计上,由于装置需要实现多任务,为了优化系统功能,采用了多CPU的系统结构。其中一个CPU负责定时采样脉冲发送;主CPU模块负责数据处理、电量计算、故障判断和开关操作;而板模块上CPU负责人机交互,并实现与主保护模块和监控主机的通信任务。各个CPU模块有明确的任务分工,研制时也容易实现多人协同开发。在整个构成中,串行通信沟通了主CPU和面板CPU,使人机交互成为可能,因而点有重要的地位。建立合理的通信机制则是串行通信部分的核心的所在,它决定着通信的协调性和系统开发后期调试的效率。
2 通信机制介绍
2.1 通信机制硬件设计原理
本系统通信机制的提出以高效、可靠为目的。RS-485为半双工结构,现场中比全双工往往更接近于实用,在此采用只有2条信号线的最简型连接。系统接口电路图由图1所示。主保护模块上的80C196单片机输出的TTL逻辑电平通过光电隔离后,由MAX485芯片转换为RS-495电平,再由面板模块上的MAX485芯片转换为TTL逻辑电平,由80C31单片机读取;以之亦然。在80C196单片机一侧,使用并行输入输出口2(IO_PORT2)的一位P2.7对MAX输入使能端RE、输出使能端DE进行控制。由图1可知,当P2.7输出高电平时,RE使能,单片机一侧接收数据;当P2.7输出低电平时,DE使能,单片机一侧发送数据。这样,避免了盲目发送造成的数据叠加丢失现象,通信质量高,通信速度也能得到保证。
2.2 通信协议介绍
为了保证保护装置中两个模块之间能够正确地传递数据,必须有一套关于信息传输的模式、数据格式和内容等的规定,即规约[1]或通信协议。虽然保护装置内部的通信相对简单,两具模块之间传递的数据也不是很多,但是自定义内部通信协议的弊端是很明显的。首先,自定义通信协议很难在时序、任务的协调上配合得很好,数据传送的可靠性也难以保证;首次,由于没有现成的较成熟的调试软件,主CPU模块基本是黑匣子,系统联调时的困难较多且难以克服。因此,采用了当前流行的MODBUS通信协议,并结合本装置的特点加以简化,从而实现了模块间的通信,事实证明效果很好。
MODBUS的通信方式为主从方式[2]。主方首先向从方发送通信请求指令,从方根据请求指令中的功能码向主方发回数据。每个从方都有自己独立的地址。主方所发的请求帧和从方所发的应答帧都是以从方地址开头的。从方只读发给自己的指令,对以其他从方地址开头的报文不作应答。这种一问一答的通信模式,大大提高了通信的正确率。但对于微机保护来说,该主从方式也存在着弊端,即当保护主模块进行保护动作后,无法立刻向上位机传送故障信息,只能由上位机不断向保护主模块询问保护是否动作,若有,则再进一步要求具体故障信息。
MODBUS有RTU(Remote Terminal Unit)和ASCII两种传送方式。为了保证较高的通信速度,采用了RTU方式,数据字节无奇偶校验位,加上起始、终止位后字节长度为10bit,数据间隔在24bit以内,采用循环冗余检验方式对报文进行校验。
MODBUS典型的报文格式如下:
一个通信报文的具体内容取决于该指令字符串的功能码,MODBUS中定义的标准功能码如表1所示。
评论