1 概述
在工程机械的控制系统中,计算机技术、网络通讯技术的应用日趋广泛。CAN 总线由于其数据传输高可靠性和高实时性的特点,已经成为工业现场数据传输方式的事实标准之一,现已被广泛应用于汽车、工业控制、智能楼宇、煤矿设备等各个行业的数据通讯。CAN 总线采用短帧报文结构,实时性好,并具有完善的数据校验、错误处理以及检错机制,此外CAN 总线节点在严重错误下会自动脱离总线,对总线通讯没有影响[1]。CAN 总线网络中,数据收发、硬件检错均由CAN 控制器硬件完成,大大增强了CAN 总线网络的抗电磁干扰能力,因此非常适用于对实时性、安全性要求十分严格的机械控制网络。
SNMP 作为TCP/IP 协议族的一个子协议,是IEITF 研究小组提出的网络管理解决方案之一,它作为一种简洁而流行的网络管理协议在工业界获得了广泛的应用。SNMP 网络管理模型中的重要组成部分包括:网络管理协议、管理端(Manager)、代理(Agent )和管理信息库(MIB)。其管理的基本思想是,通过管理端与代理之间的相互合作,以分布方式执行网络管理活动[2]。管理端负责管理网络中各种资源和设备,采用轮询(polling )或手动方式向远程的代理发送Get(读取)和Set(设置)请求命令,以获取信息或实施控制。代理驻留在设备上,负责设备的实际管理和控制,响应和执行管理端的管理命令,并且返回应答信息。MIB 存放被管对象资源的所有信息,管理端通过代理来读取和设置MIB 文件中的变量值,以实现对被管理设备的监控。每个网络设备上的MIB 又由代理负责维护。SNMP 最大的优点是协议简洁,可扩展性强,只要将新的MIB 装载在管理软件上就可以实现对新的终端的控制与访问。
起重力矩限制系统是起重机械运行中重要的安全保障装置,其核心在于对规定动作执行的精确度,这不仅有赖于传感器和执行器的精度,还有赖于数据采集信号和命令的执行速度。比如起落杆的左右转动角度信号,通过数据采集模块将信号标准化,主控工控机接收到该信号后和预先设定的参数做比较,并根据偏差指挥左转或右转开关动作,并最终到位。传统的起重力矩控制系统采用基于RS485 的信号传输,其通讯波特率仅为57.6Kbps ,系统稳定性差,电动机和其他大功率设备常常影响系统的正常运行。而采用CAN 总线传输信号则不仅提高系统的抗电磁干扰能力,而且可使通讯波特率大大提高。基于SNMP 协议的远程通信,传输距离不受限制,这相对于其他工业控制总线有不可比拟的优势。本文提出的方案结合应用CAN 总线和SNMP 协议的优点,构建远程起重力矩监控系统,现场数据传输速率可高达500Kbps ,并具有硬件自动校验和错误自动重发功能。该方案可以保障可靠、实时的数据传输和命令执行,保障起重机械的安全运行。
2 系统硬件结构与特点
在起重机工作现场,通过CAN 总线实现对各传感器信号的采集以及对输出装置的控制,具有抗干扰能力强、可靠性高、实时响应性好,线缆少易敷设、成本低等优点。现场工控机与远程监控计算机之间的通信采用Internet 作为媒介,使用基于SNMP 协议的远程传输,进一步拓展了CAN 总线的优势。
现场起重机工作的角度、长度、压力等信号由各类传感器采集,输入iCAN 数据采集模块,经过CAN 总线传给现场工控机,并存储在驻留工控机内的MIB 文件中,供运行在远程监控计算机中的管理端软件查询调用。同时,各开关的状态变量也存储在该MIB 文件中,根据管理端发来的设置值变更成新值,再经由现场CAN 总线网络传递给输出控制模块以控制各开关的状态,达到起重力矩远程监控的目的。系统结构如图1 所示。
其中,iCAN-4017 AI 功能模块具有8 路模拟量输入通道,符合CAN2.0B 协议规范,用于采集传感器的输入信号,将输入信号经多路开关、AD 转换后经光耦隔离模块,通过CAN 总线通讯将输入的模拟量信号传送给现场工控机[3]。iCAN-2404 继电器功能模块有4 路具有自保持功能的继电器输出通道,它在工作时,工控机通过CAN 总线将输出的继电器控制数据传送给该模块,模块通过光电隔离后输出驱动继电器,实现对上升、下降、左转、右转开关的控制。
3 系统软件工作原理及实现
系统的软件主要分为两部分,其一是为了提取和设置CANbus 现场总线中的据,其二是基于SNMP 协议实现数据的远程通信。
3.1 提取和设置现场总线中的数据
为了对传感器数据进行处理,实时获取系统工作状态,并对各执行器进行相应的控制,我们利用iCAN 模块附带的函数库在VC++开发平台下编写了相应的程序来通过各iCAN 模块采集传感器的信号,控制各开关的状态。iCAN 主站函数库以动态链接库(DLL)的形式提供,内部封装了iCAN 协议,屏蔽访问控制细节,提供对现场总线iCAN 网络中设备访问的接口[3]。通过调用此函数库,可以使PC-CAN 主站卡和iCAN 从站模块进行通讯,完成工控机与现场总线上各节点设备之间的信息交换。
3.2 基于SNMP 协议的通信实现
为了基于SNMP 协议在远程监控计算机与现场工控机之间进行通信,需要开发两部分的程序,即管理端程序和代理程序。管理端程序运行在远程监控计算机中,代理程序驻留在与现场CAN 总线相连的工控机上,代理中还包括管理信息库MIB,MIB 存储被管理对象的信息,包括角度、压力数据,各开关的开闭状态等。管理端以轮询方式向远程的代理发送Get(读取)和Set(设置)请求命令,以获取角度、长度和压力信息或实施开关控制。代理将根据请求的内容从本地 MIB 中提取所需信息,并以响应报文方式将结果回送给管理端。具体地,它一方面不断地检查本地的状态,更新MIB 库中的变量值;另一方面,循环侦听管理端的请求报文,并作出相应的响应,读取或修改 MIB 中的变量值,将结果返回给管理端。通信交互过程如图2 所示[4] 。
图2 管理端与代理的通信交互过程