西门子PLC 7288 SMART 200 系列大量现货 13922952859
siemens西门子PLC专注西门子PLC 7288系列 SMART 200系列现货销售
全国咨询热线:13922952859
当前位置: 首页 > 知识课堂 > 变频器知识

西门子变频器MODBUS通讯

时间:2021-05-13 10:45:29 作者:admin 点击:

概述

在 MODBUS 通讯中,只有主站可以发起通讯,从站应答。 主站可使用两种方式向从站 发送消息。 一种是单播模式(地址为 1 至 247),此模式下主站直接寻址一个从站;另 一种是广播模式(地址为 0),此模式下主站寻址所有从站。 当从站被寻址并收到消息后,可以通过功能代码得知要执行的任务。从站接收的某些数据 对应由功能代码定义的任务。 此外还包含一个用于错误检测的 CRC(循环冗余校验)码。 MODBUS 从站在接收并处理一个单播消息之后会发送应答,此前提是接收的消息中未检 测到错误。 如果发生处理错误,从站会发送错误消息进行应答。 消息中有如下固定的成 帧字符不可被更改:8 个数据位、1 个奇偶校验位以及 1 个或 2 个停止位。 支持的功能代码 SINAMICS V20 仅支持三种功能代码。 如果收到带有未知功能代码的请求,从站会返回 错误消息。 FC3 - 读保持寄存器 当接收的消息带有 FC = 0 x 03 时,则为 4 字节数据,即 FC3 有 4 字节数据: 2字节为寄存器的起始地址 2字节为寄存器数量 字节 1字节 2字节 3字节 4字节 5字节 6字节 7字节 8 地址 FC (0x03) 起始地址 寄存器数 CRC 高 低 高 低 高 低
变频器的响应 字节 1 字节 2 字节 3 字节 4 字节 5 ... 字节 N*2 - 1 字节 N*2 字节 N*2 + 1 字节 N*2 + 2 地址 FC (0x03) 字节数 寄存器 1 的值 ... 寄存器 N 的值 CRC 高 低 高 低 高 低
FC6 - 写单一寄存器 当接收的消息带有 FC = 0x06 时,则为 4 字节数据,即 FC6 有 4 字节数据: 2字节为寄存器的起始地址 2字节为寄存器值 字节 1字节 2字节 3字节 4字节 5字节 6字节 7字节 8 地址 FC (0x06) 起始地址 新寄存器值 CRC 高 低 高 低 高 低
变频器的响应 字节 1字节 2字节 3字节 4字节 5字节 6字节 7字节 8 地址 FC (0x06) 起始地址 新寄存器值 CRC 高 低 高 低 高 低
FC16 - 写多寄存器 当接收的消息带有 FC = 0x10 时,则为 5 + N 字节数据,即 FC16 有 5 + N 字节数据: 2字节为寄存器的起始地址 2字节为寄存器数量 1字节为字节计数 N字节为寄存器值 异常响应  如果在 MODBUS 请求处理时检测到错误,从站会返回请求的功能代码进行响应,但数据 域中只包含功能代码的最高位以及异常代码。 但是,在全局地址 0 上检测到的任何错误 都不会产生响应,因为所有从站不能同时进行响应。 如果在接收到的消息中检测到错误(例如,奇偶校验错误、CRC 错误等),从站不会向 主站发送响应。 请注意,如果收到带有 FC16 的请求且其中包含一个变频器无法执行的写指令(包括向零 条目中写入),从站即使发送异常响应也仍然会执行其他有效的写指令。 SINAMICS V20 支持以下 MODBUS 异常代码: 异常代码MODBUS 名称含义 01 非法功能代码 不支持的功能代码 – 仅支持 FC3、FC6 和 FC16 02 非法数据地址 查询无效地址。 03 非法数据值 识别到无效的数据值。 04 从站装置故障 从站装置在进行处理操作时发生不可恢复的 错误。
下表列出了异常代码所对应的错误情况: 错误描述异常代码 未知功能代码 01 读寄存器,不在范围内 02 写寄存器,不在范围内 02 过多寄存器(>125)的读请求 03 过多寄存器(>123)的写请求 03 消息长度不正确 03 向只读寄存器中写入 04 写寄存器,参数访问错误 04 读寄存器,参数管理器错误 04 向零条目中写入 04 未知错误 04
变频器基本设置 参数功能设置 P0010 调试参数 = 30: 恢复出厂设置 P0970 工厂复位 可能的设置: = 1: 所有参数(不包括用户默认设置)复位至默认 值 = 21: 所有参数以及所有用户默认设置复位至工厂复 位状态 说明: 参数 P2010、P2021、P2023 的值不受工厂 复位影响。 P0003 用户访问级别 = 3 P0700 选择命令源 = 5: RS485 上的 USS / MODBUS 工厂缺省值: 1(操作面板) P2010[0] USS / MODBUS 波特率 可能的设置: = 6: 9600 bps(工厂缺省值) = 7: 19200 bps = 8: 38400 bps ... = 12: 115200 bps P2014[0] USS / MODBUS 报文间断时间 [ms] 时间设为 0 时不发生故障(即看门狗被禁止)。 P2021 Modbus 地址 设置变频器的唯一地址。 范围: 1 至 247(工厂缺省值:1) P2022 Modbus 应答超时[ms] 范围: 0 至 10000(工厂缺省值:1000) P2023 RS485 协议选择 = 2: Modbus 工厂缺省值: 1(USS) 说明: 在更改 P2023 后,须对变频器重新上电。 在此过程中,请在变频器断电后等待数秒,确保 LED 灯熄灭或显示屏空白后方可再次接通电源。 如 果通过 PLC 更改 P2023,须确保所做出的更改已通 过 P0971 保存到 EEPROM 中。
参数功能设置 r2024[0] ... r2031[0] USS / MODBUS 错误统计 无论 P2023 中选择何种通讯协议,都可以报告 RS485 上的报文信息状态。 r2018[0...7] CO:通过 RS485 上的 USS / MODBUS 接收的 PZD 显示通过 RS485 上的 USS/MODBUS 接收的过程 数据。 P2019[0...7] CI:通过 RS485 上的 USS / MODBUS 发送的 PZD 显示通过 RS485 上的 USS/MODBUS 发送的过程 数据。 P2034 RS485 上的 MODBUS 奇偶校验 设置 RS485 上 MODBUS 报文的奇偶校验。 可能的设置: = 0: 无奇偶校验 = 1: 奇校验 = 2: 偶校验 P2035 RS485 上的 MODBUS 停止位 设置 RS485 上 MODBUS 报文中的停止位数。 可能的设置: = 1: 1 个停止位 = 2: 2 个停止位
映射表  SINAMICS V20 变频器支持两组寄存器(40001 至 40062、40100 至 40522),如下表 所示。 “访问类型”一列中的“R”、“W”、“R/W”分别代表读、写、读/写。 HSW(转速设定值)、HIW(实际转速)、STW(控制字)、ZSW(状态字)为控制数 据。 编程举例  以下程序为计算 MODBUS RTU 的 CRC 的示例。 unsigned int crc_16 (unsigned char *buffer, unsigned int length) { unsigned int i, j, temp_bit, temp_int, crc; crc = 0xFFFF; for ( i = 0; i < length; i++ ) { temp_int = (unsigned char) *buffer++; crc ^= temp_int; for ( j = 0; j < 8; j++ ) { temp_bit = crc & 0x0001; crc >>= 1; if ( temp_bit != 0 ) crc ^= 0xA001; } } }
参数定标  由于受到 MODBUS 协议中整数数据的限制,在发送变频器参数值之前有必要将其进行换 算。 通过定标可实现这一换算,参数定标是用一个系数乘以带有一位小数的参数值,从 而去除其小数部分。 具体的定标系数见上表。 BICO 参数 在参数处理的过程中会同时在后台进行 BICO 参数的更新。 由于受到寄存器值的限制, 只能向 BICO 参数中写入‘0’或‘1’。 这就表示 BICO 输入始终为静态值‘0’或‘1’。 而其先前 与另一参数的连接则会丢失。 读取 BICO 参数即返回当前的 BICO 输出值。 例如: MODBUS 寄存器号 40200。向该寄存器中写入值 0 或 1 即使其 BICO 输入 P0731 静态等于所写的值。 读取参数即返回 BICO 输出,该输出值存储于 r0747.0。 故障 满足以下三个条件时,变频器会显示故障 F72: P2014(USS/MODBUS 报文间断时间)参数值不等于0。 变频器启动后已从主站接收过程数据。 两次连续的过程数据报文接收的间隔时间超出P2014参数值。
标签: 概述 变频器 通讯 MODBUS 西门子