正在处理发送指令时,DONE 和 ERROR 输出处于 FALSE 状态。发送指令结束时,DONE 或ERROR 输出中会有一个设为 TRUE 并保持一个周期,以指示发送指令的状态。当 ERROR 的 状态为 TRUE 时,可以评估STATUS 输出中的错误代码。 通信接口接受发送数据时,指令输出状态 16#7001。如果 CM 仍在发送,随后执行的Send_P2P 输出值 16#7002。发送指令结束时,CM 输出发送指令状态 16#0000(如果未发 生错误)。随后执行的Send_P2P (REQ = 0) 输出状态 16#7000(空闲)。 下图显示输出值与 REQ之间的关系。它的假设条件是周期性调用指令检查发送过程的状态 (由 STATUS 值指示)。参数 声明 数据类型 默认值 说明 S7-1200/ 1500 S7- 300/400/ WinAC UNIVERS AL 1) OUT Bool --- FALSE 在CPU 和通过 PORT 指定的 CM 之间进行数据通信 的类型: FALSE:性能优化(周期性) • 接收帧Zui多 24 个字节 •发送帧Zui多 30 个字节 TRUE:Universal(非周期性) • 根据 CM 将帧长度限制为 1、2 或 4 KB DONEOUT Bool FALSE 如果上一个请求无错完成,将变为 TRUE 并保持一 个周期 ERROR OUT Bool FALSE如果上一个请求有错完成,将变为 TRUE 并保持一 个周期 STATUS OUT Word 16#7000 错误代码(请参见错误消息) 1) 库版本 V4.0 提供 有关通用参数的其它信息,请参见“用于自由口操作的通用参数。
使用 BUFFER 和 LENGTH参数进行通信操作 (S7-1200, S7-1500) 为 Send_P2P 交互 BUFFER 和 LENGTH 参数Send_P2P 指令发送的Zui小数据大小为 1 字节。 调用期间,当 LENGTH 参数中传递“0”时,BUFFER参数会指定要发送数据的大小。对此,变 量的规格足够。无法对 BUFFER 参数使用 Bool 数据类型或 Bool类型的数组。如果要传输大量数据,我们建 议对阵列或结构数据类型进行映射。 表格 4-155 BUFFER 参数 BUFFER 说明基本数据类型 发送时:LENGTH 值必须包括此数据类型的字节大小。 示例:对于 Word 值,LENGTH 必须为 2。对于DWord 值或 Real 值,LENGTH 必须为 4。 结构 如果未激活性能优化选项: • 对于优化存储器:允许的Zui大BUFFER 长度为 1024 Byte;否则,根据模块的不同,允 许的Zui大长度为 4 KB。 • 传输时,如下要求适用:LENGTH值可以包括小于结构完整字节长度的字节大小;这 种情况下,只发送 BUFFER 的第一个 LENGTH 结构字节。如果激活了性能优化选项: • BUFFER 允许的Zui大长度为 30 字节。 Array 对于优化存储器:如果数组数据类型不等于Byte、Word 或 DWord,则允许的Zui大缓冲 区长度为1024 字节。如果存储器未经过优化,则根据数据结构的不同,传输的Zui大缓 冲区长度可达 4 KB,与数据结构无关。对于发送:LENGTH 值可包括小于数组完整字节长度的字节大小,其中,此字节大小是 数据元素字节大小的倍数。示例:Word类型的数组的 LENGTH 参数必须是 2 的倍数,而 对 Real 类型的数组来说必须是 4 的倍数。 例如,如果 BUFFER包括一个具有 15 个 DWord 元素(总计 60 字节)的数组并指定 LENGTH = 20,则传输数组前 5 个DWord 元素。如果 LENGTH 未指定或值为 0,则传输 整个数组。 String LENGTH参数包括要发送的数字或字符。只传输 String 的字符。不发送具有Zui大和实际 String 长度的字节。 表格 4-156LENGTH 参数 LENGTH 说明 = 0 传送 BUFFER 指定的存储区的完整内容。 如果 BUFFER指向字符串,则除包含Zui大长度和实际长度的字节外,将传送 全部字符串内容。 > 0 传送 BUFFER指定的存储区的长达组态长度的内容。下图显示,如果脉冲在 REQ 电平线上处于待定状态(持续一个周期)以触发发送指令,DONE 和STATUS 参数为何只对一个周期有效。Receive_P2P:接收数据 (S7-1200, S7-1500) 说明 使用CM1241 自模块的固件版本 V2.1 起,才能通过 CM1241 使用该指令。 说明 Receive_P2P指令(使用点对点通信接收数据)用于检查 CM 中接收到的帧。如果帧可用,则 将其从 CM 传输至 CPU。在 STATUS参数中指示接收错误。指定用于以下通信的通信模块: • 对于 S7-1500/S7-1200:设备组态中的“硬件标 识符”。符号端口名称在 PLC 变量表的“系统常 数”(System constants) 选项卡中指定并可应用于 此处。 • 对于S7-300/S7-400:设备组态中的“输入地 址”。 在 S7-300/400/WinAC 系统中,在 HWCN 中分配的输入地址中分配端口参数。 BUFFER IN Variant Any 0 此参数指向接收缓冲区的起始地址。此缓冲区必须足够大,以便接收Zui大帧长度。 注意: • 不支持布尔数据或布尔字段。 • 如果接收缓冲区在优化存储区中,则接收数据的 Zui大允许长度为1024 字节。 例外:支持的字节数组、字或双字的长度Zui大为 4096 字节。 • 如果接收缓冲区是字符串或宽字符串,则接收数据将写入字符串的内容中,并据此设置字符串当 前长度。 更多信息,请参见“使用 BUFFER 和 LENGTH 参数 进行通信操作(页 6108)” UNIVERS AL 1) OUT Bool --- FALSE 在 CPU 和通过 PORT 指定的CM 之间进行数据通信 的类型: FALSE:性能优化(周期性) • 接收帧Zui多 24 个字节 • 发送帧Zui多 30 个字节TRUE:Universal(非周期性) • 根据 CM 将帧长度限制为 1、2 或 4 KB NDR OUT Bool FALSE如果新数据可用且指令无错完成,则为 TRUE 且保 持一个周期。指令的初始化 将使用 TRUE 对指令进行初始化。随后会将COM_RST 复位为 FALSE。 ERROR OUT Bool FALSE 如果指令完成但出现错误,则为 TRUE 且保持一个周期。 STATUS OUT Word 16#7000 错误代码(请参见错误消息 (页 6120)) LENGTH OUTUInt Word 0 接收到的帧的长度(以字节为单位) 更多信息,请参见“使用 BUFFER 和 LENGTH 参数 进行通信操作(页 6108)”。 1) 自库版本 V4.0 开始提供 有关通用参数的其它信息,请参见“用于自由口操作的通用参数(页 6089)”。 当 ERROR 的状态为 TRUE 时,可以评估 STATUS 输出中的错误代码。STATUS 值提供CM 中 终止接收操作的原因。 它通常是正值,表示接收操作成功且已检测到帧标准。 如果 STATUS值为负(十六进制值的Zui高有效位置位),则接收操作因出错而终止,例如奇 偶效验、帧或溢出错误。 每个通信模块均可缓冲模块特定的帧数。如果CM 中存在多个帧,则 Receive_P2P 指令输出 Zui早存在的帧 (FIFO)。 Receive_Reset:清除接收缓冲区(S7-1200, S7-1500) 说明 使用 CM1241 自模块的固件版本 V2.1 起,才能通过 CM1241使用该指令。在此输入的上升沿开始向 CM 传输数据。 PORT IN PORT (UInt) Word 0指定用于以下通信的通信模块: • 对于 S7-1500/S7-1200:设备组态中的“硬件标 识符”。 符号端口名称在 PLC变量表的“系统常 数”(System constants) 选项卡中指定并可应用于 此处。 • 对于S7-300/S7-400:设备组态中的“输入地 址”。 在 S7-300/400/WinAC 系统中,在 HWCN 中分配的输入地址中分配端口参数。 COM_RST IN/OUT --- Bool FALSE 指令的初始化 将使用 TRUE对指令进行初始化。随后会将 COM_RST 复位为 FALSE。 DONE OUT Bool FALSE TRUE保持一个周期意味着上次请求无错完成。 ERROR OUT Bool FALSE TRUE 意味着上次请求有错完成。如果此输出为TRUE,则 STATUS 输出将包含相应的错误代码。 STATUS OUT Word 16#7000 错误代码(请参见错误消息(页 6120)) 有关通用参数的其它信息,请参见“用于自由口操作的通用参数 (页 6089)”。Signal_Get: 读取状态 (S7-1200, S7-1500) 说明 使用 CM1241 自模块的固件版本 V2.1起,才能通过 CM1241 使用该指令。Signal_Get 指令(获取 RS232 信号)会读取 RS232伴随信号的当前状态并在相应指令输出 中显示这些状态。 说明 限制 • 此指令仅适用于 CM RS232 BA 和RS232 HF。 • 如果为操作模式设置了 RS232C,该指令也可适用于 CM PtP (ET200SP)。 参数 参数声明 数据类型 默认值 说明 S7- 1200/ 1500 S7- 300/400/ WinAC REQ IN Bool FALSE在此输入的上升沿开始向 CM 传输数据。 PORT IN PORT (UInt) Word 0 指定用于以下通信的通信模块: • 对于S7-1500/S7-1200:设备组态中的“硬件标 识符”。 符号端口名称在 PLC 变量表的“系统常 数”(Systemconstants) 选项卡中指定并可应用于 此处。 • 对于 S7-300/S7-400:设备组态中的“输入地 址”。 在S7-300/400/WinAC 系统中,在 HWCN 中分配 的输入地址中分配端口参数。 NDR OUT Bool FALSE如果已经读取 RS232 伴随信号并且指令无错完成, 则为 TRUE 并保持一个周期。 ERROR OUT Bool FALSE如果指令完成但出现错误,则为 TRUE 且保持一个 周期 STATUS OUT Word 16#7000 错误代码(请参见错误消息(页 6120)) DTR OUT Bool FALSE 数据设备就绪,模块就绪(输出) DSR OUT BoolFALSE 数据设备就绪,通信站就绪(输入) RTS OUT Bool FALSE 发送请求,模块发送准备就绪(输出) CTS OUTBool FALSE 发送准备就绪,通信站可以接收数据(输入)