您现在的位置:首页 > 技术资料 | ![]() |
基于CAN总线的潜水电机智能监控系统设计
目前,国内外已有多家公司开发出针对个体潜水电机的智能电了保护装置,虽然可以达到保护电机的目的,但无法实现集中管理。因此,对潜水电机群的实时监控与统一管理的要求日益迫切。本文设计了基于CAN现场总线的潜水电机群分布式智能监控系统,可以对散布的潜水电机保护装置进行组网,实现潜水电机的智能化控制和网络化管理。 潜水电机智能监控系统总体方案设计 基于CAN现场总线的潜水电机分布式智能监控系统由监控计算机(内置PC-CAN适配卡)、智能节点、CAN总线网络组成,其系统的总体结构如图1所示。分布在现场的监控节点可以独立对电机进行智能控制和故障保护;监控计算机可以通过CAN总线网络和各个监控节点进行实时通信,从而实现潜水电机群的分布式控制和集中临管。
监控系统的硬件设计 由监控系统的整体结构和功能可知,该系统的硬件设计主要足CAN智能节点的设计。智能节点硬件电路设计采用了模块化结构,由MCU、CAN通信模块、信号采集模块、电机控制模块、状态显示模块、参数设置模块及串行通信接口组成,智能节点的整体结构如图2所示。根据具体情况可以只选用其中的部分模块,增加了监控装置的实用性和经济性。例如:可以去掉显示模块和现场设置模块,利用监控计算机实现数据显示和参数设置的功能。在单机运行时,可以不使用CAN通信模块。
1.CAN通信模块:CAN总线通信接口电路主要由CAN控制器SJA1000、6N137高速光隔、CAN收发器PCA82C250组成。SJA1000完全兼容CAN2.0协议,用来完成物理层和数据链路层的功能,可实现对通信数据的成帧处理,具有多主结构、总线访问优先权、硬件滤波等特点;PCA82C250提供了对CAN总线差动发送和接收数据的功能,有效地提高了总线的抗干扰能力,实现了保护总线、降低射频干扰等功能。为了进一步提高整个系统的可靠性和稳定性,在SJA1000和PCA82C250之间增加了光电隔离器件,并且采用了双电源,有效地抑制由总线引入的干扰。 2.信号采集模块:用来检测电机的运行状态,包括:铂电阻温度传感器、电流互感器、电极式液位传感器。分别用来检测电机三相定子的温度、三相主电流和电机腔内的水位,可以有效地监测潜水电机的过流、过热、缺相、短路、渗漏等异常现象。信号采集模块以12位精度的ADC和多路模拟开关为核心,将传感器采集到的模拟信号进行调理后转变为数字信号并送入微控制器。MCU得到检测信息后做出相应的判断,并送至不同的子程序进行相应的处理,如:把电机运行的温度、电流等信息通过通信程序发送给监控计算机;若出现电机内腔水位过低、温度过高、电流过大,则自动切断本节点的电机、发出声光报警信息,并把节点的停机信息通过CAN总线发送给监控计算机。 3.电机控制模块:MCU判断电机定子温度、电流、液位中的任一项值超出设定值范围时,都会通过SSR(固态继电器)触发相应的异常处理电路,使电机得到保护。 4.参数设置模块:报警电流、报警温度、停机电流、停机温度、节点地址、波特率等信息通过参数设置模块存储于基于X25045的E2PROM中,实现节点工作参数现场设定功能。除了节点地址外,其它的参数也可以通过监控计算机设置。 5.状态显示模块:采用基于I2C总线的显示技术,通过LED数码管实时显示电机运行过程中定子的温度和电流值。并可以在设置模式下显示待定参数的当前值。当电机出现非正常停机时,发光二极管可以指示出故障的类型,方便检查维护。 监控节点的硬件部分除了以上介绍的之外,还有电源电路和看门狗电路。电源电路提供所需隔离电源,用于提高节点的可靠性和安全性;看门狗电路主要保证系统运行的稳定性,在上电、掉电以及警戒情况下复位输出。 监控系统的软件设计 从整个监控系统的角度来看,该系统的软件设计主要分为两大部分:即监控计算机应用软件设计和现场智能节点软件设计。 监控计算机的软件设计 计算机监控软件主要分为用户应用层、数据分析处理层及硬件设备驱动层3个部分,其软件设计流程如图3所示。
监控节点的软件设计 潜水电机的现场控制与数据采集都是通过智能节点完成的,与节点的硬件设计相一致,智能监控节点的软件设计也遵循模块化的设计原则,使控制软件具有易读、易扩展和易维护的优点。通过C51语言编写相应的软件模块实现智能节点的各种功能。软件的各功能模块之间通过入口和出口参数相互联系,组合灵活方便,减少了调试时间,缩短了开发周期。 监控节点通信程序设计 智能监控节点的通信采用CAN总线2.0A协议,通信模块的软件设计主要由初始化子程序、报文接收子程序、报文发送子程序3部分组成。其中初始化子程序是实现通信的关键,它主要用来完成CAN控制器工作方式的选择,即对系统中的CAN控制器控制段中的寄存器进行设置。初始化过程是在CAN控制器复位模式下完成的。 智能节点与监控计算机之间的数据交换是通过发送程序和接收程序实现的。报文发送时只需将电机的状态数据送入SJA1000的发送缓冲区中,然后启动发送请求。监控节点采用定时中断的方式主动向监控计算机发送数据。这是利用了CAN总线可以采用多主机方式通信的特点。由于实时监控功能由各个控制节点完成,而监控计算机主要起到管理作用,所以采用了定时上传数据的方法,而没有实时上传所有传感器采集到的数据,从而减轻了总线负担。一个正在等待的报文会从存储器复制到发送缓冲器后,置位命令寄存器TR标志产生发送请求,发送过程由SJA1000独立完成。基于SJA1000的报文接收有两种方式:中断方式和查询方式。为了保证接收报文的准确性,选择实时性较高的中断方式。在中断方式下,如果SJA1000已接收一个报文,并且报文已通过验收滤波器并放入接收FIFO,那么会产生一个接收中断,通知微处理器有报文已经接收。接收缓冲区用来存放CAN总线上发来的数据,MCU读取数据后,接收缓冲区将被清空,等待接收新的数据。 结语 本文采用CAN现场总线设计的潜水电机分布式智能监控系统具有抗干扰能力强、网络化管理程度高、人机界面友好等特点。开发过程中所提出的技术方案和实现方法可以在类似的工业底层监控网络系统及分布式监控系统的设计中推广应用。
|