网络变量(NV,Network Variable)是LonTalk协议提出的一个全新的概念。一个节点的网络变量从网络的观点定义了它的输入和输出,同时允许在分布式应用中共享数据。网络变量可以是单个的数据项,如温度、开关值或执行器的设定,也可以是数据结构或数组,其长度最多可达到31个字节。每一个网络变量都有其数据类型,可以在应用程序中定义。
对于基于Neuron芯片的节点,可以定义62个网络变量;而对于采用MIP结构的系统,最多可以定义4096个网络变量。网络变量通过LonTalk报文进行传播,由于报文的传送是透明的,因而不需要在应用程序中使用显式的指令来发送或接收更新后的网络变量。网络变量大大简化了使多个厂家的产品可互操作的LonWorks应用程序的设计过程,并且特别适合以信息为基础而不是以指令为基础的控制系统的设计。
当在开关节点程序中说明网络变量时,考虑该节点对其写的值可以通过网络传播到所有的目标节点,因而将其说明为输出网络变量,命名为nv_swith。在灯节点程序中,考虑到该节点的网络变量是由网络自动更新的,因而将其说明为输入网络变量,命名为nv_lamp。可见,开关节点的任务是:当开关的实际状态发生变化时,向网络上相应的节点发送新的开关状态,因此该网络变量用于传播开关的状态。而灯节点的任务是:当从网络上接收到新的灯状态后,根据新的灯状态控制应用的1/O硬件打开或关闭电灯,因而该网络变量被用作灯节点的输入。由上所述,网络变量使节点间的数据传递只需通过各个网络变量的绑定便可完成。通过网络变量把网络通信设计简化为参数设计,既节省了大量的工作量,又提高了通信的可靠性。