Modbus_Comm_Load数据块变量 下表显示了可在程序中使用的 Modbus_Comm_Load 背景数据块中的公共静态变量。 表格 4-164背景数据块中的静态变量 变量 数据类型 标准 说明 S7- 1200/15 00 S7- 300/40 0/ WinACICHAR_GAP Word 0 字符间的Zui长字符延迟时间。此参数以毫秒为单位指定,并且增加了所接收字符之间的预期周期。将此参数的相应位时间数 添加到 Modbus 默认值 35 位时间(3.5 字符时间)。RETRIES Word 2 返回“无响应”错误代码 0x80C8 之前主站执行的重复尝试次 数。 EN_SUPPLY_V OLTBool 0 启用对电源电压 L+ 缺失的诊断 MODE USInt 字节 0 工作模式 有效的工作模式包括: • 0 = 全双工(RS232) • 1 = 全双工 (RS422) 四线制模式(点对点) • 2 = 全双工 (RS 422)四线制模式(多点主站,CM PtP (ET 200SP)) • 3 = 全双工 (RS 422) 四线制模式(多点从站,CMPtP (ET 200SP)) • 4 = 半双工 (RS485) 二线制模式 1) LINE_PRE USInt 字节 0接收线路初始状态 有效的初始状态是: • 0 =“无”初始状态 1) • 1 = 信号 R(A)=5 V,信号 R(B)=0V(断路检测): 在此初始状态下,可进行断路检测。 仅可以选择以下项:“全双工 (RS422) 四线制操作(点对点 连接)”和“全双工(RS422) 四线制模式(多点从站)”。 • 2 = 信号 R(A)=0 V,信号 R(B)=5 V:此默认设置对应于空闲状态(无激活的发送操作)。在此初 始状态下,无法进行断路检测。
对 Modbus_Master或 Modbus_Slave 指令的背景数 据块的引用。 MB_DB 参数必须与 Modbus_Master 或Modbus_Slave 指令的(静态,在指令中不可 见)MB_DB 参数相连。 COM_RST IN/OUT --- BoolFALSE Modbus_Comm_Load 指令的初始化 将使用 TRUE 对指令进行初始化。随后会将 COM_RST 复位为FALSE。 注: 该参数仅适用于 S7-300/400 指令。 DONE OUT Bool FALSE如果上一个请求完成并且没有错误,DONE 位将变为 TRUE 并保持一个周期。 ERROR OUT Bool FALSE如果上一个请求完成出错,则 ERROR 位将变为 TRUE 并保持一个周期。STATUS 参数中的错误代码仅在 ERROR =TRUE 的周期内有效。 STATUS OUT Word 16#700 0 错误代码(请参见错误消息 (页 6186))执行 Modbus_Comm_Load 以对 Modbus RTU 协议的端口进行组态。为 Modbus RTU 协议组态完端口后,它只能由 Modbus_Master 指令或 Modbus_Slave 指令使用。 必须运行Modbus_Comm_Load 来完成将用于 Modbus 通信的每个通信端口的组态。必须为 使用的每个端口分配唯一的Modbus_Comm_Load 背景数据块。如果需要更改数据传输速率 或奇偶校验等通信参数,或者网络已经恢复,只需运行Modbus_Comm_Load。 例如,当在程序中添加 Modbus_Master 或 Modbus_Slave指令时,将自动为指令分配背景 数据块。需要将 Modbus_Comm_Load 指令的 MB_DB 参数连接到Modbus_Master 或 Modbus_Slave 指令的 MB_DB 参数。1) 使用 PROFIBUS 电缆连接 CM1241 的 RS485 时所需的设置 指令版本 版本 3.1 的功能与版本 3.0 完全相同,本次版本升级仅仅体现在内部措施方面。Modbus_Master: 作为 Modbus 主站进行通信 (S7-1200, S7-1500) 说明 使用 CM1241自模块的固件版本 V2.1 起,才能通过 CM1241 使用该指令。说明 Modbus_Master 指令可通过由Modbus_Comm_Load 指令组态的端口作为 Modbus 主站进 行通信。当在程序中添加 Modbus_Master指令时,将自动分配背景数据块。 Modbus_Comm_Load 指令的 MB_DB 参数必须连接到 Modbus_Master指令的(静态) MB_DB 参数。 说明 无法为 Modbus_Master 指令的背景数据块激活保持 (Retain)。 参数 参数声明 数据类型 标准 说明 S7- 1200/15 00 S7- 300/400 / WinAC REQ IN Bool FALSEFALSE = 无请求 TRUE = 请求向 Modbus 从站发送数据 MB_ADD R IN UInt Word ‑ ModbusRTU 站地址: 标准地址范围(1 到 247 以及 0 用于 Broadcast) 扩展地址范围(1 到 65535 以及 0,用于 Broadcast) 值 0 为将报文广播到所有 Modbus 从站预留。广播仅 支持 Modbus 功能代码05、06、15 和 16。 MODE IN USInt Byte 0 模式选择:指定请求类型(读取、写入或诊断)。下 面的Modbus 功能表中提供了更多信息。 DATA_AD DR IN UDInt DWord 0 从站中的起始地址:指定在 Modbus从站中访问的数 据的起始地址。下面的 Modbus 功能表中列出了有效 地址。 DATA_LE N IN UInt Word 0数据长度:指定此指令将访问的位或字的个数。下面 的 Modbus 功能表中列出了有效长度。 COM_RST IN/OUT ---Bool FALSE Modbus_Master 指令的初始化 将使用 TRUE 对指令进行初始化。随后会将 COM_RST 复位为FALSE。 注: 该参数仅适用于 S7-300/400 指令。参数 声明 数据类型 标准 说明 S7- 1200/15 00 S7-300/400 / WinAC DATA_PT R IN/OUT Variant Any ‑数据指针:指向要进行数据写入或数据读取的标记或 数据块地址。 自指令版本 V3.0 起:该参数可指向优化存储区。在优化存储区中,允许使 用以下数据类型的单个元素或数组:Bool, Byte, Char, Word,Int, DWord, DInt, Real, USInt, UInt, UDInt, SInt,WChar。所有其它数据类型都会导致出 现错误消息 16#818C。 DONE OUT Bool FALSE如果上一个请求完成并且没有错误,DONE 位将变为 TRUE 并保持一个周期。 BUSY OUT Bool ‑ • FALSE –Modbus_Master 无激活命令 • TRUE – Modbus_Master 命令执行中 ERROR OUT BoolFALSE 如果上一个请求完成出错,则 ERROR 位将变为 TRUE 并保持一个周期。STATUS 参数中的错误代码仅在 ERROR= TRUE 的周期内有效。 STATUS OUT Word 0 错误代码(请参见错误消息 )Modbus 主站数据块中的变量下表显示了可在程序中使用的 Modbus_Master 背景数据块中的公共静态变量。 表格 4-165 背景数据块中的静态变量 变量数据类 型 标准 说明 Blocked_Proc_Timeout Real 3.0 在“激活”状态移除此实例前,等待受阻的Modbus 主站实 例的持续时间(以秒为单位)。例如,如果输出主站请求, 随后在其完全结束请求之前,程序停止并调用主站功能,则可能发生这种情况。时间值必须大于 0 秒而小于 55 秒,以 避免发生错误。 另请参见“Modbus-Master通信规则”和“使用不同的参数 设置调用 Modbus_Master 指令”。 Extended_Addressing BoolFALSE 将从站地址组态为单字节或双字节。 • FALSE = 1 字节地址;0 到 247 • TRUE = 2字节地址(对应于扩展地址); 0 到 65535 Compatibility_Mode 1) Bool FALSE 对于Modbus,使用 Modbus RTU 驱动程序 的 CP 341、 CP 441-2 和 ET200S 1SI,以及 ET 200S 1SI 的兼容模式 默认值为 0。 • FALSE = 根据 Modbus规范,不兼容 • TRUE = 兼容 – 对于 FC1 和 FC2:从帧中读取的数据逐字写入访问的 CPU 存储器内,并逐字节替换。如果要传输的位数不是 16 的倍数,那么不相关的位将 在Zui后一个字中设置为空值。 – 对于FC15:要传输的字从访问的存储器中逐字读取并 逐字节写入发送帧。 如果要传输的位数不是 8 的倍数,那么Zui后一个字节中不相关的位将从访问的存储器中读取,并输入到发 送帧中。 MB_DB MB_BAS E - Modbus_Comm_Load 指令的MB_DB 参数必须连接到 Modbus_Master 指令的此 MB_DB 参数。 1) 点对点通信模块会根据 Modbus规范中的定义进行响应。对于 Modbus,要保留与 CP 341, CP 441‑2 和ET 200SP 1SI 一样的响应,使用“Compatibility_Mode”参数。 程序可以向Blocked_Proc_Timeout 和 Extended_Addressing 变量中写入值来控制 Modbus主站的操作。