【摘 要】本文介绍了一种基于modbus总线的配电控制软件系统,重点介绍了其通信协议和通信软件的设计方法。
【关键词】modbus总线;智能控制;modbus协议
智能配电控制改变了传统配电点对点的工作模式,基于modbus现场总线的智能配电控制系统的主要特点是开放性好,可多点通信,运行可靠,易维护,提升了对低压智能元件的保护能力。为达到系统的稳定可靠,必须保证系统通信畅通,因此系统软件设计的合理性显得尤为重要。
1 系统结构设计
系统的结构如图1所示。系统采用半双工主从通信方式,系统通过modbus总线协议将主机与多个从机组网在一起,主机可以读取从机的报告并命令从机动作。因pc机自带的是rs232串行口,为方便电平匹配,需要通过rs232/485转接卡实现系统组网。因利用modbus总线协议组网有crc校验纠错功能,可以提升系统的稳定可靠性。
图1 系统结构图
总线的软件实现主要由上位机和下位通信两部分组成。上位机作为服务器端具有控制的主动权,而下位机负责根据上位机的指令进行相应的动作。系统上位机主要完成数据管理、远端控制器管理,以及系统通信管理等功能。上位机的软件设计包括组态界面的开发与实现、串口通信和moudbus协议实现三部分。
2 modbus总线实现
2.1 协议格式
modbus总线有ascii和rtu两种传输模式,本文采用rtu传输模式。协议采用二进制代码编码格式,常用波特率为19200 bps,采用半双工通信方式,每个字符由11位组成,含1位起始位、8位数据位、2位停止位,字符的发送顺序为高位在前低位在后,帧结束标志为至少3.5个字符间隔时间,帧校验方式采用crc校验,一个消息帧一般由起始位、设备地址、功能码、数据、crc校验、结束符按相应格式组成。
2.2 sci通信程序
2.2.1 sci中断发送子程序(scia_txint_isr)
本子程序用中断的形式对发送缓存器内的数据进行发送,每发送一个字节中断一次,直到一帧发送完成为止。如图2所示为本子程序流程图。
2.2.2 sci中断接收子程序(scia_rxint_isr)
图2 sci中断发送子程序流程图
本子程序用中断的形式接收数据帧,在接收过程中,可能会伴随一系列的错处,如溢出错、校验错、帧错等一些接收单个字节引起的通信出错,同时包括moudbus接收的一些帧过滤及错误判断功能,如字符时间、地址及帧内时序错等判断,以保证接收到有效的数据帧。如图3所示为本子程序流程图,详细说明如下:
(1)通信错误判断。包括奇偶校验错(moudbus不使用)、超时溢出错、帧出错、间断检测错、接收器错误等通信错误判断,主要是为了出错后能及时做出响应,保证接下去的通信保持正常,在发现通信错误后,在每次中断返回时,清出错标志。
(2)正常接收判断。当正在进行帧内接收(scia_rxflag = l_false)并且1.5和3.5字符时间都未到,说可以进行帧内数据接收,对帧内数据的接收过程包括接收到的字节放缓存单元。重新启动定时器,对字符时间进行计数。
(3)数据帧出错处理。当正在进行帧内数据接收,但字符时间超过1.5字符时间,说明出现帧内时序错,进行错误帧数据接收,接收过程基本与正常接收一致,只是多了一个置时序错表示。
(4)帧起始接收判断。当允许新数据帧接收,并且字符时间超过3.5个字符时间,则进行起始字节接收,由于协议规定,帧的起始字节是地址,要对其进行判断,若与自己的地址相符,说明帧是发给自己的,可以进行正常接受。
图3 sci中断接收子程序流程图
3 通信软件设计
图4 上位机通信软流程图
3.1 上位机通信软件设计
上位机modbus协议的软件实现,首先主设备对串口进行初始化,然后对设备层的各个站点进行轮询,以0.5s为一个周期,发送运行参数消息帧后等待那个从设备的响应,如果超时进行下一个,并且实时判断从设备的响应消息是否正确,无论帧错误还是响应超时都将产生一个错误,并在实时数据库系统中显示并记录下来。调试时在连续三轮对同一站点轮询都出错时,此站点将被屏蔽,直到调试人员来重新调整。第一次读取协议规定的所有参数,以后如果整个系统都正常,既没有调整参数也没过载时,上位机将以0.5s为周期发送运行参数消息帧一直轮询。相应的流程图如图4所示:
3.2 从设备通信软件设
计
从设备在上电时就对串口进行了初始化,采用中断的方式实时检测串口事件,一旦接收到消息,就会产生相应的中断,接收到完整的消息帧后根据modbus协议对消息帧进行解析,首先判断地址是否相符,如果不符合就不回应主设备。如果符合就对该消息进行校验,包括crc校验或是否超时,一旦错误就发送响应的错误消息帧返回主设备,正确则解析该消息帧并根据要求回应相应的参数。相应的流程图如图5所示:
图5 从机通信软件流程图
4 结论
基基于modbus协议的智能配电控制系统运行稳定可靠,简单经济,既提高了配电保护水平,也提高了管理的效率及系统稳定性,对区域性的智能配电发展有较好的推广和借鉴意义。
【参考文献】
[1]于志军.基于rs-485总线的智能低压配电系统设计[j].智能建筑与城市信息,2008,134(1).
[2]丁恩杰,编.监控系统与现场总线[m].北京:中国矿业大学出版社,2003.
[3]胡平平,王东兴,王晶杰.modbus协议在无线监控系统中的应用[j].电气自动化,2006,28(1):56-59.
[4]徐涛,闫科,赵景林.基于modbus协议的串行接口实现与dcs通讯[j].工业控制计算机,2002,15(3).
[责任编辑:曹明明]