7.6.1前提条件这些操作说明假设所安装的控制器支持本文中定义的接口、符合在控制器和变频器内容中规定的所有要求以及其中的所有限制。
7.6.2用户应具备的知识Modbus RTU(远程终端设备)可以与任何支持本文定义的接口的控制器进行通讯。本说明假设用户完全了解控制器的功能和限制。
7.6.3Modbus RTU 概述《Modbus RTU 概述》描述了控制器请求访问另一台设备时使用的过程,而没有考虑物理通讯网络的类型。 其中包括如何响应来自另一台设备的请求,以及如何检测和报告错误。 此外还建立了消息字段布局和内容的公用格式。
该协议确定了借助 Modbus RTU 网络进行通讯时的多种事项:每台控制器如何了解其设备地址、如何识别发送给自己的消息、如何确定要采取哪种类型的操作,以及如何提取消息中包含的数据或其他信息。 如果要求回复,控制器将创建并发送回复消息。
控制器利用主从技术进行通讯,该技术仅允许一台设备(主设备)启动事务(称为查询)。 其他设备(从设备)可通过向主设备提供所请求的数据,或
7 采用查询中请求的操作进行响应。
主站可以对单个从站进行寻址,或向所有从站发送广播消息。 从站会向对它们单独寻址的查询返回一条消息(称为响应)。 但对来自主站的广播查询则不予响应。 Modbus RTU 协议通过将设备(或广播)地址、定义请求操作的功能代码、待发送的所有数据以及错误检查字段放入查询中,来建立主站的查询格式。 也可使用 Modbus 协议创建从站的响应消息。 其中包含确认所采取操作的字段、要返回的所有数据及错误检查字段。 如果从站在接收消息时发生错误,或者它无法执行所请求的操作,那么从站将构建一个错误消息并通过响应消息发回,或者此时会发生超时。
7.6.4带有 Modbus RTU 的变频器该变频器通过内置的 RS-485 接口以 Modbus RTU 格式进行通讯。 Modbus RTU 提供了访问变频器的控制字和总线参考值的能力。
Modbus 主站可以借助控制字来控制若干重要的变频器功能:
••
启动
以多种方式停止变频器:惯性停止快速停止直流制动停止正常(加减速)停止•••••
故障跳闸后复位以各种预置速度运转反向运转更改有效菜单
控制变频器的内置继电器
总线参考值通常用于速度控制。 此外还可以访问参数,读取其值,如果可能还可以将值写入其中。 借此可以使用一系列的控制选项,包括在使用变频器内部 PI 控制器时控制变频器的给定值。
136MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
VLT® HVAC 变频器设计指南7 RS-485 安装和设置7.7 网络配置
要在该变频器上启用 Modbus RTU,请设置下述参数:
参数号8-308-318-328-33参数名称协议地址波特率奇偶校验/停止位设置Modbus RTU1 - 2472400 - 115200偶校验,1 个停止位(默认)7.8 Modbus RTU 消息帧结构
7.8.1带有 Modbus RTU 的变频器控制器被设置为在 Modbus 网络上使用 RTU(远程终端设备)模式进行通讯,消息中的每个字节中都包含两个 4 位十六进制字符。 每个字节的格式如下所示。
起始位
数据字节
停止/奇偶校验
停止
7编码系统每个字节的位数8 位,二进制或十六进制,0-9,A-F。 在消息的每一个 8 位字段中都包括 2 个十六进制字符1 个起始位8 个数据位,最小有效位先发送1 个偶/奇校验位;如果无奇偶校验,则此位不存在1 个停止位(如果使用奇偶校验);如果无奇偶校验,则为 2 位错误检查字段循环冗余校验 (CRC) 7.8.2Modbus RTU 消息结构传输设备将 Modbus RTU 消息放入一个开始和结束位置已知的帧中。 这样,接收设备即可在消息开始处开始读取地址部分,确定该消息对哪台设备进行寻址(或所有设备,如果消息为广播的话),并了解消息的结束时间。 检测到部分消息,因而产生错误。 在每个字段中传输的字符必须使用从 00 到 FF的十六进制格式。 变频器会持续监视网络总线,即便在“静止”期间也是如此。 接收到第一个字段(地址字段)后,每个变频器或设备都会将其解码,以确定被寻址的设备。 编址为零的 Modbus RTU 消息是广播消息。 不允许响应广播消息。 典型的消息帧如下所示。
典型的 Modbus RTU 消息结构
开始时)T1-T2-T3-T4
地址8 位
功能8 位
数据N x 8 位
CRC 检查16 位
终止T1-T2-T3-T4
7.8.3启动/停止字段消息以一个静止段开始。此段至少为 3.5 个字符间隔。这可用所选网络波特率下的字符间隔的倍数来实现(显示为“启动”T1-T2-T3-T4)。所传输的第一个字段为设备地址。在传输完最后一个字符后,紧接着是一个类似的至少为 3.5 个字符间隔的段,它标志着消息的结束。在此段之后可以开始新的消息。必须将整个消息帧作为连续的数据流传输。如果在帧结束之前出现了超过 1.5 个字符间隔的静止段,则接收设备会丢弃不完整的消息,并假设下一字节为新消息的地址字段。类似地,如果新消息在上一条消息完成之后的 3.5 个字符间隔内便开始,则接收设备会将其视为上一条消息的延续。这会导致超时(从站无响应),因为对于该组合消息而言,最后的 CRC 字段中的值将无效。
MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
1377 RS-485 安装和设置7.8.4地址字段VLT® HVAC 变频器设计指南消息帧的地址字段包含 8 位。有效的从设备地址:0 – 247 范围内的十进制数。为单台从设备分配的地址:1 – 247 范围内的十进制数。(0 是为广播模式保留的,所有从站均能识别。)主站通过将从站地址放入消息的地址字段,对从站进行寻址。从站发送其响应时,会将自己的地址放在此地址字段中,以使主站了解哪个从站在进行响应。
7.8.5功能字段消息帧的功能字段包含 8 位。有效代码的范围为 1 - FF。功能字段用于在主站和从站之间发送消息。从主站向从属设备发送消息时,功能代码字段将通知从站要执行的操作类型。从站对主站进行响应时,会使用功能代码字段指示正常(无错)响应或发生了某种错误(称为异常响应)。对于正常响应,从站只重复原先的功能代码。对于异常响应,从站会返回一个代码。该代码相当于原始的功能代码,只不过其最大有效位被设为逻辑 1。此外,从站还将一个唯一的代码放入响应消息的数据字段中。这样即可通知主站发生了哪种错误,或异常的原因。另请参考 Modbus RTU 支持的功能代码和异常代码章节。
7.8.6数据字段数据字段是使用几组两个十六进制数字(范围在 00 至 FF 之间)构建的。这些都由一个 RTU 字符构成。从主站发送到从属设备的消息的数据字段包含其他信息,从站必须使用这些信息执行功能代码定义的操作。这可能包括线圈或寄存器地址、要处理的项目数和字段中实际的数据字节数等。
7 7.8.7CRC 检查字段在消息中包括一个错误检查字段,此字段的工作机制基于循环冗余校验 (CRC) 方法。CRC 字段可检查整条消息的内容。它的应用与用于消息的单个字符的任何奇偶校验方法均无关。CRC 值是通过传输设备计算的,后者将 CRC 作为最后一个字段附加在消息中。接收设备会在接收消息过程中重新计算CRC,并将计算值与 CRC 字段中接收到的实际值相比较。如果两个值不相等,则会导致总线超时。错误检查字段包含一个 16 位二进制值,该值由两个 8位字节组成。此步完成后,首先附加字段的低位字节,然后是高位字节。CRC 高位字节为消息中发送的最后一个字节。
7.8.8线圈寄存器编址在 Modbus 中,所有数据都是用线圈和保持寄存器来组织的。 线圈保持单个位,而保持寄存器则保持 2 字节字(即 16 位)。 Modbus 消息中的所有数据地址均以零为参考。 数据项的第一个项目编号被编址为零。 例如: 可编程控制器中的“线圈 1”在 Modbus 消息的数据地址字段中被编址为线圈0000。 线圈 127(十进制)被编址为线圈 007EHEX(十进制的 126)。
保持寄存器 40001 在消息数据地址字段中被编址为寄存器 0000。 功能代码字段已指定某个“保持寄存器”操作。 因此,“4XXXX”引用值是固有的。保持寄存器 40108 被编址为寄存器 006BHEX(十进制的 107)。
线圈编号1-1617-3233-4849-6465说明变频器控制字(请参阅下表)变频器速度或给定值的参照值范围为 0x0 – 0xFFFF (-200% ... ~200%)变频器状态字(请参阅下表)开环模式: 变频器输出频率闭环模式: 变频器反馈信号参数写入控制(由主到从)0 =1 =将参数变化写入变频器的 RAM将参数变化写入变频器的 RAM 和 EEPROM信号方向由主到从由主到从由从到主由从到主由主到从66-65536预留138MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
VLT® HVAC 变频器设计指南7 RS-485 安装和设置线圈010203040506070809101112131415160预置参考值 LSB预置参考值 MSB直流制动惯性停止快速停止锁定频率加减速停止不复位无点动加减速 1数据无效继电器 1 关继电器 2 关设置 LSB设置 MSB无反向1线圈33340控制未就绪变频器未就绪惯性停止无报警未使用未使用未使用无警告不在参考值下手动模式超出频率范围已停止未使用无电压警告不在电流极限内无热警告1控制就绪变频器就绪安全功能关闭报警未使用未使用未使用警告在参考值下自动模式在频率范围内运行未使用电压警告电流极限热警告无直流制动无惯性停止无快速停止无锁定频率开始时)复位点动加减速 2数据有效继电器 1 开继电器 2 开35363738394041424344454647反向48变频器控制字(FC 格式)变频器状态字(FC 格式)保持寄存器寄存器编号00001-0000600007000080000900010-0099001000-0199002000-0299003000-0399004000-04990...49000-499905000050010...5020050210说明预留最近来自 FC 数据对象接口的错误代码预留参数索引*000 参数组(参数 001 到 099)100 参数组(参数 100 到 199)200 参数组(参数 200 到 299)300 参数组(参数 300 到 399)400 参数组(参数 400 到 499)...4900 参数组(参数 4900 到 4999)输入数据:变频器控制字寄存器 (CTW)。输入数据:总线参考值寄存器 (REF)。...输出数据:变频器状态字寄存器 (STW)。输出数据:变频器主电路实际值寄存器 (MAV)。 7* 用于指定在访问带索引的参数时使用的索引号。
7.8.9如何控制变频器本节介绍了可以在 Modbus RTU 消息的功能字段和数据字段中使用的代码。 有关所有消息字段的完整介绍,请参考 Modbus RTU 消息帧结构章节。MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
1397 RS-485 安装和设置7.8.10Modbus RTU 支持的功能代码Modbus RTU 支持在消息的功能字段中使用下述功能代码:
功能读取线圈读取保持寄存器写入单个线圈写入单个寄存器写入多个线圈写入多个寄存器获取通讯事件计数器报告从站 IDVLT® HVAC 变频器设计指南功能代码1(十六进制)3(十六进制)5(十六进制)6(十六进制)F(十六进制)10(十六进制)B(十六进制)11(十六进制)功能诊断功能代码8子功能代码1210111213子功能重新启动通讯返回诊断寄存器清空计数器和诊断寄存器返回总线消息计数返回总线通讯错误计数返回总线异常错误计数返回从站消息计数7 7.8.11Modbus 异常代码14有关异常代码响应消息的结构的完整说明,请参考 Modbus RTU 消息帧结构中的“功能字段”部分。
Modbus 异常代码代码1名称非法功能含义查询中收到的功能代码对于该伺服设备(或从设备)来说是不允许的操作。 这可能是因为该功能代码仅适用于更新的设备,未在所选设备中实施。 这可能表明该伺服设备(或从设备)处于错误状态下,无法处理此类型的请求,原因可能是未进行配置,或未被要求返回寄存器值。2非法数据地址查询中收到的数据地址对于该伺服设备(或从设备)来说是不允许的地址。 更为具体来说,参照编号和传输长度的组合无效。 对于具有 100 个寄存器的控制器来说,偏差为 96,长度为 4 的请求会成功,偏差为 96 长度为 5 的请求则会产生异常 02。3非法数据值查询数据中包含的值对于该伺服设备(或从设备)来说是不允许的值。 这表明一个复杂请求的提示内容结构有问题,如隐含的长度不正确。 该错误并不特别表示为寄存器中的存储提供的数据项值超出了该应用程序的预期范围,因为 Modbus 协议不了解任何特定寄存器的任何特定值的特征。4从设备发生故障伺服设备(或从设备)尝试执行请求操作时发生不可恢复的错误。140MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
VLT® HVAC 变频器设计指南7 RS-485 安装和设置7.9 如何访问参数
7.9.1参数处理PNU(参数号)是从 Modbus 读/写消息中包含的寄存器地址转换而来的。参数号以(10 x 参数号)DECIMAL 的形式转换到 Modbus。
7.9.2数据存储线圈 65(十进制)可决定是将写入变频器的数据存储到 EEPROM 和 RAM(线圈 65 = 1),还是仅存储到 RAM 中(线圈 65 = 0)。
7.9.3IND数组索引在保持寄存器 9 中设置,使用它可以访问数组参数。
7.9.4文本块可以像访问其他参数那样访问以文本字符串形式存储的参数。文本块的最大长度为 20 个字符。在对某个参数的读请求中,如果请求的字符数超过该参数存储的字符数,则响应消息会被截断。在对某个参数的读请求中,如果请求的字符数少于该参数存储的字符数,则会用空格填充响应消息。
7 7.9.5转换因数有关各个参数的不同属性,请参阅默认值部分。由于参数值只能以整数形式传输,因此必须使用转换因数来传输小数。请参考参数部分。
7.9.6参数值标准数据类型
标准数据类型有 int16、int32、uint8、uint16 和 uint32。 它们以 4x 寄存器 (40001 - 4FFFF) 的形式存储。 使用功能 03HEX“读取保存寄存器”读取这些参数。使用以下功能可写入参数:对于 1 个寄存器(16 位),使用功能 6HEX“预置单个寄存器”;对于 2 个寄存器(32 位),使用功能10HEX“预置多个寄存器”。 可读取的长度范围为 1 个寄存器(16 位)到 10 个寄存器(20 个字符)。
非标准数据类型
非标准数据类型为文本字符串,以 4x 寄存器 (40001 – 4FFFF) 的形式存储。 使用功能 03HEX“读取保持寄存器”可读取这些参数,使用功能10HEX“预置多个寄存器”可写入这些参数。可读取大小范围为 1 个寄存器(2 个字符)最多到 10 个寄存器(20 个字符)。
MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
1417 RS-485 安装和设置VLT® HVAC 变频器设计指南7.10 示例
下述示例显示了各种 Modbus RTU 命令。如果发生错误,请参考“异常代码”部分。
7.10.1读取线圈状态(01 [十六进制]) 说明
该功能读取变频器中离散输出(线圈)的开/关状态。 读取操作从不支持广播。
查询
查询消息指定起始线圈和要读取的线圈数。 线圈地址从 0 开始,如线圈 33 的地址应为 32。
由从站设备 01 读取线圈 33-48 的请求(状态字)示例:
字段名称从站地址功能示例(十六进制)01(变频器地址)01(读取线圈)0020(十进制的 32)线圈 330010(十进制的 16)-7 起始地址,高位起始地址,低位点数,高位点数,低位错误检查 (CRC)响应
按照数据字段中每位一个线圈的形式,对响应消息中的线圈状态进行打包。 状态指示如下:1 = 开;0 = 关。 第一个数据字节的 LSB 包含在查询中寻址的线圈。 其他线圈跟在该字节的高位端之后,并按从“低位到高位”的顺序出现在后续字节中。
如果返回的线圈数量不是 8 的倍数,则将用零填充最后的数据字节中的其余位(向该字节的高位端填充)。 “字节数”字段指定数据的完整字节数。
字段名称从站地址功能字节数数据(线圈 40-33)数据(线圈 48-41)错误检查 (CRC)示例(十六进制)01(变频器地址)01(读取线圈)02(2 字节数据)0706(STW=0607 [十六进制])-注意
在 Modbus 中用显性偏移 -1 来访问线圈和寄存器。比如用“线圈 32”来访问线圈 33。
142MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
VLT® HVAC 变频器设计指南7.10.2强制/写入单个线圈(05 [十六进制])说明
该功能可强制写入某个线圈,使其为开或关。 广播时,此功能强制所有连接的从站均具有相同的线圈参考值。
7 RS-485 安装和设置查询
该查询消息指定将强制线圈 65(参数写入控制)。 线圈地址从 0 开始,如线圈 65 的地址应为 64。 强制数据 = 00 00HEX(OFF [关])或 FF00HEX(ON [开])。
字段名称从站地址功能线圈地址,高位线圈地址,低位强制数据,高位强制数据,低位错误检查 (CRC)示例(十六进制)01(变频器地址)05(写入单个线圈)0040(十进制的 64)线圈 65FF00(FF 00 = 开)-响应
正常响应是在强制线圈状态之后返回对查询的回复。
7示例(十六进制)0105FF000001-字段名称从站地址功能强制数据,高位强制数据,低位线圈数量,高位线圈数量,低位错误检查 (CRC)MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
1437 RS-485 安装和设置7.10.3强制/写入多个线圈(0F [十六进制])VLT® HVAC 变频器设计指南该功能强制一系列线圈中的每个线圈均为 ON(开)或 OFF(关)。 广播时,此功能强制所有连接的从站均具有相同的线圈参考值。
该查询消息指定对线圈 17 到 32(速度给定值)执行强制。
注意
线圈地址从 0 开始,如线圈 17 的地址应为 16。
字段名称从站地址功能线圈地址,高位线圈地址,低位线圈数量,高位线圈数量,低位字节数强制数据,高位(线圈 8-1)强制数据,低位(线圈 10-9)错误检查 (CRC)示例(十六进制)01(变频器地址)0F(写入多个线圈)0010(线圈地址 17)0010(16 个线圈)022000(参考值 = 2000 [十六进制])-7 响应
正常响应返回从站地址、功能代码、起始地址和强制线圈的数量。
字段名称从站地址功能线圈地址,高位线圈地址,低位线圈数量,高位线圈数量,低位错误检查 (CRC)示例(十六进制)01(变频器地址)0F(写入多个线圈)0010(线圈地址 17)0010(16 个线圈)-144MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
VLT® HVAC 变频器设计指南7.10.4读取保持寄存器(03 [十六进制])说明
该功能读取从站中保持寄存器的内容。
7 RS-485 安装和设置查询
查询消息指定起始寄存器和要读取的寄存器数。 寄存器地址从 0 开始,如寄存器 1-4 的地址应为 0-3。
示例:读取参数 3-03,最大参考值,寄存器 03030。
字段名称从站地址功能起始地址,高位起始地址,低位点数,高位点数,低位错误检查 (CRC)示例(十六进制)0103(读取保持寄存器)0B(寄存器地址 3029)05(寄存器地址 3029)0002 - (参数 3-03 为 32 位长,即 2 个寄存器)-响应
以每个寄存器两个字节的方式将响应消息中的寄存器数据打包,每个字节内的二进制内容均右对齐。 对于每个寄存器,第一个字节都包含高位的位,第二个字节都包含低位的位。
7例如:Hex 0016E360 = 1.500.000 = 1500 RPM。
字段名称从站地址功能字节数数据,高位(寄存器 3030)数据,低位(寄存器 3030)数据,高位(寄存器 3031)数据,低位(寄存器 3031)错误检查(CRC)示例(十六进制)0103040016E360-MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
1457 RS-485 安装和设置7.10.5预置单个线圈(06 [十六进制])说明
该功能将一个值预置到单个保持寄存器中。
VLT® HVAC 变频器设计指南查询
查询消息指定要强制的寄存器参考值。 寄存器地址从 0 开始,如寄存器 1 的地址应为 0。
示例:写入参数 1-00,寄存器 1000。
字段名称从站地址功能寄存器地址,高位寄存器地址,低位预置数据,高位预置数据,低位错误检查 (CRC)示例(十六进制)010603(寄存器地址 999)E7(寄存器地址 999)0001-7 响应
正常响应是对查询的重复,在传递寄存器内容之后会被返回。
字段名称从站地址功能寄存器地址,高位寄存器地址,低位预置数据,高位预置数据,低位错误检查 (CRC)示例(十六进制)010603E70001-146MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
VLT® HVAC 变频器设计指南7.10.6预置多个寄存器(10 [十六进制]) 说明
该功能将值预置到一系列的保持寄存器中。
7 RS-485 安装和设置查询
查询消息指定要预置的寄存器参考值。 寄存器地址从 0 开始,如寄存器 1 的地址应为 0。 下述请求示例对 2 个寄存器进行预置(设置参数 1-05 =738 [7.38 A]):
字段名称从站地址功能起始地址,高位起始地址,低位寄存器数量,高位寄存器数量,低位字节数写入数据,高位(寄存器 4: 1049)写入数据,低位(寄存器 4: 1049)写入数据,高位(寄存器 4: 1050)写入数据,低位(寄存器 4: 1050)错误检查 (CRC)示例(十六进制)01100419000204000002E2- 7响应
正常响应返回从属设备地址、功能代码、起始地址和预置的线圈数量。
字段名称从站地址功能起始地址,高位起始地址,低位寄存器数量,高位寄存器数量,低位错误检查 (CRC)示例(十六进制)011004190002-MG.11.B9.41 - VLT® 是 Danfoss 的注册商标
147
因篇幅问题不能全部显示,请点此查看更多更全内容