HLP SV Modbus标准通讯协议格式

合集下载

Modbus标准通讯协议格式

Modbus标准通讯协议格式

Modbus通讯协议Modbus协议Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。

此协议支持传统的RS-232、RS-422、RS-485和以太网设备。

许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。

有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。

如果需要回应,控制器将生成应答并使用Modbus 协议发送给询问方。

Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。

此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。

标准的Modicon控制器使用RS232C实现串行的Modbus。

Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave 端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。

另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。

因此,Modbus协议的可靠性较好。

下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。

标准MODBUS通信协议说明书

标准MODBUS通信协议说明书

标准MODBUS协议说明书一.我公司现有产品中需要和组态软件进行通信的有二种产品:①总线探头②控制器主机。

三种产品分别使用了二种不格式的MODBUS协议。

但是其都符合MODBUS的通信格式:1.1接口标准:接口标准:TIA/EIA-485硬件连接:2线模式(非4线模式)1.2通讯格式:传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与MODBUS 协议RTU方式相兼容的传输方式。

每个字节的位:•1个起始位•8个数据位(低有效位在前)•无奇偶校验位•1个停止位错误检测(Error checking):CRC(循环冗余校验)1.3通讯速率:9600bps。

1.4通讯方式:主从方式。

1.5 要求通信波特率可以从9600 4800 1200 600中任意选择。

二.总线探头通信格式说明2.1主机发送格式地址编码功能码寄存器地址数据个数CRC高位CRC低位Address Function AddrH AddrL NumH NumL CRCH CRCL 2.2从机应答格式地址编码功能码字节数数据CRC高位CRC低位CRCH CRCL Address Function byte Data0H,Data0L………………………………………………………. DataNH,DataNL2. 3 格式说明实例假设总线探头地址为01 探头采用值为1组态软件发送数据:01 03 00 65 00 01 CRCL CRCH探头返回数据:01 03 02 00 01 CRCL CRCH3.协议使用说明:3.1关于设置:○1仪器地址设置由按键在菜单设置完成,设置范围1到247,一般默认为1。

.具体操作详见具体仪器使用说明书。

○2传输波特率设置由按键在菜单设置完成,设置范围600、1200、2400、4800、9600、一般默认为9600。

具体操作详见相关仪器使用说明书。

modbus协议范本

modbus协议范本

Modbus协议范本
一、通信协议
Modbus是一种串行通信协议,用于连接工业电子设备。

它定义了主从设备之间的通信方式和数据格式,使得不同厂商生产的设备能够相互通信。

二、数据格式
Modbus协议采用ASCII码或二进制码进行数据传输。

在ASCII码格式中,每个字节都表示为一个ASCII字符,而在二进制码格式中,每个字节都表示为8位二进制数。

三、命令与应答
Modbus协议采用命令/应答的方式进行通信。

主设备发送一个命令,从设备接收并执行该命令,然后返回一个应答。

命令和应答都遵循一定的格式和协议。

四、校验方式
Modbus协议提供了两种校验方式:奇偶校验和CRC校
验。

奇偶校验方式通过在数据字节后添加一个校验位来确保数据的正确性。

CRC校验方式则使用一个循环冗余检查算法来确保数据的正确性。

五、数据通信方式
Modbus协议支持两种数据通信方式:同步通信和异步通信。

同步通信要求主设备和从设备在通信时保持同步,而异步通信则不需要同步。

六、连接方式
Modbus协议支持多种连接方式,包括RS-485、RS-422、RS-232等。

这些连接方式适用于不同的应用场景和设备配置。

七、传输速率
Modbus协议支持多种传输速率,包括9.6kbps、19.2kbps、4800bps等。

根据不同的应用场景和设备配置,可以选择合适的传输速率来确保通信的稳定性和可靠性。

modbus通讯协议模板

modbus通讯协议模板

Modbus通讯协议是一种在工业领域广泛使用的通信协议,用于在设备之间传输数据。

Modbus协议有多个变体,包括Modbus RTU(串行通信)和Modbus TCP(基于TCP/IP的通信)。

以下是一个简单的Modbus通讯协议模板,供参考:Modbus RTU 通讯协议模板:1. 起始符:Modbus RTU通讯以一帧二进制数据开始。

在串行通信中,通常使用起始符标志通讯的开始。

常见的起始符是11位的空闲时间。

2. 设备地址:Modbus RTU协议中,每个设备都有一个唯一的地址。

设备通过地址来区分通信的目标。

3. 功能码:描述要执行的操作的功能码。

常见功能码包括读取保持寄存器、写入单个寄存器、读取输入寄存器等。

4. 数据:数据字段包含读取或写入的数据。

数据的格式取决于功能码和具体的操作。

5. CRC 校验:使用CRC (循环冗余校验)进行数据校验,以确保通讯的完整性。

CRC通常包括两个字节。

6. 停止位:在Modbus RTU通讯中,停止位表示一个数据帧的结束。

通常有一个停止位。

Modbus TCP 通讯协议模板:1. Modbus TCP 头部:Modbus TCP通讯以TCP/IP帧开始。

头部包含源端口、目标端口等信息。

2. Modbus TCP 协议标识符:标识TCP报文中的Modbus协议。

通常为0。

3. 长度字段:描述Modbus数据的长度,以字节为单位。

4. 设备地址:Modbus TCP中,设备地址也包含在TCP报文的数据字段中。

5. 功能码:描述要执行的操作的功能码,与Modbus RTU相同。

6. 数据:数据字段包含读取或写入的数据。

数据的格式取决于功能码和具体的操作。

7. CRC 或校验字段:在Modbus TCP中,通常使用CRC或其他校验方法来确保通讯的完整性。

这是一个简化的模板,实际的Modbus通讯可能会涉及更多的细节和特定的实现。

使用Modbus协议时,请根据具体情况参考Modbus协议规范和设备文档。

modbus协议标准格式

modbus协议标准格式

modbus协议标准格式
Modbus协议是一种通信协议,用于在工业控制系统中实现设备之间的数据交换。

它定义了一套标准的消息格式,以确保不同设备之间的互操作性。

Modbus协议的标准格式如下:
1. 帧头(Header):帧头包含了源地址和目标地址等信息,用于识别消息的发送者和接收者。

2. 功能码(Function Code):功能码定义了要执行的特定操作,例如读取或写入数据。

3. 数据域(Data Field):数据域包含了具体要传输的数据,可以是读取的寄存器值或要写入的值。

4. 错误校验(Error Check):错误校验字段用于检测数据传输中是否发生错误,常用的校验方式有循环冗余校验(CRC)和简单校验和(Checksum)。

5. 帧尾(Footer):帧尾标识着消息的结束,通常是一个或多个字节的标识符。

根据具体的Modbus协议类型和使用的物理层,标准格式可能会有一些变化。

其中最常见的是Modbus RTU和Modbus TCP,它们在帧格式和传输方式上略有差异。

总之,Modbus协议的标准格式定义了消息的结构,使得不同设备之间能够进行有效的数据交换。

modbus通讯协议格式详解

modbus通讯协议格式详解

modbus通讯协议格式详解Modbus是一种常用的通信协议,用于在工业自动化系统中不同设备之间进行通信。

下面是Modbus通信协议的详解。

1. Modbus协议类型:- Modbus ASCII:使用ASCII字符进行数据传输,每个字节使用两个ASCII字符表示。

- Modbus RTU:使用二进制编码进行数据传输,每个字节使用8个二进制位表示。

2. Modbus通信格式:- 帧起始符:通常为冒号(ASCII字符)或启动位(RTU模式)。

- 地址字段:定义要与之通信的设备地址。

- 功能码:指示所需执行的操作类型。

- 数据域:包含要传输或接收的数据。

- 校验和:用于验证帧数据的完整性,通常是通过计算和比较CRC校验值或校验和字节来实现的。

3. Modbus功能码:- 读取数据:用于读取设备的状态或数据。

- 功能码0x01(读取线圈状态):用于读取数字输出或线圈的状态。

- 功能码0x02(读取输入状态):用于读取数字输入或线圈的状态。

- 功能码0x03(读取保持寄存器):用于读取设备的保持寄存器的值。

- 功能码0x04(读取输入寄存器):用于读取设备的输入寄存器的值。

- 写入数据:用于写入设备的状态或数据。

- 功能码0x05(写单个线圈):用于写入单个数字输出或线圈的状态。

- 功能码0x06(写单个寄存器):用于写入单个保持寄存器的值。

- 功能码0x0F(写多个线圈):用于写入多个数字输出或线圈的状态。

- 功能码0x10(写多个寄存器):用于写入多个保持寄存器的值。

4. Modbus数据格式:- 线圈状态:用于表示开关状态的数据,以位为单位(0表示关,1表示开)。

- 输入状态:用于表示输入设备状态的数据,以位为单位。

- 保持寄存器:用于存储设备状态或数据的数据,以字为单位。

- 输入寄存器:用于存储输入设备状态或数据的数据,以字为单位。

总结:Modbus通信协议定义了一套通用的格式,用于在工业自动化系统中进行设备之间的通信。

标准modbus通讯协议

标准modbus通讯协议

标准modbus通讯协议Modbus通讯协议是一种用于工业自动化领域的通讯协议,它是一种串行通讯协议,广泛应用于工业控制领域。

Modbus通讯协议具有简单、易实现、可靠等特点,因此备受工程师和技术人员的青睐。

本文将对标准Modbus通讯协议进行详细介绍,包括其基本原理、通讯方式、协议格式等内容,以帮助读者更好地理解和应用Modbus通讯协议。

Modbus通讯协议的基本原理是基于主从结构的通讯方式,通讯的主要对象是寄存器。

在Modbus通讯协议中,主要包括Modbus主站和Modbus从站两种设备。

主站负责向从站发送请求,从站接收主站的请求并作出相应的响应。

Modbus通讯协议的通讯方式包括RTU、ASCII和TCP/IP三种方式,其中RTU是最常用的一种方式,它采用二进制方式进行数据传输,通讯速度快,效率高。

在Modbus通讯协议中,通讯的数据格式一般包括地址码、功能码、数据、校验码等部分。

地址码用于标识设备的地址,功能码用于标识请求的功能,数据部分包括请求或响应的数据内容,校验码用于校验数据的完整性。

在Modbus通讯协议中,常用的功能码包括读取线圈状态、读取输入状态、读取保持寄存器、读取输入寄存器等,这些功能码能够满足不同的通讯需求。

Modbus通讯协议的应用范围非常广泛,它可以应用于各种工业控制系统中,如PLC控制系统、传感器设备、仪表设备等。

通过Modbus通讯协议,不同厂家生产的设备可以实现互联互通,实现设备之间的数据交换和共享,极大地方便了工程师和技术人员的工作。

总的来说,标准Modbus通讯协议是一种简单、可靠的工业通讯协议,它在工业自动化领域有着广泛的应用。

通过本文的介绍,相信读者对Modbus通讯协议有了更深入的了解,能够更好地应用于实际工程项目中。

希望本文能够对读者有所帮助,谢谢阅读!。

常用modbus 通信命令格式

常用modbus 通信命令格式

常用modbus 通信命令格式Modbus通信是一种基于串行通信协议的工业自动化和控制系统的通信标准。

它被广泛应用于工业自动化、楼宇自控和电力系统等领域。

Modbus通信协议有三种主要类型:Modbus RTU、Modbus ASCII和Modbus TCP/IP。

其中,Modbus RTU是一种基于串行二进制编码的通信协议,常用于串行通信线路。

Modbus RTU通信命令格式如下:1. 设备地址:1字节,表示主站与从站之间的设备地址。

范围从0到255。

2. 功能码:1字节,表示通信操作的类型。

例如,读取保持寄存器、读取输入寄存器、写入多个寄存器等。

3. 数据长度:1字节,表示接下来要传输的数据长度。

4. 数据:根据功能码的不同,数据字段包含相应的数据。

例如,在读操作中,数据字段包含寄存器的起始地址和寄存器数量;在写操作中,数据字段包含要写入的寄存器的值。

5. 校验码:1字节,用于检测传输过程中的错误。

常用的校验方法有奇偶校验、CRC校验等。

以下是一个Modbus RTU通信命令的示例:0x01 0x03 0x00 0x00 0x00 0x0A 0x01 0x00 0x01 0x00 0x00 0x01 0x00 0x00 0x01 0x00 0x01其中,0x01表示设备地址;0x03表示功能码(读取保持寄存器);0x00表示数据长度;0x00 0x01 0x00 0x01表示寄存器的起始地址和数量;0x01表示CRC校验码。

需要注意的是,Modbus RTU通信命令的具体格式可能因厂商和设备类型而有所不同。

在实际应用中,需要根据设备说明书和通信协议来确定正确的通信命令格式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HLP_SV Modbus RTU 标准通讯协议格式通信资料格式Address Function Data CRC check8 bits 8 bits N×8bits 16bits1)Address通讯地址:1-2472)Function:命令码8-bit命令01 读线圈状态上位机发送数据格式:ADDRESS 01 ADDRH ADDRL NUMH NUML CRC注: ADDR: 00000 --- FFFF(ADDR=线圈地址-1);NUM: 0010-----0040 (NUM为要读线圈状态值的二进制数位数)正确时变频器返回数据格式:ADDRESS 01 BYTECOUNT DATA1 DATA2 DATA3 DATAN CRC注: BYTECOUNT:读取的字数错误时变频器返回数据格式:ADDRESS 0X81 Errornum CRC注: Errornum为错误类型代码如:要检测变频器的输出频率应发送数据:01 01 00 30 00 10 3D C9(16进制)变频器返回数据:01 01 02 00 20 B8 24(16进制)发送数据:0030hex(线圈地址49)返回的数据位为“0020”(16进制),高位与低位互换,为2000。

即输出频率为303(Max Ref)的50%。

关于2000对应50%,具体见图1。

03读保持寄存器上位机发送数据格式:ADDRESS 03 ADDRH ADDRL NUMH NUML CRC注:ADDR: 0 --- 0XFFFF;NUM: 0010-----0040 (NUM为要读取数据的字数)ADDR=Parameter Numbe r×10-1正确时变频器返回数据格式:ADDRESS 03 BYTECOUNT DATA1 DATA 2 DATA 3 DATAN CRC 注: BYTECOUNT:读取的字节数错误时变频器返回数据格式:ADDRESS 0X83 Errornum CRC如:要读变频器参数303的设定值应发送数据:01 03 0B D5 00 02 95 BC (16进制)Parameter 303(3029)=0BD5HEX变频器返回数据:“:”01 03 04 00 00 EA 60 B5 7B返回的数据位为“00 00 EA 60”(16进制)转换为10进制数为60000,表示303设置值为60.000※当参数值为双字时,NUM的值必须等于2。

否则无法读取或读取错误。

05 写单个线圈状态上位机发送数据格式:ADDRESS 05ADDRH ADDRL DATAH DA TAL CRC注:ADDR: 0 ---- 0XFFFF(ADDR=线圈地址-1);DATA=0000HEX(OFF) OR FF00(ON) HEX正确时变频器返回数据格式:ADDRESS 05 DATAH DATAL BYTECOUNT CRC错误时变频器返回数据格式:ADDRESS 0X85 Errornum CRC如:要使写参数为写入RAM和EEPROM应发送数据:01 05 00 40 FF 00 CRC(16进制)变频器返回数据:01 05 FF 00 00 01 CRC(16进制)发送数据:0040hex(线圈地址65)06 写单个保持寄存器值(只能写参数值为单个字的参数)上位机发送数据格式:ADDRESS 06 ADDRH ADDRL DA TAH DATAL CRC注:ADDR: ADDR=Parameter Numbe r×10-1正确时变频器返回数据格式:ADDRESS 06 ADDRH ADDRL DA TAH DA TAL CRC错误时变频器返回数据:ADDRESS 0X86 Errornum CRC如:要对变频器参数101写入1应发送数据:01 06 00 03 F1 00 01 19 BD(16进制)变频器返回数据:01 06 03 F1 00 01 19 BD(16进制)PARAMETER 101(1009)=03F1 HEX返回的数据位为“0001”(16进制)转换为10进制为“1”表示101设置值为10F 写多个线圈状态上位机发送数据格式ADDRESS 0F ADDRH ADDRL NUMH NUML COUNT DATAH1DATAL1 DATA2H DATA2L ------- DA TANH DA TANL CRC注:ADDR: 0 -------- 0XFFFF (ADDR=线圈地址-1); NUM: 0010-----0040 (NUM为要写值的二进制数的位数) ; COUNT: NUM / 8正确时变频器返回数据格式:ADDRESS 0F ADDRH ADDRL NUMH NUML CRC错误时变频器返回数据格式:ADDRESS 0X8F Errornum CRC如:变频器运行,频率是参数303的40%应发送数据:01 0F 00 00 00 20 04 7C 04 9A 19 37 43(16进制)变频器返回数据:01 0F 00 00 00 20 54 13(16进制)运行命令:0000 0100 0111 1100=047C HEX速度命令:4000 HEX=100% Speed40% of 4000 HEX=199A HEX10 写多个保持寄存器(只能写单个参数的值)上位机发送数据格式ADDRESS 0x10 ADDRH ADDRL NUMH NUML BYTECOUNTDATAH1 DATAL1 DATA2H DATA2L ------- DA TANH DA TANL CRC注:ADDR: 0 ------ 0XFFFF:ADDR=Parameter Numbe r×10-1;NUM: 0-2 (NUM 为要写的字的字数)COUNT=NUM*2正确时变频器返回数据格式ADDRESS 0x10 ADDRH ADDRL NUMH NUML CRC错误时变频器返回数据格式:ADDRESS 0X90 Errornum CRC如要同时对参数303写入60.000(Parameter 303(3029)=0BCB HEX)应发送数据:01 10 0B CB 00 02 04 00 00 EA 60 82 34(16进制)变频器返回数据:01 10 0B CB 00 02 32 12(16进制)发送的要写入16进制数据“00 00 EA 60”转换为10进制数为60000表示对参数303写入的数据分别为60.000※注意:NUM的值必须写对,否则返回的数据可能出错通信错误代码(Errornum)说明:00 参数号码不存在01 不能写入已定义的参数02 参数的值超出该参数的上限03 子索引不存在04 该参数不是数组类型05 数据类型与已定义参数的数据类型不同06 仅用于复位07 不可改变11 不许写17 在变频器当前模式下不能更改已定义参数的数据某些参数只能在电机关闭时才能更改18 其它错误64 无效的数据地址65 无效的长度66 无效的数据长度和值67 无效的参数130 已定义参数没有总线连接131 出厂设定值已被选定数据,不能更改功能码说明线圈功能码说明线圈地址名称R/W 说明1-16 变频器控制字R,W 见附表17-32 变频器转速或设定频率R,W 见附表33-48 变频器状态字R49-64 变频器输出频率R65 参数写控制R,W 0 –参数写入RAM:1-参数写入RAM 和EEPROM66-65536 保留4)DATA:资料内容n×8-bit资料5)CRC:侦误值附表:变频器控制字:位位=0 位=100 预置最小参考值01 预置最大参考值02 直流制动03 惯性停机04 快停05 冻结输出频率06 加减速停车起动07 复位08 点动09 加减速1 加减速210 数据无效数据有效11 无功能12 无功能13 选择最小安装14 选择最大安装15 反转变频器状态字:位位=0 位=100 控制准备完毕01 驱动准备完毕02 惯性停机03 错误04 无用05 无用06 无用07 无警告警告08 速度!=参考值速度=参考值09 本地控制串行通信10 频率范围溢出频率限制正常11 电机正常运行1213 电压警告14 电流限定15 热警告读数组参数310[2](index=2)发送:01 06 00 08 00 02 CRC“0002”Index的值接收:01 06 00 08 00 02 CRC发送:01 03 0C 1B 00 01 CRC接收:01 03 02 00 00 CRC写数组参数310[2](index=2)发送:01 06 00 08 00 02 CRC“0002”Index的值接收:01 06 00 08 00 02 CRC发送:01 10 0C 1B 00 01 02 00 00 CRC接收:01 10 0C 1B 00 01 CRC读写带数组的数必须先发01 06 00 08 Index(High) Index(Low) CRC ,再按读,写数据的格式发送数据HLP_SV通讯协议格式通信资料格式由一个起始字节(STX)开始,这个起始字节为STX=02(十六进制)。

随后紧跟资料的长度(LGE)的字节和表示变频器地址的字节(ADR)。

然后是一些数据字节。

最后由一个数据控制字节(BCC)来结束。

STX LGE ADR DATA BCC1)资料长度资料长度是数据字节的数目和地址字节(ADDR)加数据字节(DA TA)再加BCC字节的总和。

4个数据字节的资料长度为:LGE=4+1+1=612个数据字节的资料长度为:LGE=12+1+1=14包含文本的资料长度为:10+n字节。

其中,10代表固定字节,n是随着文本的长度而变化的。

2)变频器地址(ADDR):1-2473)数据控制字节(BCC)将前面所有的数据进行异或运算。

4)数据字节数据字节的资料格式有三种类型:PKE IND PWE high PWE low PCD1 PCD2参数块过程块过程块由4个字节(2个字)的数据块组成,包括:控制字和参考值状态字和当前输出频率(从从机到主机)PCD1 PCD2过程块文本块,用于通过数据块读写文本。

PKE IND Ch1 Ch2 …Chn PCD1 PCD2文本块过程块参数命令与应答(AK)12-15位用于传送主机到从机的参数命令和从机答复主机的应答。

参数命令主——从位号:15 14 13 12 参数命令0 0 0 0 无命令0 0 0 1 读参数值0 0 1 0 在RAM中写参数值(字类型)0 0 1 1 在RAM中写参数值(双字类型)1 1 0 1 在RAM和EEPROM中写参数值(双字类型)1 1 1 0 在RAM和EEPROM中写参数值(字类型)1 1 1 1 读/写文本应答从——主位号:15 14 13 12 应答命令0 0 0 0 无应答0 0 0 1 参数值已传送(字类型)0 0 1 0 参数值已传送(双字类型)0 1 1 1 命令不能执行1 1 1 1 文本已传送如果命令不能被执行,则从机发送应答:0111‘命令不能执行’并且在参数值(PWE)中给定以下的错误报告。

相关文档
最新文档