好文档 - 专业文书写作范文服务资料分享网站

TH YF (YFSWH-MK2A2)紫光新锐智能配电仪表 使用说明书

天下 分享 时间: 加入收藏 我要投稿 点赞

41

域允许主设备确认消息内容是否可用。传输方式传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与MODBUS协议–RTU方式相兼容的传输方式。10.1.5每个字节的位?1个起始位?8个数据位,最小的有效位先发送?无奇偶校验位?1个停止位(有校验时),2个Bit(无校验时)错误检测(Errorchecking)CRC(循环冗余校验)协议当数据帧到达终端设备时,它通过一个简单的“端口”进入被寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应。或者返回一个错误指示帧。10.1.610.1.7数据帧格式Address8-BitsFunction8-BitsDataNx8-BitsCheck6-Bits地址(Address)域地址域在帧的开始部分,由一个字节(8位二进制码)组成,十进制为0~255,在我们的系统中只使用1~247,其它地址保留。这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。10.1.8功能(Function)域功能域代码告诉了被寻址到的终端执行何种功能。下表列出了THYF系列用到的功能码,以及它们的意义和功能。10.1.9代码0102030516意义读DO状态读DI状态读数据寄存器控制DO预置多寄存器行为获得数字(继电器)输出的当前状态(ON/OFF)获得数字输入的当前状态(ON/OFF)获得一个或多个寄存器的当前二进制值控制数字(继电器)输出状态(ON/OFF)设定二进制值到一系列多寄存器中42

10.1.10数据(Data)域数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。例如:功能域码告诉终端读取一个寄存器,数据域则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同内容而有所不同。10.1.11错误校验(Check)域该域允许主机和终端检查传输过程中的错误。有时,由于电噪声和其它干扰,一组数据在从一个设备传输到另一个设备时在线路上可能会发生一些改变,出错校验能够保证主机或者终端不去响应那些传输过程中发生了改变的数据,这就提高了系统的安全性和效率,错误校验使用了16位循环冗余的方法(CRC16)。10.1.12错误指示帧和错误指示码如果从机检测到主机发送的数据存在逻辑错误,比如地址不存在或者数据个数超出范围,则向主机发送错误指示帧。错误指示帧的定义为:功能域(Function)的最高为(MSB)设置为1,其它位保持不变,数据域(Data)定义了错误类型(即错误指示码ErrCode)。注意:如果是CRC错误,从机不返回任何数据。例如主机请求读数字输出状态,但是给出的地址超出有效范围,在这种情况下,从机发出错误指示码:Addr0AHFun81HBytecount01HErrCodeFFHCRC16hi12HCRC16lo04H本例中错误指示码为FFH,功能域为81H(它将请求的功能码01H最高位b7设置为1)10.1.13错误检测的方法错误校验(CRC)域占用两个字节,包含了一个16位的二进制值。CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了错误。CRC运算时,首先将一个16位的寄存器预置为全1,然后连续把数据帧中的每个字节中的8位与该寄存器的当前值进行运算,仅仅每个字节的8个数据位参与生成CRC,起始位和终止位以及可能使用的奇偶位都不影响CRC。在生成CRC时,每个字节的8位与寄存器中的内容进行异或,然后将结果向低位移位,高位则用“0”补充,最低位(LSB)移出并检测,如果是1,该寄存器就与一个预设的固定值(0A001H)进行一次异或运算,如果最低位为0,不作任何处理。上述处理重复进行,直到执行完了8次移位操作,当最后一位(第8位)移完以后,下一个8位字节与寄存器的当前值进行异或运算,同样进行上述的另一个8次移位异或操作,当数据帧中的所有字节都作了处理,生成的最终值就是CRC值。生成一个CRC的流程为:12预置一个16位寄存器为0FFFFH(全1),称之为CRC寄存器。把数据帧中的第一个字节的8位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。3将CRC寄存器向右移一位,最高位填以0,最低位移出并检测。43

4如果最低位为0:重复第三步(下一次移位);如果最低位为1:将CRC寄存器与一个预设的固定值(0A001H)进行异或运算。567重复第三步和第四步直到8次移位。这样处理完了一个完整的八位。重复第2步到第5步来处理下一个八位,直到所有的字节处理结束。最终CRC寄存器的值就是CRC的值。此外还有一种利用预设的表格计算CRC的方法,它的主要特点是计算速度快,但是表格需要较大的存储空间,该方法此处不再赘述,请参阅相关资料。10.1.14通讯应用格式详解本节所举实例将尽可能的使用如图所示的格式,(数字为16进制)。Addr0AHFun03HDatastartreghi00HDatastartreglo00HData#ofregshi00HData#ofregslo03HCRC16hi04HCRC16loB0HAddr:从机地址Fun:功能码Datastartreghi:数据起始地址寄存器高字节Datastartreglo:数据起始地址寄存器低字节Data#ofreghi:数据读取个数寄存器高字节Data#ofreglo:数据读取个数寄存器低字节CRC16Hi:循环冗余校验高字节CRC16Lo:循环冗余校验低字节10.1.15读数字输出状态(功能码01)?查询数据帧查询数据帧,主机发送给从机的数据帧。01号功能允许用户获得指定地址的从机的DO(继电器)输出状态ON/OFF(1=ON,0=OFF),除了从机地址和功能域,数据帧还需要在数据域中包含将被读取DO(继电器)的初始地址和要读取的DO(继电器)数量。THYF系列中DO(继电器)的地址从0000H开始(DO1=0000H,DO2=0001H)。下面的例子是从地址为10的从机读取DO1到DO2的状态。(例如:THYF系列有2个DO,DO的地址为0000H~0001H)Addr0AH?Fun01H响应数据帧DOstartreghi00HDOstartreglo00HDO#ofregshi00HDO#ofregslo02HCRC16hiBCHCRC16loB0H响应数据帧,从机回应主机的数据帧.包含从机地址、功能码、数据的数量和CRC错误校验,数据包中每个DO占用一位(1=ON,0=OFF),第一个字节的最低位为寻址到的DO值,其余的在后面。44

下面的例子是读数字输出状态响应的实例。Addr0AHFun01HBytecount01HData02HCRC16hiD2HCRC16lo6DHData为DO状态,它的定义是:0b7MSB(DO1=OFF,DO2=ON)?错误指示码0b60b50b40b30b2DO2b1DO1b0LSB如果主机请求的地址不存在或数据个数不正确则返回错误指示码:FFH。10.1.16读数字输入状态(功能码02)?查询数据帧此功能允许用户获得DI的状态ON/OFF(1=ON,0=OFF),除了从机地址和功能域,数据帧还需要在数据域中包含将被读取DI的初始地址和要读取的DI数量。THYF系列中DI的地址从0000H开始(DI1=0000H,DI2=0001H)。下面的例子是从地址为10的从机读取DI1到DI2的状态。Addr0AHFun02HDIstartAddrhi00HDIstartAddrlo00HDI#regsofhi00HDI#regsoflo02HCRC16hiCRC16loF8HB0H?响应数据帧响应包含从机地址、功能码、数据的数量和CRC错误校验,数据帧中每个DI占用一位(1=ON,0=OFF),第一个字节的最低位为寻址到的DI值,其余的在后面。下面的例子为读数字输入状态响应的实例。Addr0AHFun02HBytecount01HData01HCRC16hiCRC16lo62H6CHData为DI状态,它的定义是:0b7MSB(DI1=ON,DI2=OFF)图4–6读DI1到DI2状态的响应0b60b50b40b30b2DI2b1DI1b0LSB45

?错误指示码如果主机请求的地址不存在或数据个数不正确则返回错误指示码:FFH。10.1.17读数据(功能码03)?查询数据帧此功能允许用户获得设备采集与记录的数据及系统参数。主机一次请求的数据个数没有限制,但不能超出定义的地址范围。下面的例子是从10号从机读3个采集到的基本数据(数据帧中每个地址占用2个字节)F,Va,Vb,THYF系列中F的地址为0130H,Va的地址为0131H,Vb的地址为0132H。Addr0AH?Fun03H响应数据帧DatastartAddrhi01HDatastartAddrlo30HData#ofregshi00HData#ofregslo03H05H43HCRC16hiCRC16lo响应包含从机地址、功能码、数据的数量和CRC错误校验。下面的例子是读取F,Va,Vb(F=1388H(5000Hz),Va=03E7H(99.9v),Vb=03E9H(100.1v))的响应。Addr0AH?Fun03HBytecountData1hiData1loData2hiData2loData3hiData3loCRC16CRC16hilo06H13H88H03HE7H03HE9HC1HF4H错误指示码如果主机请求的地址不存在则返回错误指示码:FFH。10.1.18控制DO(继电器)(功能码05)?查询数据帧该数据帧强行设置一个独立的DO为ON或OFF,THYF系列的DO的地址从0000H开始(DO1=0000H,DO2=0001H)。注意:ON的定义不一定是输出回路的闭合,根据设置参数的不同设置一次ON时,也可能在硬件上输出一个脉冲。数据FF00H将设DO为ON状态,而0000H则将设DO为OFF状态;所有其它的值都将导致从机发送错误指示码,并且不影响DO状态。下面的例子是请求10号从机设置DO1为ON状态。Addr0AHFun05HDOaddrhiDOaddrlo00H00HValuehiFFHValuelo00HCRC16hi8DHCRC16lo41H?响应数据帧对这个命令请求的正常响应是在DO状态改变以后回传接收到的数据。Addr0AHFun05HDoaddrhi00HDoaddrlo00HValuehiFFHValuelo00HCRC16hi8DHCRC16lo41H图示4-10控制独立DO的响应?错误指示码

TH YF (YFSWH-MK2A2)紫光新锐智能配电仪表 使用说明书

41域允许主设备确认消息内容是否可用。传输方式传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与MODBUS协议–RTU方式相兼容的传输方式。10.1.5每个字节的位?1个起始位?8个数据位,最小的有效位先发送?无奇偶校验位?1个停止位(有校验时),2个Bit(无校验时)错误检测(Errorchecking)CRC(循环冗余校验)协议当数据帧到
推荐度:
点击下载文档文档为doc格式
0def56b2m872h8v7sa970wk4t3v4f000u7x
领取福利

微信扫码领取福利

微信扫码分享