您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > SPAC202M通信协议
1SPAC202M-MODBUS通信协议内容简要本通信协议详细地描述了SPAC202M在MODBUS通讯模式下的输入和输出命令、信息和数据,以便第三方使用和开发。1.1串行通讯协议的目的通信协议的作用使信息和数据在上位机(主站)和SPAC202M之间有效地传递,它包括:1)允许主站访问和设定所接SPAC202M的全部设置参数;2)允许访问SPAC202M的所有测量数据和事件纪录。1.2MODBUS通讯协议的版本该通讯协议适用于本公司已经出厂的SPAC202M仪表,对于日后的系列若有改动会加以特别说明。1.3传输特性传输方式:异步串行通信方式。采用规约:MODBUS从站规约。传输速率:1200bps,2400bps,4800bps,9600bps,19200bps。传输电缆:采用带屏蔽的多芯铜导线,接口标准应采用一对双绞线。组成RS-485网络时,双绞线电缆特性阻抗约120Ω,导线电阻应小于0.10Ω/m,导线间电容应小于60pF/m,导线与屏蔽层间电容小于100pF/m。RS-485接口为后面板2个端子。最大传输距离:1300米。网络连接主站数目:1个。网络连接从站数目:最多31个。应答时间:小于10毫秒。RS-485网络的匹配电阻选取:双绞线网络两端的匹配电阻选取,以现场通信正常为准,一般地1.2km时取120Ω,600m时取220Ω,300m时取330Ω,如通信误码率较大,观察通信时的波形,匹配电阻做适当改变:末端匹配电阻合适末端匹配电阻偏小末端匹配电阻偏大2第一章SPAC202M-MODBUS串行通信协议详细说明2.1SPAC202M-MODBUS协议基本规则以下规则确定在RS485回路控制器和其他RS485串行通信回路中设备的通信规则:1)所有RS485回路通信应遵照主/从方式。在这种方式下,信息和数据在单个主站和最多32个从站(监控设备)之间传递;2)主站将初始化和控制所有在RS485通信回路上传递的信息;3)无论如何都不能从一个从站开始通信;4)所有RS485环路上的通信都以“打包”方式发生。一个报文就是一个简单的字符串(每个字符串8位),一个报文中最多可含255个字节。组成这个报文的字节构成标准异步串行数据,并按8位数据位,1位停止位,无校验位的方式传递。5)主站发送报文称为请求,从站发送报文称为响应;6)任何情况从站只能响应主站一个请求。2.2传送模式MODBUS协议可以采用ASCII或者RTU模式传送数据。SPAC202M仅仅支持RTU模式,8位数据位,无校验位,1位停止位。2.3MODBUS报文结构描述每个MODBUS报文都由以下几个部分组成:1)地址域2)功能码域3)数据域4)校验域2.3.1地址域MODBUS的从站地址域长度为一个字节,包含报文传送的从站地址。有效的从站地址范围从1~247。从站如果接收到一帧从站地址域信息与自身地址相符合的报文时,应当执行报文中所包含的命令。从站所响应的报文中该域为自身地址。2.3.2功能码域MODBUS报文中功能域长度为一个字节,用以通知从站应当执行何操作。从站响应报文中应当包含主站所请求操作的相同功能域字节。有关SPAC202M的功能码参照下表。功能码含义功能0x03读取寄存器获得当前SPAC202M内部一个或多个当前寄存器值0x10设置寄存器将指定数值写入SPAC202M内部一个或多个寄存器内2.3.3数据域MODBUS数据域采用”BIGINDIAN”模式,即是高位字节在前,低位字节在后。3举例如下:1个16位寄存器包含数值为0x5678,寄存器数值发送顺序为:高位字节=0x56低位字节=0x782.3.4校验域MODBUS-RTU模式采用16位CRC校验。发送设备应当对报文中的每一个数据都进行CRC16计算,最后结果存放入检验域中。接收设备也应当对报文中的每一个数据(除校验域以外)进行CRC16计算,将结果域校验域进行比较。只有相同的报文才可以被接受。具体的CRC校验算法参照第三章。2.4网络时间考虑在RS485网络上传送报文需要遵循以下有关时间的规定:1)主站请求报文结束到从站响应报文开始之间的时间最大为25毫秒;2)从站响应报文结束到主站下一请求报文开始之间的时间应大于25毫秒;3)通信超时及代码异常的处理:不予理睬。4第二章通讯报文SPAC202M-MODBUS支持两个功能码,16位数据模式,也就说传输任何测量值最大为65535。3.1读寄存器(功能码03)由主站机发送的报文请求SPAC202M响应所有有效的寄存器。读寄存器报文格式(主机→SPAC202M)响应格式(SPAC202M→主机)从站地址1字节从站地址1字节功能码03H1字节功能码03H1字节开始地址2字节字节数(2*寄存器数目)1字节寄存器个数2字节第一个寄存器数据2字节CRC校验码2字节第二个寄存器数据2字节…………CRC校验码2字节3.2写寄存器(功能码16)精品女装,我的淘宝店!该命令允许主站配置SPAC202M工作参数,以下为数据格式:写寄存器报文格式(主机→SPAC202M)响应格式(SPAC202M→主机)从站地址1字节从站地址1字节功能码10H1字节功能码10H1字节开始地址2字节开始地址2字节寄存器个数2字节寄存器个数2字节字节个数(2*寄存器个数)1字节CRC校验码2字节第一个寄存器数据第二个寄存器数据……….CRC校验码2字节4.提供的数据及操作分为只读部分、只写部分和读写部分,见第四章。注:任何报文中最多只含有100个寄存器的数据,所以一次最多读取10个保护事件或16个SOE事件。5第三章计算CRC-164.1算法该部分将描述计算CRC-16的过程。在帧中的有关的字节被义为是一串2进制数据(0,1)。第16位校验和是这样得到的:该串数据流被216乘,然后除以发生器多项式(X16+X15+X2+1),该式以2进制表示为1100000000000101。商被忽略,16位的余数就是CRC的值,在计算CRC-16值时,全部算术运算用modulotwo或者异或(X0R)算法。按照下列步骤产生CRC-16的校验和:1)省略发生器最有意义的位,并且把位的顺序颠倒过来。形成一个新的多项式,结果是1010000000000001或者16进制的A001。2)将全部1或者16进制FFFF装入16位寄存器。3)用16位寄存器中低阶字节对第一个数据字节进行XOR运算,把结果存入16位寄存器。4)把16位寄存器向右移一位。如果溢出位为1,则转向第5步骤,否则转向第6步骤。5)用新的发生器多项式对16位寄存器执行MOR运算,并且把结果存入16步骤。6)重复步骤4,直到移位8次为止。7)用16位寄存器的第阶字节对下一个数据字节进行XOR运算,将结果存入16位寄存器。8)重复步骤4-7,直到小包的所有字节都已经用16位寄存器执行了XOR运算为止。9)16位寄存器的内容就是CRC-16下面的例子是对16进制的6390BE这个字节进行CRC计算。步骤字节动作寄存器位#移位2初值11111111111111111装入第一字节00000000011000113异或11111111011011004右移一位0111111111001110104错误!未找到引用源。0011111111100111204错误!未找到引用源。000111111111001131多项式10100000000000115异或10111111111100104右移一位0101111111111000404错误!未找到引用源。001011111111110051错误!未找到引用源。10100000000000015异或100011111111110164错误!未找到引用源。010001111111111061多项式10100000000000015错误!未找到引用源。11100011111111114错误!未找到引用源。011100111111111171多项式10100000000000015异或11010011111111104错误!未找到引用源。0110100111111111802装下一字节00000000100100007异或01101001011011114错误!未找到引用源。001101001011011111错误!未找到引用源。10100000000000015异或10010100101101104错误!未找到引用源。0100101001011011204错误!未找到引用源。001001010010110131错误!未找到引用源。10100000000000015异或10000101001011004错误!未找到引用源。0100001010011100404错误!未找到引用源。0010000101001011504错误!未找到引用源。000100001010010161错误!未找到引用源。10100000000000015错误!未找到引用源。10110000101001004右移一位0101100001010010704右移一位0010110000101001813装下一字节00000000101111107错误!未找到引用源。00101100100101114右移一位000101100100101111多项式10100000000000015错误!未找到引用源。101101100100101074右移一位0101101100100101204右移一位001011011001001031多项式10100000000000015错误!未找到引用源。10001101100100114错误!未找到引用源。010001101100100141多项式10100000000000015错误!未找到引用源。11100110110010004右移一位0111001101100010504右移一位0011100110110010604右移一位0011110011011001704右移一位000011100110110081多项式10101110011011015异或10101110011011019CRC-161010111001101101CRC的结果是16进制AE6D。第四章SPAC202M寄存器说明SPAC202M寄存器(包括实时寄存器和设置寄存器),在MODBUS通讯协议时是以0000H为首地址(即第一个寄存器的地址)。例如,要读取IB,IC,UAB,UBC四个连续寄存器的值,则设置开始地址为0001H,寄存器个数为0004H。寄存器表格1.数据只读寄存器寄存器号操作类型FROM地址描述报文起始地址(comm._register[])40001RO(高)1,2(低)A相电流0x0000(00)40002ROB相电流0x0001(01)40003ROC相电流0x0002(02)40004ROA相电压0x0003(03)40005ROB相电压0x0004(04)840006ROC相电压0x0005(05)40007ROAB线电压0x0006(06)40008ROBC线电压0x0007(07)40009ROCA线电压0x0008(08)40010RO三相有功功率(kW)0x0009(09)40011RO三相有功功率(W)0x000a(0A)40012RO三相无功功率(kW)0x000b(0B)40013RO三相无功功率(W)0x000c(0C)40014RO三相功率因数0x000d(0D)40015RO系统频率0x000e(0E)40016RW有功电度(高位)0x000f(0F)40017RW有功电度(低位)0x0010(10)40018RW无功电度(高位)0x0011(11)40019RW无功电度(低位)0x0012(12)40020RO符号寄存器10x0013(13)40021RO起动最大电流0x0014(14)40022ROI0的幅值0x0015(15)注:由于在MODBUS通信协议中数据只能以无符号整数传输,因此不符合无符号整数的数据按以下方式处理:①专门设置了符号
本文标题:SPAC202M通信协议
链接地址:https://www.777doc.com/doc-2850002 .html