西门子S7-1200 6ES7234-4HE32-0XB0 AI4 / AQ2

   2024-10-01 200

SIMATIC S7-1200 SM 1234,AI 4x13 bit/AO 2x14 bit

订货号: 6ES7234-4HE32-0XB0

SIMATIC S7-1200,模拟输入/输出 SM 1234,4 个模拟输入/2 个模拟输出, +/-10V,14 位分辨率 或者 0(4)-20mA, 13 位分辨率

访问数据块中的数据区域,而不是直接访问 Modbus 地址

Modbus_Slave 指令版本 V4.0 以及 S7-1200 CPU 固件版本 V4.2 起,用户可访问数据块中的数据区域,而不用直接访问过程映像和保持寄存器。为此,在全局 DB 属性页中,必须取消选中"仅存储在装载存储器中和"优化块访问复选框。

如果 MODBUS 请求到达时,尚未定义相应功能代码的 MODBUS 数据类型的数据区域,请求会按之前的指令版本处理,即直接访问过程映像和保持性寄存器。

如果 MODBUS 请求到达时,已定义功能代码的 MODBUS 数据类型的数据区域,则 Modbus_Slave 指令会对此数据区域执行读写操作。具体是读操作还是写操作取决于作业类型。

单个 MODBUS 请求只能对一个数据区域进行读写操作。如果要读取覆盖多个数据区域的保持性寄存器,则需要多个 MODBUS 请求。

数据区域的定义规则如下:

多可以定义 8 个数据区,位于 Data_Area_Array[1..8] 中。

数据区数组元素定义必须连续,如果中间某数组元素定义无效,则后面的区域不生效。

如果在数据区定义了保持寄存器,则 MB_HOLD_REG 映射失效,如果在数据区定义了过程映像输出,则对应的 Q 区映射失效,如果在数据区定义了过程映像输入,则对应的 I 区映射失效,如果在数据区定义了输入寄存器,则对应的 AI 区映射失效。也就是说,如果在数据区内没有定义哪个区域,则原有的映射依然保留。

单个 MODBUS 请求只能对恰好一个数据区域进行读写操作。

每个字段元素 Data_Area_Array[x](其中 1 <= x <= 8)都是 MB_DataArea 类型的 UDT,结构参见表 1:

参数数据类型含义data_typedbstartlength
UInt

映射到此数据区域的 MODBUS 数据类型的标识符:
• 0:空字段元素或未使用数据区域的标识符。此时,db、start 和 length 的值无效。
• 1:过程映像输出(与功能代码 1、5 和 15 一起使用)
• 2:过程映像输入(与功能代码 2 一起使用)
• 3:保持寄存器(与功能代码 3、6 和 16 一起使用)
• 4:输入寄存器(与功能代码 4 一起使用)

UInt

映射的数据区编号,该 DB 必须是非优化 DB

UInt

映射到数据块中的 MODBUS 地址,从 0 开始

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 所示:



核心提示:西门子,S7-1200,模块
 
反对 0举报 0 收藏 0 打赏 0评论 0
 
同类新闻
  • 联系人:田子龙
  • 电话:15221760199
  • 地址:上海市松江区科技园区平原街880弄65号201
  • 邮件:271463402@qq.com
  • 手机:15221760199
我们的产品