APP下载

基于LonWorks水厂全分布式管控一体化网络前端智能节点的配置与实现

2012-01-15王艳君陈建铎

电子设计工程 2012年16期
关键词:水厂底层处理器

王艳君,陈建铎

(西安欧亚学院 信息工程学院,陕西 西安 710065)

在 《基于LonWorks技术的水厂全分布管控一体化网络研究》一文中,介绍了使用LonWorks现场总线技术构建水厂全分布式管控一体化网络的基本思想和方法。这里,将进一步说明该系统中前端智能节点的组成原理与实现。众所周知,在构建水厂全分布式管控一体化网络时必不可少地用到大量的数据采集与控制设备,这就需要相应的节点控制器与之连接,接收前端检测设备采集到的数据,上传到上位监控机,或者根据上层监控机下发的命令控制前端执行机构的工作。由于该系统是依据全分布式管控一体化的原则构建的,因此这类节点要能设置ID号,支持ISO/OSI的7层协议,除了与底层控制网连接,还能与企业信息网连接[1-2]。上层授权用户可通过ID号(或IP地址)直接访问底层的每一个节点,与之对话,了解或展示前端测控设备的工作状况,包括数据参数和工作状态图,或者对前端测控设备进行调控。

1 前端测控设备

在水厂的生产流程中,要控制从进水、沉淀、过滤、反冲洗、添加氯化铝、除污、排泥到供(出)水的全过程;要进行液位、温度、浊度、压力、流速/流量、余氯含量、泥土界面等参数的检测。涉及到的控制有电机变频调速、加氯与投药泵计量、电磁阀门开启等。采用的变送器和检测设备,有液位变送器、压力变送器、流量变送器、温度变送器、泥土界面仪和余氯分析仪等;执行机构有电磁阀、继电器、调频电机等。

1)数据采集与执行设备

系统中所用数据采集与执行设备有温度变送器,测量范围0~300℃;HP-420型压力变送器,测量/显示和传送压力和液位,量程0~1 Mpa,精度 0.05 Mpa;HD1000超声波液位计,测量蓄水池液位,且有数字显示,测量范围0~5 m,满足RS232/485标准;YL-1型余氯分析仪,检测水中的余氯含量,测量范围0~2.5 mg/L,分辨率0.01 mg/L;KVQJ电动调节阀,调节输水管道的通断状态,通过智能节点的模拟通道输出0~40 mA电流信号调节其开启度;浊度测量仪,测量/显示和传送清水池中的浊度,借以调整絮凝池的投药量,测量范围0.001~100 NTU, 测量精度±2%NTU, 分辨率 0.000 1~0.001 NTU;漏氯报警仪,对泄漏的氯气进行测量/显示和报警,其传感器安装在现场,通过电缆与值班室内显示(报警)器连接,报警范围0~10ppm;电磁流量计,测量管道流量,按口径测量精度为±0.5%或±1.0%,流速范围 0.2~11 m/s(可选),符合 RS485标准;PH测量仪,在线测量水样中的PH值,用以调控加氯与投药量,测量范围0~14 PH,测量精度±0.1%;超声波液位差计,测量/显示和传送格栅两边液位差,控制齿爬式格栅去污机运转,清除进水池的漂浮物,测量范围0~6 m,测量精度为±2%量程(或2 mm);变频电机,在变频器的控制下实现正转、反转、启/停、加速与减速;泥土界面仪,检测沉砂池和絮凝池中的泥砂位置,并给出泥砂分布图谱,计算出泥砂层的高度或厚度,测量范围0~5 m,测量精度0.1 m,分辨率[3]0.03 m。

2)变频控制器

变频控制器,用于变频电机调速,选用的是富士FRENIC5000G/P11S型变频器,一种低噪音、高性能、多功能变频器,变频范围0~20 000 Hz,具有模拟/数字量I/O端口,可接收4~20 mADC电流或0~10 VDC电压、脉冲电平和开关量,输出开关量和调频电压。该变频器可采用两种变频工作方式,一种是通过自带的液晶触摸控制面板,键入工作模式和控制命令,使变频器处于自动运行方式;另一种是经RS485端口与PC机连接,再由系统控制程序或组态软件创建人机对话界面和通讯协议,使变频器处于受控运行方式,本系统采用的是后一种方式[3]。

以上设备与智能节点连接,在智能节点和上位机的控制下对水厂中的全部生产流程实施监控。

2 智能节点

随着嵌入式技术的发展,可用于数据采集与控制的CPU芯片很多。但是,要作为全分布式管控一体化网络系统中的节点,相比之下,Echelon公司推出的Neuron Chip可谓其中的佼佼者之一。比如MC143120/143150芯片,有3个CPU,分别是MAC处理器、网络处理器和应用处理器;另有1 kB/2 kB RAM、10 kB ROM、0.5 kB/1 kB E2ROM和 2个16位计数器,支持ISO/OSI协议。其中MAC处理器主要用于外部介质访问控制,实现ISO/OSI 7层协议的第1~2层功能;网络处理器实现ISO/OSI 7层协议的第3~6层功能,处理网络变量、地址认证、后台诊断、软件定时、网络管理及路由等项工作;应用处理器位于ISO/OSI协议的最上层,执行用户的应用程序,为用户操作服务。3个CPU之间通过内部设置的网络缓冲器和应用缓冲器进行数据传送。

在外特性方面,MC143120/143150具有11个I/O口、8位双向数据线和16位地址线,支持TTL电平,支持并/串行数据输入输出,可外接64 kB外部存储器。在11个I/O口中包括RS-232/485串行通信口、定时器/计数器、位输入输出等。传送数据可以是位,也可以是字节,还可同时进行CRC校验。在开发设计时,内部存储器RAM/ROM用以驻留系统程序和用户开发的应用程序,比如操作系统、LonTalk通信协议、IO数据库、网络配置、地址表和一个全世界唯一的48位标识码,即神经元ID号。也正是这ID号,是构建全分布式网络体系的基础。这种节点,除了连接到底层控制网上之外,还可直接连接到企业Internet/Intranet上。作为底层节点使用,其示意如图1所示[2]。

图1 智能节点示意图Fig.1 Intelligent node schemes

除此之外,Echelon公司还给出了配套的智能收发器、节点开发工具NodeBuilder和通信协议LonTalk。通过可编程收发器,Neuron Chip可与多种通信介质连接,比如双绞线、同轴电缆、光纤,无线和红外线等。并且针对不同的通信接口,可配置为三种不同的接口模式:单端、差分和专用模式,以适应不同的编码方式和波特率。在ROM中包含LonTalk协议的固化程序,这使得Neuron芯片能保证在每一个装置(节点)中以公共协议通信,解决了兼容性问题,使LonWorks装置(节点)在同一网络上的连接简单快捷[4]。

LonWorks节点是同物理上与之连接的 I/O设备交互作用并在网上使用LonTalk协议通信的一类对象,有两种类型。在第一种类型中,Neuron芯片是唯一的处理器,充当LonWorks的网络节点。适合于 I/O设备简单,处理任务不复杂的系统,称之为基于 Neuron芯片的节点 (Neuron Chiphosted);在第二种类型中,Neuro芯片只作为通信处理器,充当LonWorks的网络接口,节点应用程序由主处理器来执行,这类节点适合于对处理能力、输入/输出能力要求较高的系统,称之为基于主机的节点(host-based),主处理器可以是其他微控制器或者 PC 机等[3-4]。

3 智能节点的配置

为了便于用户使用,Echelon公司在推出Neuron Chip以后,又推出了以上述Neuron Chip为核心用于现场底层的节点控制器,也称为回路控制器。其中HLC-1是最基本的一种,满足LonWorks技术对于底层节点的全部要求,不仅可以执行协议,实现数据采集与处理,完成底层控制,而且还提供通信介质接口,以公用的协议进行通信。对于外部,具有4通道 0~5 V (4~20 mA)12 位 A/D 转换的模拟量输入、2 通道 0~5 V(4~20 mA)12位D/A转换的模拟量输出,2通道数字量(触点或电平)输入及2通道开关量输出,还能组合2通道PID调节器。安装完成后,HLC-1回路控制器不仅可以实时接收上位机的控制命令,实现对底层执行机构的控制,还可以完全脱离上层管理系统,自行完成底层数据采集、数据处理及设备运行的调控。而且,HLC-1采用的是模块化结构,多个HLC-1可组合在一起,构成一个大的模块,以连接更多的前端测控设备[3]。

在某水厂的设计方案中,底层配置了4个Lonworks智能节点,即回路控制器HLC-1。其中2个节点由组合模块组成,各含2个8路模拟量输入模块,用以对格栅絮凝沉淀池的20个液位计输入的模拟信号进行转换、处理、记录和汇总。另外2个节点的模拟/数字输入模块分别用于进水口和出水口数据监测。在进水口测量流量、浊度、入水管压力;在清水池检测余氯含量、浊度、PH值、水位;在出水管口检测出水流量和压力。其结构如图2所示[3]。

图2 底层智能节点配置Fig.2 Bottom intelligent node configuration

每一个节点配置FTT-10A收发器,以提高通信能力。该收发器支持自由拓扑结构(包括星型、总线型和环型等),通信速率为78 kbps;其中总线型拓扑结构的最长通信距离是2 700 m,可满足一般小型水厂的需求。当超出最大通信距离后,可在总线两端使用中继器,以延长通信距离[2]。

由智能节点向上,连接网络适配器,这里选用PCLTA-10,可插入PC机的扩展槽上,既能与所有和总线连接的现场智能节点进行对等双向通信,又能快速与PC机进行数据交换,实现复杂的数据处理和高级监控功能,在PC机与现场智能节点之间起到“上传下达”的作用。同样,配置FTT-10A收发器,提高通信能力,支持自由拓扑结构,最多可连接128个智能节点,这里仅连接了4个。

4 智能节点编程

在整个系统中,除了LonWorks提供的系统开发程序之外,大量的应用程序须结合现场需求来编写。由于C语言提供位操作指令,因此是一种非常适合于编写与硬件相关的控制程序的语言。为了便于用户使用,Echelon公司在推出Neuron Chip和系统开发程序之外,还提供了Neuron C编程语言,一种基于ANSI C而为神经元芯片开发设计的编程语言[5]。对ANSI C进行了扩展,允许程序员以自然的方式描述事件驱动任务,可控制任务执行的优先级,可将 I/O对象直接映射到处理器的 I/O端口,通过定义网络变量把受控对象联系起来,还可为用户提供一种实现节点之间数据共享的简单方法,支持显式报文传送,还可直接对LonTalk协议的底层设备进行访问,便于设计LonWorks系统应用程序[5]。

由于LonWorks系统程序中包含NodeBuilder,因此对智能节点编程可在NodeBuilder环境下进行。步骤包括:1)定义IO对象;2)定义定时器对象;3)定义网络变量;4)定义显式报文;5)定义任务;6)编写自定义函数等[4]。

其中网络变量和显式报文是节点之间交换信息的载体,是在LonWorks网络上传送的数据包。节点之间的联系主要是通过网络变量来实现的,因此使用网络变量可实现LonMark的互操作性,方便编程和安装。而Neuron C编程的主要对象就是网络变量NV(Network Variables),又称隐式消息,是节点上的一个对象。其类型可以是整型、布尔型或字符串型数据,用户可在应用程序中自由定义。显式报文也称为显式消息,其中数据长度最大228个字节,而网络变量最多31个字节。而任务,是对事件的反应,即当某事件发生时应用程序执行何种操作。另外,还可以在Neuron C程序中由用户编写自定义函数,以完成一些常用功能。和标准C不同,Neuron C必须要写出函数原形,也可以将一些常用的函数放到头文件中,以供程序调用。

由于在进行模拟量数据采集和控制的时候,通过串行口和神经元芯片进行通信,因此选择Neurowire IO对象,即同步全双工串行通信模式IO对象。对11个IO引脚的定义为:IO_0到 IO_7是片选信号,IO_8是时钟,IO_9是数据出,IO_10是数据入。就是说,该I/O对象使用全同步串行数据格式传送数据,数据被移入的同时也进行数据移出。Neurowire I/O对象还可被配置为主/从模式。主模式,时钟信号输出;从模式,时钟信号是输入。在主模式下,引脚IO_0~IO_7中的一个或多个可被用作片选信号,在从模式下,引脚IO_0~IO_7中的一个可被设计成超时引脚[6]。

当使用具有不同比特率的多路复用串行对象或Neurowire I/O对象时,必须使用编译器指令“#pragma enable_multiple_baud”, 且在所用I/O函数 (如 io_in( )和io_out())之前。其中,对Neurowire输入/输出对象进行显式配制的Neuron C语句如下[5-6]:

IO_8 neurowire master|slave[select (pin-nbr)][timeout(pin-nbr)][kbaud(const-expr)]

[clockedge(+|-)]io-object-name;

作用是:IO_8:指定Neurowire输入/输出对象使用引脚IO_8~IO_10,其中 IO_8时钟信号,IO_9串行数据输出,IO_10串行数据输入;

Master:指定Neuron芯片在引脚IO_8上提供时钟,输出;

Slave:指定Neuron芯片检测引脚IO_8上的时钟,输入;

Select (pin-nbr): 为 Neurowire master指定片选引脚,为IO_0~IO_7之一;

Timeout(pin-nbr):为 Neurowire slave 指定一个可选择的超时信号引脚,其范围是IO_0~IO_7;使用超时信号引脚,当neuron芯片等待时钟的上升沿或下降沿时,将检查该引脚的逻辑电平,如果检测到逻辑电平为“1”,停止传输;

Kbaud (const-expr): 为 Neurowire master指定比特率,const-expr可为 1 kb/s、10 kb/s或 20 kb/s; 对于 10 MHz的Neuron芯片输入时钟,缺省值为20 kb/s;

Clockedge(+|-):指定数据触发时钟信号极性,clockedge(+)为上升沿, clockedge(-)为下降沿;

io-object-name:由用户为该I/O对象指定的名字。

将系统中所用设备和IO对象进行定义,并对所用节点进行编程后即可连网使用[7]。例如利用智能节点采集开关量信号来控制指示灯,来实现对数字量的输入和输出控制。其中数字量输入程序如下:

IO_0 output bit iolamp=1; //定义指示灯状态控制端口为IO_0

IO_6 input bit ioswitch; //定义开关端口为IO_6

when(io_changes(ioswitch)) //判断开关端口状态变化

{if(!input_value)//开关端口状态变化,指示灯状态改变

{switch::nvoValue.state=!switch::nvoValue.state;

switch::nvoValue.value=switch::nvoValue.state ? (short)200:0;}//送功能模块显示

}

5 结 论

文中分析了LonWorks智能节点的组成原理、编程和使用,又介绍了用其构成水厂全分布式管控一体化网络的底层控制网所用设备和组网方法。这对于任何设计自动化生产线的工程项目,都有一定的参考价值。

[1]Echelon.LonMaker for Windows Release 3.1 User’s Guide[Z].USA:Echelon Corporation,2002.

[2]陈建铎.基于LonWorks/iLon100现场总线控制网络的结构与实现[J].探测与控制学报,2006(1):59-63.CHEN Jian-duo.Structure and implementation of fieldsus control network on LonWorks[J].Journal of Detection&Control,2006(1):59-63.

[3]李言武,陈建铎.基于LonWorks的水厂自动化管控系统[J].现代电子技术,2006(8):95-97.LI Yan-wu,CHEN Jian-duo.The waterworks’ automatic management and control system based on LonWorks[J].Modern Electronics Technique,2006(8):95-97.

[4]NodeBuilder User’s Guide[Z].USA:Echelon Corporation,2002.[5]Neuron C Programmer’s Guide[Z].USA:Echelon Corporation,2002.

[6]Neuron C Reference Guide[Z].USA:Echelon Corporation,2002.

[7]程启文,陈建铎.Lon网络中上位机与智能节点通信方式的研究与实现[J].微电子学与计算机,2005(7):168-170.CHENG Qi-wen,CHEN Jian-duo. Research and implementation of communication between supervisor and intelligent nodes in LonWoeks Network[J].Microelectronics&Computer,2005(7):168-170.

猜你喜欢

水厂底层处理器
某水厂源水铁锰超标处理试验研究
航天企业提升采购能力的底层逻辑
水厂液晶幕墙系统建立和应用
超滤膜在再生水厂应用工程实践
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器
回到现实底层与悲悯情怀
中国底层电影研究探略
略论“底层”
东京砧水厂制水工艺初探及借鉴