技术论坛

 【分享】Modbus通信访问V20变频器所有参数

返回主题列表
作者 主题
驱动草根
侠士

经验值:1878
发帖数:125
精华帖:5
楼主    2020-12-14 21:56:20
主题:【分享】Modbus通信访问V20变频器所有参数

在小型自动化系统中,Modbus 通信有较广泛的应用。西门子SINAMICS V20 系列变频器支
持基于RS485 的Modbus RTU 通信。
通过西门子的USS 通信协议,上位机可以直接访问V20 变频器的所有参数。而V20 的
Modbus 协议目前还不支持所有变频器参数的直接访问,仅常用参数可以直接通过独立的寄存
器地址访问。但是通过几个特殊的寄存器地址,可以实现对V20 所有参数的访问。
V20 Modbus 寄存器映射表中包含可以通过Modbus RTU 访问的寄存器及其对应的变频器参
数号。在映射表的末尾,有549~558 几个寄存器,通过它们可以间接访问所有变频器参数。


 

具体步骤如下:
1. 用FC16 功能码(写多个寄存器)向寄存器549 写入要访问的参数号,向寄存器550
写入要访问的参数下标。
2. 如果是要修改变频器参数值,则通过FC16 功能码向寄存器553 和554 写入参数值。
如果是要读取变频器参数值,则通过FC3 功能码读取寄存器557 和558 的值。

二、实例:S7-200 SMART + V20
V20 变频器通信相关参数设置如下:

 初始化程序用于初始化Modbus 通信,设置通信波特率为9600bps,偶校验,采用PLC 集成
RS485 端口,1000ms 响应时间。

调用一个MBUS_MSG 程序块,发送一帧请求报文,用于写入要访问的变频器参数号和下标。

 调用一个MBUS_MSG 程序块,发送一帧请求报文,用于写入要修改的变频器参数值。

 调用一个MBUS_MSG 程序块,发送一帧请求报文,用于读取变频器参数值。

 三、报文分析
实例1. 修改V20 参数值p2201[0]=65.5%
步骤1:向VW10 写入参数号2201,向VW12 写入参数下标0,将V1.0 修改为1 发送一帧报
文。用状态表实现如下:

 

步骤2:向VD20 写入浮点数65.5,将V2.0 修改为1 发送一帧报文。用状态表实现如下:

 此时查看变频器p2201[0]参数,发现已经被修改为65.5%。
实例2. 读取V20 参数值p1070[1]
步骤1:向VW10 写入参数号1070,向VW12 写入参数下标1,将V1.0 修改为1 发送一帧报
文。用状态表实现如下:

 

步骤2:将V3.0 修改为1,发送报文从寄存器557, 558 读取参数值,结果存放在VW30 和
VW32 中。用状态表实现如下:

 

从变频器响应报文可以看到,读取回的参数值高位字为755,低位字为1,即755.1. 查看变频
器p1070[1]参数,实际数值也是755.1.

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。