1 引言
现场总线控制系统(FCS)是继直接数字控制(DDC)、集散控制系统(DCS)之后的一种新型的控制系统,是一种全开放、全数字、多点通信的底层控制网络,具有全分散性控的体系结构[1]。其显著特点是通过开放性总线把现场设备连接成网络,各智能设备能够完成自动控制和运行状态的自行诊断,并且能够通过总线实现设备之间的通信,从而简化了系统结构,提高了可靠性。 CAN(Controller Area Network)总线,又称控制器局域网,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线之一。传统的集散型控制系统(DCS)存在系统不开放、硬件投资大、布线复杂、维修不便的缺点,具有明显的局限性。本文给出了一种基于CAN总线的智能节点软硬件的设计方案,应用于潜水电机分布式监控系统中。
2 系统整体方案设计
图1 分布式监控系统总体结构
整个系统由监控计算机、PC-CAN适配卡、智能监控节点(n<110)、CAN总线网络组成,其系统结构如图1所示。分布在现场的监控节点可以独立对电机进行智能控制和保护;监控计算机可以通过CAN总线网和各个控制节点之间进行实时通信,从而实现潜水电泵机组的分散控制和集中监管。
监控系统中的控制节点由CAN控制器、CAN收发器和外围电路(如:光耦隔离、I2C、LED显示等)组成。监控计算机可以选用普通PC或工控机 IPC 。PC-CAN适配卡用来完成CAN总线和监控计算机之间的协议转换,可以选用PCI总线适配卡、ISA总线适配卡或RS232串行通信适配器。各个控制节点之间通过屏蔽双绞线互联构成CAN总线网络,总线两端连接120Ω的阻抗匹配电阻,用来提高系统的稳定性、增强系统的抗干扰能力。
3 监控节点的硬件设计
目前,市场上有两种CAN总线器件可以选择:一种是片内集成CAN的微控制器,如P8XC591/2、87C196CA/CB、MC68376等;另一种是独立的CAN控制器,如控制Philips公司的SJA1000、82C200、, Intel公司的82526、以及Microchip公司的 MCP2510等,但是独立的CAN控制芯片需要外接一个微处理器才能运行。本文设计中选用的是Philips公司的带有在片CAN控制器的 P87C591微型控制器,这样大大简化了节点的硬件电路设计,减少了程序的复杂程度,提高系统的可靠性。
3.1监控节点的构成
监控节点硬件电路设计上采用了模块化结构,由微控制器、CAN通信模块、传感器组件、数据采集模块、电机控制模块、LED显示模块、现场设置模块组成,其整体结构如图2所示。根据具体情况可以只选用其中的部分模块。例如:可以去掉显示模块和现场设置模块,利用监控计算机实现数据显示和参数设置的功能。在单机运行时,可以不使用CAN通信模块。
图2 监控节点结构框图
3.2监控节点的功能
监控节点各个组成部分的功能如下:
(1)传感器组件:用来检测潜水电机的运行状况,包括:温度传感器、电流互感器、液位传感器。分别用来检测电机三相定子的温度、三相主电流、和电泵腔内的水位,可以有效的监测潜水电机的过流、过热、缺相、短路、渗漏等异常现象。
(2)数据采集模块:将传感器采集到的模拟信号转变为数字信号并通过多路模拟开关送入微控制器,CPU得到电机定子温度、电流、液位信息做出相应的判断,并送至不同的子程序进行相应的处理。
(3)电机控制模块:CPU判断电机定子温度、电流、液位中的任一项值超出正常值范围时,都会通过SSR(过零触发型交流固态继电器)触发相应的异常处理电路,使电机得到保护。
(4)LED显示模块:采用基于I2C总线的显示技术,通过LED数码管实时显示电机运行过程中定子的温度和电流值。并可以在设置模式下显示待定置参数的当前值。当电机出现非正常停机时发光二极管可以指示出故障的类型,方便检查处理。
(5)CAN通信模块:CAN总线通信接口电路主要由P87C591的片内CAN驱动器SJA1000、6N137高速光隔、CAN收发器 PCA82C250组成。P87C591完成CAN协议的应用层功能,SJA1000完成物理层和数据链路层的功能。PCA82C250提供了对总线差动发送和接受数据的功能,有效的提高了总线的抗干扰能力,实现了保护总线、降低射频干扰等功能。6N137隔离控制电路和收发器电路,能够有效地抑制由总线引入的干扰,进一步提高了系统的可靠性。
(6)现场设置模块:采用基于8255的键盘和基于X25045的E2PROM,实现节点工作参数现场设定能。X25045存储报警电流、停机电流、报警温度、停机温度、节点地址、波特率等信息。这些参数都可以通过按键进行设置。除了节点地址外,其它的参数也可以通过监控计算机设置。
4 监控节点的软件设计
4.1软件设计的总体结构
与节点硬件设计相一致,软件设计也遵循模块化的设计原则,使控制软件具有易读、易扩展和易维护的优点。通过C51语言编写相应的软件模块实现上述监控节点的各种功能。软件的各功能模块之间通过入口和出口参数相互联系,组合灵活且方便,减少了调试时间,缩短了开发周期。监控节点的软件设计流程如图3所示。
图3 监控节点软件设计流程图
4.2监控节点通信程序设计
监控节点的通信采用CAN总线2.0A协议,通信模块的软件设计主要由初始化程序、发送程序、接收程序三部分组成。其中初始化程序是实现通信的关键,它主要用来完成CAN控制器工作方式的选择,即对P87C591中CAN控制器控制段中的寄存器进行设置,包括:总线定时寄存器和输出控制寄存器设置;接收验收滤波寄存器和滤波屏蔽寄存器设置;设置发送数据帧类型(标准帧或扩展帧)、标识符、数据长度。初始化过程是在CAN控制器复位模式下完成的,监控节点通信的初始化程序流程如图4所示。
图4 CAN初始化程序流程图
监控节点与CAN总线之间的数据交换是通过发送程序和接收程序实现的。发送程序流程如图5所示,从图5中可以看出系统的每个节点采用定时中断的方式主动向监控计算机发送数据。这是利用了CAN总线可以采用多主机方式通信的特点。由于实时监控功能是由各个控制节点完成,而监控计算机主要用来实现管理功能,所以采用了定时上传数据的方法,而没有实时上传所有传感器采集到的数据,从而减轻了总线负担。这也是分布式控制方法相对于集中控制方法的一个优点。图 6为接收程序流程图,接收缓冲区用来存放CAN总线上发来的数据,CPU读取数据后接收缓冲区将被清空,等待接收新的数据。
图5 发送程序流程图
图6 接收程序流程图
5 结束语
本文设计的基于CAN总线的分布式监控系统智能节点经过现场调试,可以对潜水电机运行过程中出现的过流、过热、短路、渗漏情况做出处理,对电机起到了保护作用;节点与上位计算机之间的数据通信稳定可靠;可以通过现场设置模块修改节点的参数。实验表明了节点的适用性和可靠性,开发过程中所提出的技术方案和实现方法可以在分布式监控系统及工业底层监控网络的现场智能节点设计中推广应用。
本文作者创新点: 设计了一种基于P87C591的智能监控节点,在软/硬件设计中均采用了模块化的结构,具有高度的灵活性和广泛的适用性。
参考文献:
[1] 阳宪惠. 现场总线技术及其应用[M]. 北京:清华大学出版社,1999.
[2] 饶运涛,邹继军,郑勇芸. 现场总线CAN原理与应用技术[M]. 北京:北京航空航天大学出版社,2003.
[3] 杨 飞,郑贵林. 基于CAN总线的监控系统设计[J],微计算机信息(嵌入式与SOC),2005年第21卷第7期:34-36
[4] 蒋建文,林 勇,韩江洪. CAN总线通信协议的分析和实现[J],计算机工程,2002年第2期:219-221
[5] 李 貌,秦霆镐,闫世晓. MCP2515在CAN总线系统智能节点的应用[J],微计算机信息(嵌入式与SOC),2005年第21卷第7期:37-39
[6] 冯 历,潘松峰,赵正德,张秀虹. 基于CAN总线测控网络系统研究[J],计算机测量与控制,2004年第2期:117-119