-1-网管通讯协议1协议流程网管信息分为实时信息和普通信息两类。对于实时信息,如果主机采用询问的方式,可以一次获取一个整网的的所有实时信息;普通信息则采用主从问答的方式处理,即上位机向下位机发送一条查询或者配置的命令,每一条命令通常只对网络中的一端设备,相对应的下位机收到以后,针对该命令进行相应的处理并将结果返回给上位机。对于网络中的地址自动生成命令,则是按全网同时执行的,上位机只要发起命令,等配置完成时,由上位机查询完成其他的地址收集工作.2协议格式上位机下发的命令按其管理方式可分为两种,即本地命令和网络命令。本地命令仅用于管理本地网管口相连的单端设备,对于局端和远端都适用;网络命令只有在上位机直接与局端设备相连时才有意义,即只有局端才能执行上位机下发的网络命令,远端会返回命令无法识别的错误码。下位机收到的有效命令全有命令回应帧,若上位机发送命令后在约定的时间内没有回应,则下位机有可能没有收到数据或收帧错,用户应重发命令。当用户对下位机的配置项改变时,上位机应根据下位机的命令响应帧确定下位机是否接受配置的修改。协议全部采用ASCII字符。在下的协议中,所有的本地命令中,地址码不起件用,通常是发”0000”(只有对于全网实时信息发送本地命令时,地址要求与局端的设备地址一致,通常情况,查询全网实时信息使用网络命令,并使用查询网络的局端设备的地址);在使用网络命令时,所有地址有效.错误代码说明:1——网管通道接收缓冲区溢出。2——命令帧校验和错误3——命令帧内容字符的数量不匹配4——未知的命令类型5——命令参数错误6——因命令执行的对象没有响应导致命令失败局端设备的地址默认参数为:MasterNetID=0;SubNetID=0;DeviceAddrID=1。在以下的命令中,CR代表回车符(十进制ASCII码13),LF代表换行符(十进制ASCII码10),代表空格,多个空格要出现多个这样字符,且字符间要有字字符分隔。本协议采用异或的校验方式。校验码产生过程如下:从帧头后的第一个字符开始,依-2-次与其后的字符进行异或运算,运算结果转换成ASCII码添加到命令帧的结尾。协议中所用的参数凡涉及到有效范围的,由命令发起端保证其可靠性。协议中凡涉及到对下位机进行参数设置的,由命令发起端负责对设置结果进行检验,一般流程为:发起设置命令——〉收到响应命令——〉发起查询命令——〉收到响应命令——〉检查结果。为了查阅方便,以下命令格式中用下划线“”分隔命令码,实际传送的命令不包含下划线“”。&——上位机下发命令的帧头。@——上位机下发本地命令的帧头。*——上位机下发网络命令的帧头。&——下位机上发命令的帧头。vv——校验。CR——帧尾。3基本命令集3.1t命令:查询设备的局远端特性/命令格式:本地名令:&@txxxxvvCR网络命令:&*txxxxvvCR回应:&txxxxC[R]nmvvCR命令解释:本命令用于查询设备的局远端特性。xxxx代表地址号。C[R]:如果设备为局端,则返回C,否则返回R。n:如果设备的EEPROM0是好的,则返回T,否则返回F。m:如果设备的EEPROM1是好的,则返回T,否则返回F。附加说明:无。测试例子:局端:发送:&@t000034接收:&t0001C36远端:发送:&@t000034接收:&t0002R24注:上面例子中的最后两位是校验,下回回应的后两位也是校验,且后都有CR没有显示.在下的测试例子中,都有同此处.-3-3.2I命令:清空设备地址/命令格式:网络命令:I9999vvCR命令解释:本命令为广播命令,用于清空网络上所有设备的地址。附加说明:本命令只在局端执行有效。且没有回应;为确保此命令能安全执行,通常在间隔300ms左右时,连续执行3-5次.3.3g命令:查询网络配置信息/命令格式:本地名令:&@gxxxxvvCR网络命令:没有回应:&gxxxxT[F]vvCR命令解释:本命令用于查询设备构成网络时,其地址信息的配置情况。xxxx代表地址号。T[F]:如果当前网络所有设备的地址信息配置已经完成,则返回T,否则返回F。附加说明:1.本命令只在局端执行有意义;若对远端执行该命令,则无响应。2.执行该命令时,最好用的“I”命令将全网设备的地址配置信息清零,然后用“j”命令启动地址自动配置,最后再用本命令查询网络配置情况。3.如果全网已配置完成,执行本命令后会返回T;此时,执行清楚地址命令,再执行本命令后会返回F;再执行地址配置过程,在过程中执行本命令后会返回F;上述过程若没有执行址清楚命令,也可以执行地址生成过程,在全网地址配置完成的情况下直接执行地址生成过程,在过程中,执行本命令后会返回T(True).4.此命令通常用于栓测地址生成过程是否完成.测试例子:局端:发送:&@g000027接收:&g0001F20或者&g0001T32远端:发送:&@g000027接收:无回应3.4j命令:地址配置/命令格式:本地名令:&@jxxxxpvvCR-4-网络命令:&*jxxxxpvvCR回应:&jxxxxpnnsvvCR命令解释:本命令用于配置设备的地址信息。p——参数:为“R”表示查询设备的地址配置信息:这里是除特殊字符及本命令中已用子命令以外的其他字符都可以为“c”表示清除地址配置信息,地址置为0;为“a”表示启动地址自动配置流程;为“k”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”0”保留,用于调试;为“m”表示设置MasterNetID,SubNetID及DeviceAddrID。这是在不用自动地址生成时使用,不推荐用户自已使用此方式.地址的组成格式,见下面的命令.(DeviceAddrID一般不设置)另外,回应中,nn是表示这个子网中的地址生成的的站数,包括局端站在内,回应中的s表示地址生成正在执行的过程,除刚发送时回应0外,其他回应0时表示地址生成过程已完成.附加说明:(1)当参数p=“a”或“m”时,仅当下位机为局端时才有意义;(2)当参数p=“c”时,通过局端发出网络命令可以将网络上的任一端设备的地址清空。本命令只能一次清除一端,这也是与I命令的区别.可以为网络命令(3)当参数p=“R”时,只适用于本地命令。(4)从局端启动地址配置到全网设备(最多30端)地址配置完成,大约需要10秒。3.5e命令:查询连接关系/命令格式:本地命令:&@exxxxvvCR网络命令:&*exxxxvvCR回应:&exxxxAaaaaAxBbbbbBxvvCR命令解释:本命令用于查询设备级连端口的连接关系。xxxx表示地址号,编码格式是以ASCII码表示的十六进制数据,有效值为0x0000-0xFFFF,这16位数据(bit15..bit0)分成3个位段,依次为MasterNetID:bit12..bit8;SubNetID:bit7...bit5;DeviceAddrID:bit4…bit0;aaaa和bbbb分别对应A向、B向端口所接设备的编址信息,数据格式同上。Ax和Bx无意义。附加说明:本地命令中的地址号xxxx可以为任意值,网络命令中的地址号xxxx为与查询的下位机地址信息,回应命令中的地址号xxxx为下位机实际的地址信息;如果网络中不存-5-在与网络命令中的地址号xxxx相对应的设备,则该网络命令无响应。测试例子:局端:发送:&@e000025接收:&e0001A0004B000261发送:&*e00014E接收:&e0001A0004B000261发送:&*e00034C接收:&e0001A0002B000463远端:发送:&@e000025接收:&e0000A0003B0001603.6Y命令:查询相邻局端设备的网络ID命令格式:本地名令:&@YxxxxvvCR回应:&YxxxxMSvvCR命令解释:本命令用于双局端构成环网时,通过一台局端查询另外一台局端的网络ID,包括主网ID(MaterNetID),子网ID(SubNetID)。如果当前查询的局端处于双局端构成的环网中,回应消息中的”MS”构成的8位数据分别对应如下。如果当前查询的局端只处于单局端构成的网络中时,回应消息中的”MS”构成的8位数据都是FF。附加说明:本命令只对局端有意义,主网ID(MaterNetID)和子网ID(SubNetID)不能同时为0。测试例子:3.7z命令:查询设备类型,软件版本,协议版本,设备序列号和设备MAC值/命令格式:本地名令:&@zxxxxvvCR网络命令:&*zxxxxvvCR回应:&zxxxxDDSSPP[ID11..ID0MAC11..MAC0]vvCR命令解释:本命令用于查询设备类型ID,软件版本和协议版本信息-6-DD——bit7…bit0,设备类型ID。0——设备为ESP620。SS——bit7…bit0,软件版本。PP——bit7…bit0,协议版本。ID11..ID0——如果设备类型为ESP322,则ID11..ID0共12个字符对应设备的序列号。MAC11..MAC0——如果设备类型为ESP322,则MAC11..MAC0共12个字符对应设备的MAC地址。附加说明:无。3.8%命令:设置设备序列号和设备MAC值命令格式:本地命令:&@%xxxxMW11110000WMID11..ID0MAC11..MAC0vvCR回应:&%xxxxMW11110000WMID11..ID0MAC11..MAC0vvCR命令解释:本命令用于设置设备序列号和设备MAC值。MW11110000WM:为设置的密码ID11..ID0——如果设备类型为ESP322,则ID11..ID0共12个字符对应设备的序列号。MAC11..MAC0——如果设备类型为ESP322,则MAC11..MAC0共12个字符对应设备的MAC地址。附加说明:该命令用于出厂配置,仅用于本地设置。3.9N命令:设置站名/命令格式:本地名令:&@NxxxxstringsvvCR网络命令:&*NxxxxstringsvvCR回应:&NxxxxstringsvvCR命令解释:本命令用于设置设备的站名。xxxx代表地址号。strings:设备的站名,最多15个字符。附加说明:设置时,本地命令回应时间最大1000ms网络命今回应时间最大3000ms。测试例子:局端:发送:&@N0000mmm11B接收:&N0000mmm15A远端:发送:&@N0000MW11110000WM57接收:&N0000MW11110000WM17-7-3.10n命令:查询站名/命令格式:本地名令:&@nxxxxvvCR网络命令:&*nxxxxvvCR回应:&nxxxxstringsvvCR命令解释:本命令用于查询设备的站名配置。xxxx代表地址号。strings:设备的站名,最多15个字符。附加说明:无。测试例子:局端:发送:&@n00002E接收:&n0001ABCDEFGHIJKLMNO2F远端:发送:&@n00002E6接收:&n0000ABCDEFGHIJKLMNO2E3.11o命令:查询用户接口Parameter0命令格式:本地名令:&@oxxxxvvCR网络命令:&*oxxxxvvCR回应:&oxxxxstringsvvCR命令解释:本命令用于查询设备的用户接口Parameter0,此用户接口可为用户提供一个传递串行信息的通道。xxxx代表地址号。strings:设备的用户接口Parameter0字符串,最多15个字符。附加说明:无。测试例子:局端:发送:&@o00002F接收:&o0001abcdefghijklmno0E远端:发送:&@o00002F接收:&o0000abcdefghijklmno0F3.12O命令:设置用户接口Parameter0命令格式:-8-本地名令:&@OxxxxstringsvvCR网络命令:&*OxxxxstringsvvCR回应:&OxxxxstringsvvCR命令解释:本命令用于设置设备的用户接口Parameter0,此用户接口可为用户提供一个传递串行信息的通道。xxxx代表地址号。st