自主开发Excel数据采集系统用于LED显示屏分析
2015-06-05陈昊程亮
陈昊,程亮
(杭州华电下沙热电有限公司,杭州 310018)
自主开发Excel数据采集系统用于LED显示屏分析
陈昊,程亮
(杭州华电下沙热电有限公司,杭州 310018)
介绍了LED同步显示技术以及自主开发的使用Excel VBA与NT6000 DCS进行实时通信的数据采集系统,分析了具体实现过程。该技术用于电厂中央集控室LED显示屏,实现了多样化显示,而且运行稳定、可靠。
Excel;VBA;NT6000;LED显示屏;数据采集系统
0 引言
发电厂集控室工业参数发光二极管(LED)显示屏一般安装在集控室背景墙上端。通常的显示内容是若干重要的工业生产和设备运行参数、日历时钟等信息,有时也用来显示一些欢迎词、标语等,需要显示的所有工业参数均采集自分散控制系统(DCS)。
LED显示屏厂家一般会提供LED的驱动及配套显示程序,但因各家技术的差异及数据格式的不同,使得有的地方LED显示效果不理想。笔者所在单位因采用自主开发的Excel数据采集系统和厂商提供的同步显示卡配合,使得显示可以丰富多彩,同时保证了运行人员对重要参数的实时监控,本文主要介绍自主开发过程。
1 LED同步显示技术概述
LED显示屏是集光电子技术、微电子技术、计算机技术、视频技术为一体的高科技产品,它的发光部分由LED拼装组成,其特点是耗电量少、亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。
LED显示屏分为同步显示屏和异步显示屏。同步显示是指LED显示屏的显示内容能实时、同步地反映电脑显示器上的显示内容。异步显示是指计算机将编辑好的内容,通过通信程序发送到显示屏的接收卡内,接收卡(带存储器)将内容保存后,再按计算机编辑好的顺序、显示方式、停留时间等循环播放。
同步和异步2种方式,屏体表面完全相同,基本显示功能相同。二者的主要差别在于:异步显示屏平时无需连接计算机,显示屏有内置CPU,能掉电保存多幅画面,可脱离计算机独立运行;而同步显示屏则必须连接1台计算机才能工作。
为了让LED显示内容丰富多彩,决定使用同步显示方式。LED显示屏以至少30帧/s的更新速度映射后台控制电脑的部分图像,并具有多灰度的颜色显示能力,可充分展现多媒体效果。
2 采用Excel的目的
2.1 Excel的功能
微软公司Office软件的Excel组件,是一款功能强大的电子表格处理组件。它具有强大的图文排版功能,不仅可以设计出各种样式的表格,还可以自由插入图形,让显示的内容图文并茂,同时具有数据处理和VBA编程两大重要功能。本文着重说明使用VBA和NT6000进行通信并采集所需数据的方法。
2.2 VBA简介
VBA是Visual Basic的一种宏语言,是微软公司开发出来在其桌面应用程序中执行通用自动化(OLE)任务的编程语言,主要用来扩展Windows的应用程式功能,特别是Microsoft Office软件,也可以说是一种应用程式视觉化的Basic脚本。由于微软公司的VBA功能过于强大,以至于可以用来编写任何能够想到的程序,当然也包括数据采集功能。
通常的Excel表格中含有VBA程序,打开就会显示如图1所示的对话框。出现该对话框表示此文件中包含VBA代码,进入Excel后按ALT+F11键,就能切换到编写VBA的IDE中,进入编程环境后就可以自由编写想要的程序了。
2.3 MSComm控件
图1 对话框
VB6.0的MSComm通信控件提供了一系列标准通信命令接口,它允许建立串口连接,可以连接到其他通信设备(如Modem),还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工、事件驱动的、高效实用的通信程序。
本文将在Excel VBA中调用VB6.0的MSComm控件,从而使Excel也具有串口通信功能。
3 NT6000 DCS的通信功能
3.1 通信卡件KM621S/C
KM621S/C为 MODBUS主站通信模件,通过MODBUS总线与多种MODBUS从站设备通信。他有2个独立的通信通道,每个通道可连接4个MODBUS从站。
3.2 DPU组态的设计
组态逻辑如图2所示。作者把需要发送的模拟量点都连接到FMAO模块,该模块的作用是向外系统发送DCS数据,需要设置以下几个模块属性。
图2 组态逻辑图
(1)BusID:卡件实际安装的总线地址,一般设为1,2或3。
(2)Addr:卡件实际安装的支线及位置由2位数字表示,第1位是支线号,第2位是该支线下的卡件位置。
(3)Channel:虚拟的主站编号,一般只有1个就设置为1。
(4)SlaveID:现场从站的地址,本例通信的是台计算机,可以任意设置,本例设置为5。
(5)Offset:偏移值,如果每个模块8个浮点变量都用的话,每个模块顺序偏移量是32,那么第1个FMAO模块设置为0,第2个设置为32,第3个设置为64,以此类推。
(6)Number:接入变量的个数,本例都设为8。(7)DataType:传输数据的类型,本例设置为float32。
(8)ComType:数据的通信类型,默认为 CYCLE,表示循环IO通信;DIAG表示诊断数据通信;NON_CYCLE表示非循环数据通信。
3.3 KM621S的配置
KM621S配置使用科远公司的一款通信配置软件,配置方法如图3所示。在需要配置的端口点击鼠标右键,选择“添加数据块”就会出现一个对话框,里面的“Block名称”可以任意填写想要的字符,“功能码”选择“写多寄存器”,数据长度根据要传送的数据总和及配合组态情况来定。例如,本例使用了7个FMAO模块,每个模块32个字节,那么一共是224个字节,如果想传输开关量,可以自己规定好最后2个FMAO传输Int16的整数,并使用BTOW模块,该模块输入端可以接入16个开关量,输出是个16位的整数,就可以把BTOW的输出接入到FMAO的输入,这样,在接收端计算好数据位置就可以正确接收了。
图3 通信配置软件界面
4 通信测试
4.1 硬件的连接
在计算机的串口接入RS232转485的转换接头,然后把2根485的线接入KM621S的26,27端子,即完成了硬件接线。
4.2 通信数据包的截取与分析
通过在计算机上运行串口调试软件,取得了如图4所示的数据包。
通过对照几次发送的数据包及MODBUS RTU报文规范,其中第7个E0代表数据包长度,真正的报文数据解析要从第8个16进制开始,每4个一组往后解析,最后两位04 CC是校验码不需解析,但可用作通信数据的校对,在干扰比较大的场合对数据的准确度要求又比较高,可以加上校验码运算,以提高数据的准确度。
图4 数据包
4.3 IEEE754浮点数表示法的解析
IEEE754浮点数表示法有3种类型,分别是32位实数、64位实数及80位实数,常用的是32位实数。
(1)32位实数的分段。4个字节表示一个数,4个字节共32 bit,分段含义如下:第1位,符号位0代表正数,1代表负数;第2位到第9位,阶码-127-126;第10位到第32位,尾数<1的数。
最后可按公式计算出数据:(尾数+1)*2^e,如果最高位为1,则结果再乘以-1,变成负数。
(2)4字节转实数的VBA代码。
5 部分主要程序代码
5.1 数据表的设计
在Excel中建立data表(见表1),把测点名字和通信数据对齐,在其他显示表格中利用Excel单元格引用功能就能调用data表中的数据了,在调用时还可以输入格式化公式,例如在某个单元格中输入“=FIXED(data!B31,1,TRUE)&“r/m””,表示引用data表中B列31行的数据,并保留1位小数。另外,为了在LED上显示时间并和DCS保持一致,时间也是从DCS通信过来的。
表1 Excel中测点、测点名字和通信数据
5.2 控制窗口的设计
控制窗口界面设计如图5所示,MODBUS通信代码如下。
图5 控制窗口界面设计
数据响应事件:
6 制作画面
部分显示画面均由Excel排版完成,示范图如图6、图7所示。
图6 示范图A
图7 示范图B
7 结束语
自主开发的数据采集系统用于LED显示屏,不仅方便了运行人员监视机组运行的主重要参数,同时由于自主开发,掌握了系统原理及NT6000的通信方式,方便维护和升级,为以后与其他控制系统进行数据交换提供了有利的技术条件。目前,该系统已在杭州华电下沙热电有限公司正式投用近1年,运行稳定、可靠。
[1]罗刚君.Excel VBA程序开发自学宝典[M].北京:电子工业出版社,2009.
(本文责编:白银雷)
TM 621.6
:A
:1674-1951(2015)04-0032-04
陈昊(1980—)男,浙江杭州人,助理工程师,从事发电厂热控 DCS及附属控制系统管理方面的工作(E-mail:hzylf163@163.com)。
2014-09-09;
2015-02-28