《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 基于CANbus和SNMP的起重力矩监控系统
基于CANbus和SNMP的起重力矩监控系统
摘要: 在工程机械的控制系统中,计算机技术、网络通讯技术的应用日趋广泛。CAN 总线由于其数据传输高可靠性和高实时性的特点,已经成为工业现场数据传输方式的事实标准之一,现已被广泛应用于汽车、工业控制、智能楼宇、煤矿设备等各个行业的数据通讯。CAN 总线采用短帧报文结构,实时性好,并具有完善的数据校验、错误处理以及检错机制,此外CAN 总线节点在严重错误下会自动脱离总线,对总线通讯没有影响[1]。
Abstract:
Key words :
 

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 总线相连的工控机上,代理中还包括管理信息库MIBMIB 存储被管理对象的信息,包括角度、压力数据,各开关的开闭状态等。管理端以轮询方式向远程的代理发送Get(读取)和Set(设置)请求命令,以获取角度、长度和压力信息或实施开关控制。代理将根据请求的内容从本地 MIB 中提取所需信息,并以响应报文方式将结果回送给管理端。具体地,它一方面不断地检查本地的状态,更新MIB 库中的变量值;另一方面,循环侦听管理端的请求报文,并作出相应的响应,读取或修改 MIB 中的变量值,将结果返回给管理端。通信交互过程如图2 所示[4]

 

 

 

 2 管理端与代理的通信交互过程

1Get 操作

 

管理端向代理发送Get 请求,要求返回压力、角度等数据。代理接受请求后,对PDU 进行解析处理,并调用相应的子功能模块,从MIB 文件中读出压力角度长度等变量的值,然后代理调用编码模块,将这些数据打包成相应的PDU 发送给管理端作为对Get 请求的响应。管理端接收到相应数据后,将它们与预先设定的参考值作比较,根据实际值与设定值之间的偏差,判断起重力矩是否超过限制,并据此发出相应的开关控制命令。

2Set 操作

 

Set 请求的原理与Get 类似,不过是将某一新的值写给相应的变量,而不是读,从而实现对被管理设备的控制。在该系统中,管理端向代理发送Set 请求,以设置各开关的状态变量。代理接受请求后,向MIB 文件中写入各开关变量的新值,并通过现场的CAN 总线传递给输出控制模块来控制上升、下降、左转、右转开关的动作。

 

3.3 MIB 的编写

 

MIB 是有关被管理目标对象的数据库,其数据结构呈树形。本系统中的MIB 文件存储了现场传感器采集的各种信号以及开关的状态,通过读取和设置这些MIB 对象的值,管理端完成监测和控制。MIB 文件编写中最关键的一点是确定要定义的变量。在该系统的MIB 设计中定义的变量如表1 所示。

 

1 远程起重力矩监控系统MIB 变量表

 

 

MIB 变量名

 

含义

 

类型

 

DegreeValue

 

角度的实际值

 

 Integer

 

LengthValue

 

长度的实际值

 

 Integer

 

PressureValue

 

压力的实际值

 

 Integer

 

UpSwitch

 

上升开关状态

 

 Integer

 

DownSwitch

 

下降开关状态

 

 Integer

 

LeftSwitch

 

左转开关状态

 

 Integer

 

RightSwitch

 

右转开关状态

 

 Integer

 

 

 

3.4 代理与管理端程序的开发

 

采用AdventNet Agent Toolkit C Edition 工具包来开发代理程序,该工具包提供了一个广泛而完整的开发环境,并带有代理信息定义编辑器、编译器等一系列代理开发工具及测试工具,降低了代理开发的复杂性。所开发的代理仅占用极小的空间,却具有较高的性能,而且代理的扩展几乎不会影响到应用和设备的性能。在编写好MIB 文件后,依据Agent Toolkit C Edition 工具的开发流程编写代理程序,其主要功能是对MIB 文件进行管理,并实现对网络端口的侦听,SNMP 数据报的解码及编码,对管理端的请求进行处理,以及对硬件的管理。

 

VC++.NET 开发平台下利用NET-SNMP 开发包来编写管理端程序。NET-SNMP 开发包是目前最为流行的基于C++SNMP 协议开发包之一,开发包中的SNMP 协议模块为用户使用SNMP 协议来构建网络管理应用层软件提供了良好的协议通讯的基础,它提供了一系列的API 函数可供开发者使用。本系统的管理端程序运行在远程监控计算机上,与工作现场工控机上驻留的代理之间进行远程数据通信,主要完成Get Set 操作两项任务。

 

5 结论

 

CAN 总线因其自身的诸多优点适合于对实时性、可靠性、安全性要求十分严格的机械控制网络。SNMP 协议简洁,可扩展性强,基于SNMP 协议的网络传输以Internet 作为媒介,传输距离不受限制,可进一步拓展CAN 总线的优势。本文的创新点在于,结合这两种技术的优点,实现了基于CAN 总线和SNMP 协议的起重力矩远程监控系统,该方案可以保障可靠、实时的远程数据传输和命令执行,确保起重机械的安全运行。项目经济效益达20 万元。

此内容为AET网站原创,未经授权禁止转载。