核心提示:LonWorks网络技术作为一种典型的控制网络,其互操作性的实现独具特色。网络变量是LonWorks网络技术专有的特征,了解网络变量是如何定义、如何应用的对掌握LON控制网络技术至关重要。
关键词:LonWorks,网络变量,LON节点,LonWorks产品,网络管理工具,报文诊断,以太网适配器,LonTalk协议,现场总线
一、概述
LON控制网络的互操作性体现在多个方面,网络变量即是其中的一个重要方面。使用网络变量是LonWorks网络节点间通讯的最简单、最常用、最直接的方法。
网络变量通过提供节点相互之间明确的网络接口而极大地提高了节点产品的适应性,不同产品可以应用于同一个系统。网络变量使得系统的组态编程和节点的安装运行非常方便,并且能有效地节省用户程序存储空间,还可以将用户从通讯程序的编写中解放出来,专用于具体的应用。目前LonWorks应用在多数情况下均使用网络变量。
二、LonWorks网络变量定义
LonWorks现场总线提出了节点连接的“对象”概念,即网络变量(NV-Network Variable)。一个网络变量即是节点的一个对象,LonWorks网络节点之间的联系主要是通过网络变量的联系实现的。
每个LonWorks节点可以定义62至4096个网络变量。网络变量可以定义为输出或者输入类型。当输出网络变量被节点应用赋值后,LonTalk协议将此修改后的新值自动加上地址信息,构成隐式报文,透明地传递到与之共享数据的其它节点(赋值给节点上的输入网络变量),所以网络变量又称隐式消息。节点利用网络变量进行隐式通讯时,报文的实际建造和发送发生在后台,它包含3个层次的软件:应用层、网络层和介质访问控制层(MAC)。这些软件层与LonTalk协议相对应,并且由Neuron芯片上不同的处理器处理。
当一个节点向一个输出网络变量赋值时,实际上是应用程序向网络变量写入一个新值,然后调度程序构建一个网络变量报文并传送到网络层,网络层将地址信息加入该报文再传送至MAC层。MAC层将更复杂的信息加入此报文,并通过物理通信通道发送该报文。接收节点接收到这个报文后,首先由MAC层使该报文生效,然后网络层检查包含在报文中的地址信息,看地址是否匹配。若匹配则将网络变量信息传给调度,再由调度程序允许应用程序使用新值;若地址不匹配则摈弃此报文。
三、LonWorks网络变量的绑定方式
LonWorks节点网络层和MAC层软件存于LonWorks固件中,对于用户而言是隐型的,节点间的数据通信可以理解为应用层数据的通信。用户应用程序无须考虑发送和接收问题,网络变量的传递不经过应用层,用户所要做的仅仅是使用网络变量绑定器连接需要共享数据的节点。各个应用节点可以独立定义,然后通过简单地连接或者断开已存在的某些连接,构成新的LonWorks应用。这使得开发LonWorks网络应用非常简单,同时节省开发周期。
网络变量可以是整数、布尔数或字符串等,用户可以完全自由地在应用程序中定义各种类型的网络变量。只有数据类型相同的网络变量之间才能建立输入和输出的连接。为增加网络的互操作性,LonTalk协议预先定义了标准网络变量(SNVT)。目前已经定义的标准网络变量有200种以上,覆盖了各种应用领域,用户应尽量选用标准网络变量以利于互操作。
网络变量的连接由网管工具的绑定器来实现。该绑定器可以是LonBuilder网管工具中的一部分,也可以是LonMaker安装工具或其它网络管理工具的一部分。绑定器首先辨别节点输入、输出网络变量的类型,然后找到具有共享网络变量的所有节点,再对这些节点的相应网络变量的网络变量配置表及地址表进行修改,即确定信息流的正确流向,从而完成网络变量的绑定。
四、LonWorks网络管理工具的应用
设计网络管理工具的软硬件架构,不仅需要考虑基本的功能需求,还应易于实现且费用低廉。一般计算机与LonWorks网络的连接可以通过多种途径实现:ISA卡、PCI卡、PC卡(PCMCIA卡)、RS232串行口、RS485串行口、USB口、以太网口等。
以太网通讯速率高,LON网络以太网适配器在工业测控网络中应用前景广阔。LON控制网络以太网适配器作为网络管理工具,一般仅在网络需要配置时、配置需要改变时、或者节点发生故障时,才与网络进行通讯。在系统正常工作之后,网管工具可以从系统中摘除,而不影响系统的运行及性能。
LON网络RS232适配器、LON网络RS485适配器、LON网络USB适配器等网管工具,同样能完成网管工具的所有功能。主机通过串口发送指令到适配器,触发其网管内核的相应网管功能,然后由适配器将网管报文发送至LonWorks网络;从LonWorks网络返回的信息,再由适配器通过串口传回主机。
五、LonWorks网络管理与报文诊断
LonWorks网络管理工具中的网管内核利用网络管理与报文诊断实现。LonTalk协议预先定义了47种网络管理及诊断消息类型,能够实现完善的网络管理与诊断服务,用于节点的安装配置、软件的下载及网络的诊断等。利用这些消息报文,可以较为容易地开发出适用于中小系统的LonWorks网络管理软件,实现诸如搜索与查询网络节点、查询设置节点状态、查询设置节点地址表信息及网络变量配置表信息、查询设置节点域地址、查询节点的网络变量值、绑定网络变量等各项网络管理功能。
利用网络管理和报文诊断实现的网络管理诊断工具,不仅易于开发,节省开发时间和成本,并且能较好地融合不同生产厂商的不同产品。这些网络管理与诊断报文的接收过程无需经过节点应用层,响应报文的构建同样在网络层实现。这一方面提高了报文响应速度,另一方面使得不同厂商产品融汇于一个系统时,能够对其进行统一管理。不管节点产品的具体应用代码和应用领域,只要是LonWorks节点,都能响应网络管理和诊断报文。
网络管理和诊断报文的传输服务可以是请求/响应模式,对于无需返回数据的报文,也可使用确认、非确认或重发服务。
构造网络变量的监视器时用到的网管报文主要是网络变量取出(Network Variable Fetch)管理报文。而实现网络变量绑定器则需要更新网络变量配置(Update Net Variable Config)和更新地址(Update Address)网络管理报文。
六、网络变量绑定器的实现方式
网络变量绑定器的内核构建主要是利用更新网络变量配置(Update Net Variable Contig)和更新地址(Update Address)这两种网络管理报文。
上层软件需要一个用于维护网络上节点信息的数据库LM—MDB。其中的网络变量连接表(nvlkinfo)包括了网络变量连接使用的所有信息:网络变量连接索引、名称、节点地址、网络变量索引、网络变量选择器、地址表索引、地址类型、组大小、网络变量域地址等基本信息。
网络变量的连接定义为一个输出网络变量与一个或多个输入网络变量的集合。一个网络变量在nvlkinfo表中占据一个记录单元,记录字段描述了该网络变量的详尽信息。连接成功后,该次连接的所有网络变量信息追加人nvlkinfo表。连接前需要进行约束关系检查,即检查nvlkinfo表中的网络变量是否与新连接的网络变量存在连接冲突。如果存在连接冲突则报告错误并终止网络变量的绑定过程。
节点间网络变量的绑定过程即是网络变量配置表和地址表信息的设置过程。网络变量配置表主要设置网络变量选择器的值,以及网络变量优先级、方向、使用的服务类型、是否是自绑定网络变量、是否需要认证、使用的地址表索引等。地址表主要设置地址类型、组大小、节点ID或组成员ID、节点子网或组ID、各种定时器值及重发次数等。这些信息的确定需要结合nvlkinfo表进行,以免发生选择器重复等错误。
七、如何实现对网络变量的监视
LonWorks节点的固定只读数据结构(read-0nly-data)中有一个单元nv-fixed,是nv-fixed-strnct类型指针。该指针指向节点第一个网络变量固定结构,此结构包括网络变量字节长度及网络变量在内存中的地址信息。用户可以通过此地址间接得到网络变量的数值。但更简单直接的方法是:用户使用网络变量存取报文(Network Variable Fetch)读取网络上任何一个节点的任何网络变量。
所有LonWorks节点均有一个外部接口文件(XIF文件)。XIF文件中明确了节点网络变量及显式报文标签的所有信息。对于网络变量,这些信息包括名称、索引、数组大小、是否可绑定、方向、服务类型、认证、优先级、数据类型、元素数目及各元素的详细信息等。通过此信息可以对取回的网络变量字节数组进行转换,从而得到网络变量的具体工程值。
除使用网络管理报文实现网络变量监视器外,用户还可以通过网络变量类型报文实现此功能,前提是用户需要明确该节点的网络变量配置表中的网络变量选择器值,这种方法的使用需要更多的了解神经元芯片的低层知识。