基于ICS SNMP完成SNMP协议的UPS数据采集
电脑二维码识别毋娟
【摘 要】基于工矿企业UPS的使用和维护现状,提出了一种利用网络进行监控和维护的设想,以解决维护中巡检不及时和对人力物力大量消耗的状况.为此深入研究了SNMP协议,在对相关的技术原理和实现方法进行详细剖析的基础上,完成了对网络监控系统的需求分析和模块设计.最后基于ICS开发组件完成了系统的开发,实现了MIB浏览器进行MIB文件的装载与解析,基于SNMP协议的UPS通道及变量组态,通过SNMP轮询操作及Trap侦听与解析完成对UPS监控数据的采集.
【期刊名称】《安徽冶金科技职业学院学报》
【年(卷),期】2016(026)004
【总页数】5页(P34-38)
【关键词】UPS数据采集;SNMP协议;ICS组件
【作 者】毋娟
【作者单位】安徽马钢技师学院 安徽马鞍山 243041
【正文语种】中 文
【中图分类】TP311.138
马钢公司在各个重要生产线的电气设备、自动化控制系统及数据中心都安装部署了UPS,这些UPS投入使用时间大多数在2003年至2007年间,目前已进入了故障频发期。因此迫切需要建立一个UPS监测和管理的网络平台,通过信息化的手段对分布式UPS进行运行数据采集,对运行状态进行判断和隐患预报,及时有效的避免由于UPS的突发故障而影响生产或造成设备事故。
采用SNMP协议(简单网络管理协议)的网络管理卡的出现,使UPS通过网络管理卡(SNMP代理)接入网络就可以成为网络上的一个结点,实现正真意义上的UPS网络化。SNMP不仅解决了网络的接入问题,而且不同UPS均提供了符合规范的MIB(管理信息库)文件,监控系统的数据采集开发得到大大简化。本文仅涉及如何在WindowS环境下开发基于SNMP的UP
S网络管理程序,不涉及SNMP代理开发方面的内容。
1.1 SNMP
如何申请出国留学SNMP是目前使用最为广泛的网络管理协议,是由一系列相关标准组成的,这些标准在RFC文档中定义。SNMP体系框架包含三个组成部分:SNMP实体,包括SNMP管理者和SNMP代理;SNMP协议,用于在两个实体间传输管理信息的通信协议;解决管理信息如何表示和描述的MIB和规定MIB书写规范的SMI(管理信息结构)。
SNMPv1只定义了5种操作,SNMP管理者使用GetRequest从拥有SNMP代理的网络设备中查询一个或多个对象。使用GetNextRequest则是请求下一个对象。使用SetRequest可以对设备中的参数进行远程配置和控制设备的行为。SNMP代理以GetResponse消息响应Get/GetNext/Set-Request操作。Trap是由代理发出的,可以向管理者发送网络设备重启、连接关闭,设备通信中断或其它异常事件消息。Trap的扩展机制,使设备生产商能为产品提供更丰富的Trap支持。
贵阳三中每种操作都有对应的PDU(协议数据单元),PDU是指在分层网络结构中,为实现某个协议,各层对等实体间交换信息的数据单元。PDU被封装在SNMP报文(消息)中传送。
韩国旅游注意事项
描写心理活动的词语在MIB中描述的管理信息称为被管理对象。每个对象都有其唯一的标识符OID(对象标识符)。MIB使用树型结构来管理对象。厂商或者个人可以定义私有的MIB,来描述自己设备特有的管理信息。每台支持SNMP的网络设备,必须提供相应的MIB文件。依据这些MIB文件管理系统才能确定被管理设备中哪些信息能通过OID进行查询或设置。
1.2 开发工具ICS
在Delphi开发环境下,目前有许多支持SNMP功能的第三方开发包,较有影响力的是Synapse、Indy和ICS。使用这些开发包,可以大大简化WindowS环境下的SNMP编程工作。
ICS(Internet Component Suite)是Overbyte公司推出的为Delphi和 C++Builder开发者提供的网络开发套件。包含了原生的sockets、TCP、UDP协议及更高层次的FTP、 SMTP、 POP3、NNTP、HTTP等协议的支持。
ICS采用非阻塞模式(异步模式),可以在单一的线程中同时处理上百个连接。ICS组件提供了大量的事件来控制程序的流向,在分配了事件句柄后,只要等待事件发生就行了。本文
的对象不会超过50个结点/连接,完全可以在一个线程中处理,因此ICS是非常合适的SNMP应用的开发工具。ICS在提供了实现SNMP协议的3个类TSNMPMib、 TSNMPRec与TSnmpCli。
染发剂排名TSNMPMib类仅有三个属性。OID:表示被管理对象的标识;Value: OID所指对象的数值;ValueType:数值的数据类型。
TSNMPRec类属性中最为重要的是SNMPMibList,一个容纳多个OID/值对的查询队列,其成员的数据类型为TSNMPMib。在TSNMPRec中由EncodeBuf方法负责Get/GetNext的编码,DecodeBuf方法能同时处理SNMPv1和v2c两种Trap。由MIBAdd、MIBDelete完成对查询队列中OID/值对的添加与删除,即变量绑定工作;由MIBGet从队列中获取指定OID对象的值。
TSNMPCli是完成SNMP客户端开发的类。TSNMPCli类的属性Query负责存储将要查询的对象的OID/值对队列;属性Reply负责存储接收到的应答中对象的OID/值队列,两者成员都是TSNMPRec类型。TSNMPCli的SendTo方法执行Get操作,查询对象可由Query属性指定,可以进行批量查询;Get方法执行Get操作,查询对象由OID属性指定,一次只查询
一个对象;GetNext方法执行GetNext操作,查询起点由其OID参数指定。TSNMPCli事件OnRequestDone:查询完成后触发的事件。
2.1 轮询(Polling)
查询操作流程,如下图:
开始查询之前必须经过组态,组态是构建PDU的必须过程,也是进行管理的一种手段。组态操作主要借助GUI来完成,操作的顺序为:添加驱动,每种驱动对应一个MIB文件;添加UPS设备,指定代理的IP地址、本地监听端口、超时检测、数据采集频率等;建立分组,可以对要查询的对象进行分组管理,如输入信号编入一组,电池信号编为一组等;添加变量(被管理对象),包括变量名和实例ID(可以直接从MIB浏览器中拷贝粘贴)。组态信息通过TreeView和ListView显示,组态数据全部由后台组态数据库进行维护。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论