红相Mk6E电能表Command Line通信协议.doc

上传人:公**** 文档编号:560072017 上传时间:2023-04-26 格式:DOC 页数:29 大小:127.51KB
返回 下载 相关 举报
红相Mk6E电能表Command Line通信协议.doc_第1页
第1页 / 共29页
红相Mk6E电能表Command Line通信协议.doc_第2页
第2页 / 共29页
红相Mk6E电能表Command Line通信协议.doc_第3页
第3页 / 共29页
红相Mk6E电能表Command Line通信协议.doc_第4页
第4页 / 共29页
红相Mk6E电能表Command Line通信协议.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《红相Mk6E电能表Command Line通信协议.doc》由会员分享,可在线阅读,更多相关《红相Mk6E电能表Command Line通信协议.doc(29页珍藏版)》请在金锄头文库上搜索。

1、红相Mk6E电能表Command Line通信协议Command Line 是红相Mk6E系列电能表与外部终端进行通信所用的协议。对于设计者,本规约提供了一整套与电能表直接通信的可行的方法。 Command Line为设计者提供详细读取红相MK6E系列电能表数据的方法。它是以命令行的格式发送一系列固定的指令。以下将详细表述了通过RS485或RS232通信口进行通信的方法。命令的结构所有命令均以字符“STX”开始,以字符“ETX”结束,并符合以下通用格式: 的内容是要被发送的命令信息是按CCITT标准定义的16位的CRC16多项校验码。该CRC是通过对整个信息进行计算的。(含“STX”,但不含“

2、CRC”本身及“ETX”字符,如果在之间没有命令,那么将不需要CRC校验) 电能表对发送过来的命令产生应答,应答命令格式如下所示: 的内容可能是: (16进制的“6”)-指令操作成功 (16进制的“18”)-CRC校验正确,但指令有误 或是含有数据的应答信息:、的内容都是以二进制发送,因此,一些特殊控制字符有可能出现在传输的数据中,该字符与发送的真正的起始和结束字符混淆。为了避免这样的问题,采用填充字符的方式处理。特殊控制字符由一个DLE(16进制的“10”)字符跟第六位置1的原字符组成,以双控制字符发送。在接收端,截下并除去所有的“DLE”字符,而对跟在“DLE”后面的字符的第六位清零。下述

3、字符以这种方式处理: (hex02) 发送为:(hex10)(hex42) (hex03) 发送为:(hex10)(hex43) (hex11) 发送为:(hex10)(hex51) (hex13) 发送为:(hex10)(hex53) (hex10) 发送为:(hex10)(hex50)命令行的响应命令行的格式定义如下:“test”表示一个以0为结束符的字符串。(“”字符不发送)5表示一个8位的整数。10 表示一个16位的整数。(1000) 表示一个32位的整数。表示一个32位的浮点数。注意:所有多字节数(包括整数和浮点数),首先传送高位(Motorola格式)。接收成功时,应答码为接收失败

4、时,应答码为跟上错误代码错误代码如下:代码解释1不能写入(如:序列号已被设置)2操作未完成3寄存器未找到4访问被拒绝(安全原因)5字节数错误(要求的字节数不正确)6无效的类型码(内部错误)7数据未准备好(处理中),稍候再试8超出范围,输入值超出了定义的范围9未登录表1命令行应答码命令行模式Command:Response:这个初始化消息用于启动访问命令行。由于命令主体为空,CRC被省略,收到信息后,终端进入命令行模式。登录命令Command:L“id, pw”Response:本命令用于登录系统。“id”、“pw”分别是用户名和密码,密码以0为结束符。注意:对用户ID和密码的保密以及字符串以0

5、结束。退出命令Command:xResponse:本命令用于退出系统。注意:登陆电表进行数据通信后,请用该命令退出。信息命令Command:Ireg_numResponse: Ireg_num/data/本命令将返回所要查询的寄存器信息。/data/是以为0结束符的字符串: “”为寄存器的类型,以字母表示(见前面的有关类型的列表)。字母序列在未来若需要扩展的话,将使用小写字母。由信息命令返回的是外部类型。测量单位测量单位AAmpsD角度值HHz(赫兹)M分钟NNo UnitP百分比Q功率因素RVars(无功功率)SVA(视在功率)T秒U未定义VVolts(伏特)WWatts(瓦特)XWh(有功

6、)YVarh(无功)ZVah(视在)表2信息命令单位结构组成:是具有高达16个字符并以0为结束符的格式的寄存器描述。当寄存器不能正常访问时(任何原因,包括安全原因),将返回一个“N”和数据类型“U”(说明该数据类型未知)。在这种情况下描述的内容将是“Register xxxx”。读寄存器命令Command:Rreg_numResponse:Rreg_num/data/这条命令返回寄存器存储的数据。所有寄存器将在后续章节寄存器列表中列出。32位寄存器地址码的前16位作为0处理。设置复费率电能量(TOU)的寄存器返回的是一个单精度浮点数,如果需要得到的是双精度浮点数可以在上面提到的读寄存器命令后增

7、加一个大写字母D。它的命令的格式是:Rreg_numD注意:对于不支持双精度浮点数的寄存器,这个“D”将是无效。写寄存器命令Command:Wreg_num /data/Response: or 这条命令功能是将数据写入寄存器。/data/的数据类型必须与寄存器的类型相匹配。所有的寄存器将在后续章节寄存器列表中列出。当指令执行成功,终端应答是码,而若试图对只读寄存器进行写操作时,应答则是码。32位寄存器地址码的前16位作为0处理。读扩展寄存器命令Command:M(reg_num)Response Success:M(reg_num)/data/Response Failure:Respons

8、e Code这条命令返回寄存器的数据。所有的寄存器将在后续章节中寄存器列表中列出。使用这条命令,设置复费率(TOU)的寄存器总是以双浮点数而非单浮点数返回。读多个寄存器命令 利用从特殊寄存器读的读扩展寄存器命令,就能读取多个地址不连续的寄存器,从而提高整个效率。除了可读取地址非连续的寄存器外,其它与普通的读寄存器命令相似。对应于读多个命令的两种不同类型,有两种特殊的寄存器。FFF0-对整块寄存器的读取,返回一个错误码。如果出现一个读出错误,整条命令将返回一个“CAN”码。FFF1-对每个寄存器的读取,均返回一个错误码。即使全部的读出都发生错误,整个应答仍返回操作成功信息。当一个读取错误时,结果

9、代码n(“Result Code n”)将为非0值,并且/data/将被标准的错误提示字符串所代替。(1) 多个读,单个错误码Command: M . Response Success: M /Data1 /Data2/. /Data n/Response Failure: CAN Error code(2) 多个读,多个错误码Command: M . Response Success/Failure: M Result Code1/Datat1/ Result code2/Data2/. Result Code n/Data n/写扩展寄存器命令Command: N(reg_num)/dat

10、a/Response: Response Code这条命令将数据写入寄存器(寄存器地址码为reg_num)。数据的类型必须与寄存器的类型匹配。所有的寄存器将在后继章节寄存器列表中列出。当命令执行成功,终端应答将是ACK码,而若试图对只读寄存器进行写操作时,应答则是CAN码。写多个寄存器命令利用从一个特殊寄存器读取的读扩展寄存器命令,就能读取多个地址不连续的寄存器,从而提高整个效率。除了可读取地址非连 不同类型,有两种特殊的寄存器。(1) 多个写,单个错误码Command: N /Data1/ /Data2. /Data n/Response Success: ACKResponse Failu

11、re: CAN Error code(2) 多个写,多个错误码Command: N /Data1/ /Data2. /Data n/Response Success/Failure: Result Code1 Result Code2.Result Code n只要有一个写入错误发生于任何一个寄存器,即使写入成功,仍将返回一个“CAN”码。数据的长度必须正确。如果一个应答码是非零的(如发生错误),则其后会跟随一个以0为结束符的错误码字符串。就整条信息而言,即使全部写入都错误,应答仍是成功的。注意:当写多个寄存器时应小心。一个写入错误就会使命令终止,会产生一些寄存器已写入数据,而一些却没有被写入

12、的情况。扩展信息的命令Command: O(reg_num)Response: O(reg_num)/data/ or Response code if invalid command本命令返回寄存器的信息。/data/是一个以0为结束符的字符串,格式为:“”如果某个寄存器不能访问(由于任何原因,包括安全原因),将返回一个“N”和数据类型为“U”(类型未知)。在这种情况下的“描述”(Description)是“Register”。读多个扩展寄存器命令Command: A(reg_num)num_regResponse Success: A(reg_num)num_reg/data/Respon

13、se Failure: Response Code 本命令返回从地址reg_num开始的num_reg个寄存器存储的数据。这里应注意读取的字符串的长度是可变的。对于设置复费率(TOU)的寄存器,此命令返回双浮点数而非单浮点数。写多个扩展寄存器命令Command: B(reg_num)num_reg/data/Response: Response Code-本命令功能将数据写入以地址reg_num开始的num_reg个寄存器中。/data/的类型必须与寄存器的类型匹配。注意字符串长度是可变的,并且“J”型寄存器不能用这种方式写入。所有的寄存器将在后继章节寄存器列表中列出。当命令执行成功时,终端将返回ACK,而如果寄存器不能写

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号