基于CAN总线的数据采集人机界面设计
摘 要:本文利用CAN总线技术构成网络,运用VB语言设计出了可视性较强的数据采集人机界面,实现了智能表数据(包括模拟量数据和开关量数据)的采集和超限报警功能。
关键词:CAN总线、人机界面、VB
Abstract:The thesis introduced the design of the Date Acquisition Human-computer Interface using VB based on CAN Bus. It realized the function that intelligence meter read the analog and digital value, and alarmed when the value went beyond the limit.
Key Words:CAN Bus、Human-computer Interface、VB
0 引言
目前在铁路机车内,模拟表盘大量存在,它给铁路运输的安全管理造成了相当大的不便。使用模拟表盘有以下缺点:第一,没有数据存储功能,如果发生事故,就很难得到事故发生时的确切信息;第二,需要大量布线、安装不便。如果在原模拟系统中添加设备,则需要重新布线;第三,不能利用成熟的基于数字信号的现代信息处理技术。对火车机车监控系统而言,数据测量和传输的快速性、准确性、可靠性、存储性、通讯的灵活性都是至关重要的。有必要将机车内的模拟表数字化和智能化,在此基础上利用现场总线技术构成测控网络,完成对机车内重要数据及时的采集、传输、存储、显示、报警。
本铁路机车数据平台采用了CAN总线技术。选用CAN总线是基于可靠性方面的考虑。CAN总线最初广泛用在汽车内部的电子监控上。由于火花塞产生的高频干扰和发动机产生的机械震动都比较强,而CAN总线能在这种工作中可靠的工作,说明其具有很强的抗干扰能力。该机车数据平台中的智能模块采用了89C51单片机,其通讯部分使用了CAN控制器SJA1000。CAN总线通信控制器中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括零位的插入和删除、数据块编码、循环冗余检验、优先级判别等项工作。CAN协议的一个特点是废除了传统的栈地址编码,而代之以对通信数据块进行编码。采用这种方法的优点是可使网络内的节点个数理论上不受限制,数据块的标识码可由11位(按CAN技术规范2.0A)或29位(按CAN技术规范2.0B)二进制数组成,因此可以定义2的11次方或2的29次方个不同的数据块。这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据传送的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC效验并可提供相应的错误处理和重发功能,保证了数据通信的可靠性。
1 机车数据平台使用说明
1.1原理
机车数据平台实际上是一台分布式计算机数据采集系统,其中采用了先进的现场总线技术。机车数据平台是将微处理器置入传统的测量控制仪表,使他们各自都具有了数字计算和数据通讯能力(智能仪表),采用可进行简单连接的双绞线等作总线,把多个测量仪表连接成网络,并按公开、规范的通讯协议(CAN总线协议),在现场仪表和远程计算机之间,实现数据传输和信息交换。简而言之,它把单个分散的测量设备变成网络节点,已现场总线为纽带,把他们联系起来,共同完成自控任务的网络系统与控制系统。现场总线使自控系统与设备有了通讯能力,把它们连成网络系统,加入到信息网络的行列。
本机车数据平台采用CAN总线技术。CAN是控制局域网络(Control Area Network)的简称,最早由德国BOSCH公司推出,用于汽车内部测量与执行部件间的数据通讯。众所周知,现代汽车越来越多的采用电子控制装置。由于这些控制须检测及交换大量的数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题,采用CAN总线上述问题得到了很好的解决。由于CAN总线本身的特点,其应用范围已不在局限于汽车工业,而向过程工业、机械工业、纺织工业、农用机械、机器人、数控机床、医疗器械及传感器领域发展。
1.2功能
1每秒一次采集各智能表的数据和各开关量的状态。智能表包括电压表、电流表、压力表和速度表等;开关量包括继电器接触器按钮的通断、信号灯的明灭、各种开关和接点的闭合等。
2设定各智能表的上报警限、下报警限和偏差报警限,并在各智能表超出报警限时发出报警信息。
1.3性能指标
1可容纳54个智能表和8块开关量采集卡(每块16个开关量)。
2智能表输入有隔离,隔离电压5000伏;开关量输入也有隔离,隔离电压1500伏。
3智能表接受75mv、10v和110v交直流输入(按用户要求)。
4智能表测量精度2%。
5电源:输入:70——130V直流/150W
输出:5V/8A 24V/4A
1.4智能仪表功能
1保留了原指针模拟表的功能,即接受一个模拟量输入,并用指针显示该模拟量的数值,包括电压、电流、转速、温度和压力等。
2把输入的模拟量转化为相应的数字量,隔离后通过CAN总线发送给数据采集站,发送的数据中包括报警(上超限、下超限,偏差超限)信息。
3接受来自监控报警器的设定信息,包括上超限设定、下超限设定,偏差超限设定。
1.5开关量采集卡的功能、协议与设定
116路独立的光电隔离开关量输入。
2用来检测开关、继电器和电磁阀等的通断,指示灯的明灭。
3每秒钟一次将16路开关量状态读入,而后通过CAN总线发送给数据采集站。
系统能容纳8块开关量采集卡,总共能检测到16*8=128个开关量状态。每块采集卡需要设定一个独一无二的ID号,范围限定在55到62。ID号通过开关量采集卡上的跳线ID设定。ID号按二进制编码,跳线短接为0,反之为1。
1.6监控报警器的功能、校准智能表以及报警限的设定
1.6.1功能
1设定智能表上超限、下超限和偏差超限的量值,并将这些量通过CAN总线发送给智能表和数据采集站。
2校准智能表。
3接受来自数据采集站的报警信息,并显示报警信息和通过继电器触电输出报警信息。
1.6.2校准智能表
1压校准键,使进入校准状态。自动显示接受到的01号智能表的数值(中间值,满量程=1000)。
2压切换键,而后用键盘输入要校准的智能表的ID号,压确认键,则显示该智能表的中间值。
3将该表与用标准表实际测量到的值比较,确定误差。
4调节智能表电路板上的电位器VR2消除误差。
1.6.3报警限的设定
1在校准状态下压切换键,而后输入要设定的智能表的ID号,压确定键后,则显示该智能表的中间值。
2压切换键,再压切换键,则光标切换到第二行,第二行显示的数值为存储的上超限值。
3修改上超限值,而后压确认键,则修改后的上超限值被存储并通过总线发送给智能表和数据采集站。
4压切换键,将光标切换到第三行,第三行显示的数值为存储的下超限值。
5修改下超限值,而后压确认键,则修改后的下超限值被存储并通过总线发送给智能表和数据采集站。
6压切换键,将光标切换到第四行,第四行显示的数值为存储的偏差超限值。
7修改偏差超限值,而后压确认键,则修改后的偏差超限值被存储并通过总线发送给只能表和数据采集站。
2界面说明及流程图
我们这里用五块智能表和一组开关量来说明本课题的主要功能:
1每秒一次采集各智能表的数据和各开关量的状态。智能表包括电压表、电流表和压力表等。
2设定各智能表的上报警限、下报警限和偏差报警限,并在各智能表超出报警限时发出报警信息。
流程图如图1所示:
图1 数据采集界面总流程图
在这里,将模拟量进行如表1设置:
表1模拟量设置
数据采集界面运行图如图2所示:
图2 数据采集界面
由图2看出,模拟量数据转换为数字量数据已经相当精确;1#、2#、5#数据均在下限~上限之间,均正常运行;11#、13#分别超过上限、低于下限,均发出报警警告。
3 结束语
利用CAN总线技术构成网络,利用VB语言设计数据采集人机界面,实现了显示智能表读数、开关量数据并在超限时报警的功能。运行(采集模块6个)后表明,性能稳定,采集数据的波动幅度小于1%,数据准确性令人满意,充分体现了CAN总线的优越性。
CAN总线数据采集人机界面不仅可以应用在铁路系统中,也广泛应用在其它场合。目前笔者正在开发机房电源监测系统,通过CAN总线数据采集,监测人员可以远离现场而得到需要的数据。总之,机车数据平台人机界面的开发,为其它监测系统的应用奠定了基础。
参考文献:
[1]现场总线技术及基本应用. 阳宪惠. 清华大学出版社. 1999
[2]现场总线与控制系统. 赵天洪. 电力系统自动化,24(13),2000
[3]现场总线控制系统的现状与未来. 魏彬彬. 交通与计算机,2001(19)
[4]Bosch.CAN specification,Version2.0. 1991. Robert Bosch GmbH