16
发送 1 到 12 个参数值(每个参数值都是 1 个双字),并从伙伴接收当前在本地有效的参数值。
n 取 1 检查由 FC Safe 执行。
提示 所需 FC Safe使用 Par12D_S 时,只能在循环程序的最后链接了 FC Safe 时,才能传送数据,请参见FC Safe部分。 |
每个双字的内容可以是双字(DWORD、DINT、REAL)格式的值,也可以是共同组成双字的其它数据类型的混合,例如:
4 个字节
2 个字
2 个字节 + 1 个字
另请参见下文的“注意字边界”部分。
为“ParameterInput”参数*要传送的数据区域时,应以 Any 指针的形式*。此数据区域必须在数据块中,并且其长度可以在 1 到 12 个双字范围内变化。要发送到伙伴的数据区域或在伙伴处本地输入的参数值,将从伙伴返回,并在“ReturnedParameter”参数中输出。此输出区(Any 指针)也必须在数据块内,其长度必须与为“ParameterInput”所*的长度相匹配。
通常会分别为“ParameterInput”和“ReturnedParameter”*数据区域,以方便识别较新输入的内容以及本地有效的内容。不过,也可以为这两个参数*同一个数据区域,这样两个数据区域 ** 重叠,因此始终匹配。但这种情况下,无法再区分较新输入内容与本地有效内容。如果当不需要镜像返回值,则*组态“ReturnedParameter”。
即使分别*“ParameterInput”和“ReturnedParameter”的数据区域,仍可确保“ParameterInput”输入区域与“ReturnedParameter”的镜像返回值始终同步。可以借助“ApplyRemoteParamMan”输入酌情手动执行此操作,或将“ApplyRemoteParamAuto”参数设置为 TRUE 以自动执行。
也可以在接收参数的伙伴对象中本地设置参数。这种情况下必须在“Local”输入参数中将伙伴对象设置为“local”(请参见块 Par12D_R)。“Local”输入参数的当前状态由伙伴对象报告,并在“LocalOperation”输出中显示。只要伙伴对象设置为“local”,就不会接受其他节点的参数。
可以通过以下参数触发由“ParameterInput”定义的数据区域的发送操作:
EnterInput
如果通过硬件(数字和模拟输入模块)输入在“ParameterInput”中定义的数据区域,则应使用该输入参数。然后,必须通过数字输入将“EnterInput”连接到控制台或面板上的按钮。按下此按钮即可触发输入值的传送操作。
将传送由“ParameterInput”*的整个数据区域。
ContinuousEnterFunct
如果使用软件输入参数,例如通过操作员面板 (OP),则将此参数设置为 TRUE。系统会经常检查更改。当在“ParameterInput”定义的数据区域中检测到更改时,将传送自上次传输以来发生更改的数据双字。
只传送发生更改的数据(参见下文注释“发生更改的数据区域”)。
Release
如果使用软件输入参数,例如通过 OP,则使用此输入参数。然后应使用 OP 上的功能键设置“Release”输入。当在“Release”输入检测到信号 1 时,即会检查更改。将传送“ParameterInput”所*的数据区域中自上次传输以来发生更改的数据双字。
只传送发生更改的数据(参见下文注释“发生更改的数据区域”)。
RetransmitAll
如果使用软件输入参数,例如通过 OP,则使用此输入参数。然后应使用 OP 上的功能键设置“RetransmitAll”输入。当在“RetransmitAll”输入检测到信号 1 时,将传送在“ParameterInput”中组态的数据区域,而不检查更改。
将传送由“ParameterInput”*的整个数据区域。
提示 发生更改的数据区域如果传送的只是发生更改的数据区域,则该数据区域包括检测到更改的*一个和最后一个双字,以及位于这两个双字之间的所有字(即使这些字未发生更改也包括在内)。 示例: 注意字边界如果传送的只是发生更改的数据,且数据区域包含双字格式的值,应确保双字值实际位于要采集的数据区域的一个双字之中(较多 12 个双字)。 由于仅在特定字中发生了更改,因此如果分布于两个连续的数据双字上,则可能仅传送双字值中的一个字(高位或低位字)。在这种情况下,字缺失可能导致接收伙伴发生数据错误(适用于 ST7cc,不适用于 S7 CPU)。 |
提示 使用标准访问的 DB该块具有“ANY”类型的参数。因此,禁用 DB 属性中的“优化块访问”(Optimized block access) 属性。 |
参数: | PartnerNo PartnerObjectNo Enabled |
有关说明,请参见重现参数部分。 |
参数: | EnterInput | |
声明: | INPUT | |
数据类型: | BOOL | |
取值范围: | TRUE / FALSE | |
默认值: | FALSE | |
地址范围: | 输入 | I 0.0 ... I n.7 |
存储器位 | M 0.0 ... M n.7 | |
数据位 | DBm.DBX 0.0 ... n.7 | |
说明: | 在输入端输入 可通过此输入的信号沿变化触发“ParameterInput”输入的参数值传送操作。 只有“ContinuousEnterFunct”= FALSE 时才考虑“EnterInput”中的信号变化。如果满足此条件,沿变化 0 → 1 的结果是采用并传送“ParameterInput”中输入的参数值。没有更改检查。始终传送由“ParameterInput”*的整个数据区域。 这种触发传送操作的方法适用于通过硬件输入,例如通过控制台或控制面板。有关详细信息和相关参数,请参见上文“功能”部分。 如果不需要此参数,保留不处理即可。 | |
数据检查: 如果在 n 取 1 检查期间没有检测到错误,并且设置了*使能存储器位,则传送读入的参数。在经过所选的设定时间延迟后,由 FC Safe 自动设置(参见 FC Safe,“InputDelayTime”参数)。仅当至少一个 OB1 循环内在 EnterInput 上检测到信号 0 时,FB 才会再次读入输入区。 如果在硬件输入检测到 n 取 1 错误,则不再处理输入的参数。仅当之前在一个 OB1 循环的时长内未检测到通过命令、设定值或参数块进行了硬件输入,才能再次读入新参数。 FB 在诊断缓冲区中输入检测到的 n 取 1 错误(事件 ID B172)。只要错误仍然存在,就可以通过 FC Safe 的“InputError”输出来指示错误状态(请参见 FC Safe,“InputError”参数)。 | ||
参数: | ContinuousEnterFunct |
声明: | INPUT |
数据类型: | BOOL |
取值范围: | TRUE / FALSE |
默认值: | FALSE |
说明: | 连续检查更改 使用此参数,可决定是否连续读入“ParameterInput”输入的参数值并检查其更改。检查更改的方式是与最后传送的值进行比较。只发送发生更改的值。如果检测到多个更改,块将发送所有发生更改的参数值所在的数据区域。 传送的已更改数据区域包括检测到更改的*一个和最后一个双字,以及位于这两个双字之间的所有字(即使这些字未发生更改也包括在内)。 即使参数条目未更改,也可以通过“RetransmitAll”输入(见下文)触发新的参数值传送操作。 这种触发传输操作的方法适用于由软件在 ParameterInput 数据区域输入参数值,但对于从操作员面板输入参数也同样适用。 有关详细信息,请参见上文的“功能”部分。 如果不需要此参数,保留不处理即可。 |
数据检查: 只有在 n 取 1 检查期间没有检测到错误时,才传输读入的参数。 使用硬件输入(参见 EnterInput)时,必须先检测到一个空循环,然后才能从块传送新参数值。 使用软件输入时,可以在每个 OB1 循环内传送新参数值,前提是在该循环内不存在未决的另一个块的其他软件条目。否则,会检测到 n 取 1 错误。 如果在软件输入期间检测到 n 取 1 错误,将不再处理输入的参数。FB 在诊断缓冲区中输入检测到的 n 取 1 错误(事件 ID B172)。 仅当之前在 CPU 中一个 OB1 循环的时长内未检测到通过命令、设定值或参数块进行了软件输入时,才能再次读入新参数。 |
参数: | ApplyRemoteParamAuto |
声明: | INPUT |
数据类型: | BOOL |
取值范围: | TRUE / FALSE |
默认值: | FALSE |
说明: | 自动将输入区与返回区同步。 使用该参数,会将“ReturnedParameter”镜像返回区的所有参数值复制到“ParameterInput”区。 除此之外,还向通信 DB 的发送邮箱写入镜像返回参数值。 这样,当从伙伴对象 (Par12D_R) 接收到新数据时,始终都会执行自动同步。 如果不需要此参数,保留不处理即可。 |
参数: | ParameterInput |
声明: | INPUT |
数据类型: | ANY |
取值范围: | 请参见地址范围 |
默认值: | P#P 0.0 VOID 0 |
地址范围: | P#DBxx.DBX yy.0 DWORD zz xx:数据块编号 1...32767 yy:字节编号 zz:双字的编号 1...12(从字节编号 yy 开始)。 示例: 输入指针时,不要忘记点号和空格! 请注意,不允许使用默认值(空指针)。必须*具有真实地址的指针。 |
说明: | 参数输入区。 ANY 指针对要采集的参数值所在的数据区域进行寻址。此数据区域必须在数据块中,并且其长度可以在 1 到 12 个数据双字范围内变化。 有关内容和格式的信息,请参见上文中的“功能”部分。 如果参数分配不正确(空指针、长度 > 12、数据区域不是 DB),则会在诊断缓冲区中输入错误消息(事件 ID B114,[Info2/3] = 11)。CPU 不切换为 S** 模式。然后,在更正错误之前,不再对该数据块进行处理。 ParameterInput 中的参数处理方式取决于这些参数是硬件条目还是软件条目,以及触发此数据区域的传送操作的方式。更多相关信息,请参见上文中的“功能”部分。 |
参数: | ReturnedParameter |
声明: | OUTPUT |
数据类型: | ANY |
取值范围: | 请参见地址范围 |
默认值: | P#P 0.0 VOID 0 |
地址范围: | P#DBxx.DBX yy.0 DWORD zz xx:数据块编号 1...32767 yy:字节编号 zz:双字的编号 1...12(从字节编号 yy 开始)。 示例: 输入指针时,不要忘记点号和空格! 请注意,不允许使用预设值(空指针)。必须*具有真实地址的指针。 |
说明: | 参数输出区 接收参数值的伙伴对象将返回有效参数值报告。这些值将显示在“ReturnedParameter”输出中。如果伙伴对象设置为“local”且有新的输入,则此处会由“ReturnedParameter”指示本地更改的参数。 ANY 指针所定义的数据区域中的已接收参数值将被输出。此数据区域必须在数据块中,并且其长度可以在 1 到 12 个数据双字范围内变化。且必须等于为 ParameterInput 设置的长度。 启动本地或伙伴 CPU 后,或在恢复连接后,自动一般请求可确保在“ReturnedParameter”中指示本地有效的较新参数。 如果不需要此参数,保留不处理即可。 如果参数设置不正确(数据区域不是数据块,长度大于 12 个数据双字或与 ParameterInput 设置的长度不等),则会在诊断缓冲区中输入相应的错误消息(事件 ID B114,[Info2/3] = 11)。CPU 不切换为 S** 模式。但在更正错误之前,不会再对该 FB 进行处理。 |
参数: | LocalOperation | |
声明: | OUTPUT | |
数据类型: | BOOL | |
取值范围: | TRUE / FALSE | |
默认值: | FALSE | |
地址范围: | 输出 | Q 0.0 ... Q n.7 |
存储器位 | M 0.0 ... M n.7 | |
数据位 | DBm.DBX 0.0 ... n.7 | |
说明: | 从伙伴对象返回消息:对象设置为本地操作。 也可以在接收参数的伙伴对象中设置本地设定值条目。然后必须在“Local”输入参数中将伙伴对象 Par12D_R 设置为“local”。“Local”输入参数的当前状态由伙伴对象报告,并在“LocalOperation”输出中显示。 启动本地或伙伴 CPU 后,或在恢复连接后,自动一般请求将确保在“LocalOperation”中显示本地当前有效状态。 | |
参数: | NewData |
说明: | 有关声明、数据类型、取值范围、默认值和功能的信息,请参见重现参数部分。 每当块收到新数据,并将其输出至输出“ReturnedSetpoint”或“LocalOperation”时,在一个 OB1 循环内,“NewData”输出将设置为 TRUE。 |
参数: | Release | |
声明: | IN_OUT | |
数据类型: | BOOL | |
取值范围: | TRUE / FALSE | |
默认值: | FALSE | |
地址范围: | 存储器位 | M 0.0 ... M n.7 |
数据位 | DBm.DBX 0.0 ... n.7 | |
这是一个输入/输出参数(声明 IN_OUT)。使用此参数类型很难*本地位存储器,因此不应使用。 | ||
说明: | 用于发送当前未决参数值的触发输入 如果输入参数通过软件输入(例如在操作员面板 OP 上),则可以使用该参数。应使用 OP 上的功能键设置“Release”。可以先在 OP 上输入几个参数。只有当 Release 功能键激活时,才会传送参数。 只有在 Release 输入端具有信号 1 时才执行更改检查。将传送“ParameterInput”所组态的数据区域中自上次传输以来发生更改的数据双字。 如果想要传送由“ParameterInput”*的整个数据区域,而不仅仅是发生更改的参数值,则应使用“RetransmitAll”输入参数而不是“Release”。 “Release”输入自动复位。因此,应仅*存储器或数据输入作为输入。数字输入不能自动复位。 数据检查:与 ContinuousEnterFunct 执行相同的安全检查,见上文。 如果不需要此参数,保留不处理即可。 | |
参数: | RetransmitAll | |
声明: | IN_OUT | |
数据类型: | BOOL | |
取值范围: | TRUE / FALSE | |
默认值: | TRUE | |
地址范围: | 存储器位 | M 0.0 ... M n.7 |
数据位 | DBm.DBX 0.0 ... n.7 | |
这是一个输入/输出参数(声明 IN_OUT)。使用此参数类型很难*本地位存储器,因此不应使用。 | ||
说明: | 用于再次传送由“ParameterInput”所*的整个数据区域的触发输入。 如果输入参数通过软件输入(例如在操作员面板 OP 上),则可以使用该参数。应使用 OP 上的功能键设置“RetransmitAll”。当在“RetransmitAll”输入检测到信号 1 时,将传送“ParameterInput”所*的整个数据区域。不执行更改检查 “RetransmitAll”输入自动复位。因此,应仅*存储器或数据输入作为输入。数字输入不能自动复位。由于没有更改检查,只要输入有信号 1,就会连续传送所有参数值。 当输入了新的参数值,但无法传送到伙伴(连接中断或伙伴对象设置为“local”)时,除“Release”或“ContinuousEnterFunct”之外,还可以使用“RetransmitAll”选项。在这种情况下,可以使用“RetransmitAll”触发由“ParameterInput”*的整个数据区域的重复传送操作。先前已输入但在伙伴处尚不可用的所有更改始终包含在内。 如果始终想发送所有条目而不仅仅是更改的条目,也可将“RetransmitAll”用作独立的传送触发器。在这种情况下,可以使用“RetransmitAll”,不使用仅发送已更改参数值的“Release”。 数据检查:与“ContinuousEnterFunct”执行相同的安全检查,见上文。 如果不需要此参数,保留不处理即可。 | |
参数: | ApplyRemoteParamMan |
声明: | IN_OUT |
数据类型: | BOOL |
取值范围: | TRUE / FALSE |
默认值: | FALSE |
地址范围: | 这是一个输入/输出参数(声明 IN_OUT)。使用此参数类型很难*本地位存储器,因此不应使用。 |
说明: | 用于将输入区与返回区同步的触发输入。 该输入触发 ParameterInput 输入区与“ReturnedParameter”镜像返回区的一次性同步操作。“ReturnedParameter”镜像返回区的所有参数值都将复制到“ParameterInput”输入区。 通信 DB 的发送邮箱也与返回参数值同步。 “ApplyRemoteParamMan”自动复位。因此,应仅*存储器或数据输入作为输入。数字输入不能自动复位。只要参数具有信号 1,同步就会连续进行。 如果不需要此参数,保留不处理即可。 |