SINAMICS V20380-480V 3AC -15/+10 % 47-63Hz 标称功率 15kW 有 60 秒 150 % 过载 未过滤 I/O:4DI,2 DO,2 AI,1 个模拟输出 现场总线:USS/MODBUS RTU 安装有基本操作面板 保护:IP20/ UL 开放尺寸:D 240x207x173(宽x高x深)
西门子SINAMICS V20变频器,IP20 / UL 开放式,FSD,3AC380-480 V, 15,00 kW
订货号: 6SL3210-5BE31-5UV0
参数 | 数据类型 | 含义 |
---|---|---|
data_type | UInt | 映射到此数据区域的 MODBUS 数据类型的标识符: |
db | UInt | 映射的数据区编号,该 DB 必须是非优化 DB |
start | UInt | 映射到数据块中的 MODBUS 地址,从 0 开始 |
length | UInt | Bool 个数(对于data_type 1 或者 2),Word 个数(data_type 3 或者 4) |
表 1. Data_Area_Array 数组的元素及其含义
本例中,使用 TIA Portal V16,CPU1215C 配置 CM1241 RS422/485 模块作为Modbus RTU 主站,CPU1214C 配置 CM1241 RS422/485 模块作为 Modbus RTU从站,主站访问从站的数据块中的数据区域:
主站配置:在 OB1 中,拖入 Modbus_Comm_Load 指令和 Modbus_Master指令,MODE=0,DATA_ADDR=40006,DATA_LEN=5,如图 8 所示:
图 8. 主站调用 Master 指令
从站配置:在 OB1 中,拖入 Modbus_Comm_Load 指令和 Modbus_Slave 指令,参考图 4所示:
从站的背景 DB 中 Data_Area_Array 进行如图 9 所示配置:
图 9. CPU1214C Modbus_Slave 背景 DB 中 Data_Area_Array
Data_Area_Array[1]:data_type = 3,db = 3,start = 0,length = 5,,即DB3.DBW0-DB3.DBW8 对应 40001-40005。
Data_Area_Array[2]:data_type = 3,db = 4,start = 5,length = 5,,即DB4.DBW0-DB4.DBW8 对应 40006-40010。
Data_Area_Array[3]:data_type = 3,db = 5,start = 10,length = 5,,即DB5.DBW0-DB5.DBW8 对应 40011-40015。
Data_Area_Array[4]:data_type = 0,db = 0,start = 0,length = 0。
Data_Area_Array[5]:data_type = 3,db = 6,start = 15,length = 5,即DB6.DBW0-DB6.DBW8 对应 40016-40020,由于 Data_Area_Array[4]参数为空,Data_Area_Array[5] 参数失效。
在 CPU1214C 创建 4 个非优化 DB 块,DB3/DB4/DB5/DB6,如图 10所示:
图 10.CPU1214C 创建数据块
CPU1215C 的 Master 块读取 40006-40010 地址,对应 CPU1214C 的 DB4 块中的DB4.DBW0-DB4.DBW8 内容,Master 块读取到内容如图 11 所示:
图 11. 主站 CPU 读取到的数据
如果主站 Master 读取从站 Modbus 地址 40016,数据长度 5,如图 12所示:
图 12. 主站调用 Master 指令
由于从站 CPU1214C 没有 40016-40020 地址对应的数据区域,Master指令执行之后报错,如图 13 所示:
16#8383:请求帧中的数据地址无效。.
图 13. Master 指令执行报错
HR_Start_Offset
HR_Start_Offset 用于指定 Modbus 保持寄存器的起始地址,存储在 Modbus_Slave 背景数据块中,默认是0。
Modbus 保持寄存器地址从 40001 或 400001 开始。这些地址与保持寄存器的 PLC存储器起始地址对应。通过组态"HR_Start_Offset"变量,可以将 Modbus 保持寄存器的起始地址定义为除 40001 或400001 之外的其它值。
例如,如果保持寄存器被组态为起始于 MW100 并且长度为 100 个字(即 MB_HOLD_REG 设置为 P#M100.0WORD 100)。偏移量 20 可指定保持寄存器的起始地址为 40021 而不是 40001。低于 40021 和高于 40120的任何地址都将导致寻址错误。
HR_Start_Offset | 地址 | 小值 | 大值 |
---|---|---|---|
0 | Modbus 地址 | 40001 | 40100 |
S7-1200 地址 | MW100 | MW298 | |
20 | Modbus 地址 | 40021 | 40120 |
S7-1200 地址 | MW100 | MW298 |
例如,将 Modbus_Slave 放入程序段后,可以切换到先前的程序段,分配 HR_Start_Offset 值。该值必须在执行Modbus_Slave 前分配,如图 14 所示:
图 14. 从站的 Slave 编程