浔之漫智控技术(上海)有限公司
西门子授权代理商 , 西门子授权代理商 , 西门子一级代理商
SIEMENS西门子 S120伺服电机 1FK7022-5AK21-1VG5-Z


                FILL_BLK:填充块 (S7-1200, S7-1500) 说明 可以使用“填充存储区”指令,用 IN 输入的值填充一个存储区域(目标范围)。从输出 OUT 指定的地址开始填充目标范围。可以使用参数 COUNT 指定复制操作的重复次数。执行该指 令时,输入 IN 中的值将移动到目标范围,重复次数由参数 COUNT 的值指定。如果操作数“TagIn_1”和“TagIn_2”的信号状态为“1”,则执行该指令。从第三个元素开始,该 指令选择 #a_array 变量中的三个 INT 元素,并将其内容复制到 #b_array 输出变量中,从第 二个元素开始。此移动操作不会被操作系统的其它任务打断。如果成功执行该指令,则输出 ENO 的信号状态为“1”,并将置位输出“TagOut”。仅当源范围和目标范围的数据类型相同时,才能执行该指令。 如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”: • 使能输入 EN 的信号状态为“0”。 • 变更元素的Zui大值为 ARRAY 或结构中的元素个数。如果复制的数据超过 OUT 输出中的元 素,则将返回一个意外结果。 当复制 ARRAY of BOOL 时,溢出的使能输出 ENO 将设置为“1”,直至超出 ARRAY 结构的字 节限制。如果 COUNT 输入的值超出了 ARRAY 结构的字节限制,则使能输出 ENO 将复位为 “0”。 说明 ARRAY 的使用 该指令读取源范围中所选元素的内容,并从指定索引开始将该内容向目标范围复制 n 次(n = 取决于参数 COUNT 的值)。 填充结构 与 ARRAY 中的元素相同,也可为结构(STRUCT、PLC 数据类型)中多个元素填充相同的值。 待填充元素的结构中包含元素的元素数据类型必须相同。而且,该结构也可嵌入到其它结构 中。

             参数 声明 数据类型 存储区 说明 S7-1200 S7-1500 IN Input 二进制数、整 数、浮点数、 定时器、 DATE、 TOD、 CHAR、 WCHAR 二进制数、整 数、浮点数、 定时器、 DATE、 CHAR、 WCHAR、 TOD、LTOD I、Q、M、 D、L、P 或常 量 用于填充目标 范围的元素 COUNT Input USINT、 UINT、 UDINT USINT、 UINT、 UDINT、 ULINT I、Q、M、 D、L、P 或常 量 移动操作的重 复次数 OUT Output 二进制数、整 数、浮点数、 定时器、 DATE、 TOD、 CHAR、 WCHAR 二进制数、整 数、浮点数、 定时器、 DATE、 CHAR、 WCHAR、 TOD、LTOD D、L 目标范围中填 充的起始地址 有关有效数据类型的更多信息,请参见“另请参见”。下表将通过具体的操作数值对该指令的工作原理进行说明: 参数 操作数 值 IN FillValue 该操作数的数据类型为 INT。 COUNT Tag_Count 3 OUT TargetArea 操作数 TargetArea 的数据类 型为 ARRAY[1..5] of INT。它 包含 5 个 INT 数据类型的元 素。 如果操作数“TagIn_1”和“TagIn_2”的信号状态为“1”,则执行该指令。该指令从操作数从第一 个元素开始,将 #FillValue 的值复制到 #TargetArea 输出变量中三次。如果成功执行该指令, 则将 TagOut 和“ENO”使能输出的信号状态置位为“1”。 该结构的使用示例 以下示例说明了填充结构时该指令的工作原理: 可使用以下元素创建一个全局数据块:UFILL_BLK:不可中断的存储区填充 (S7-1200, S7-1500) 说明 可以使用“不可中断的存储区填充”(Fill block uninterruptible) 指令,用 IN 输入的值填充一 个存储区域(目标范围)。该指令不可中断。从输出 OUT 指定的地址开始填充目标范围。可 以使用参数 COUNT 指定复制操作的重复次数。执行该指令时,输入 IN 中的值将移动到目标 范围,重复次数由参数 COUNT 的值指定。 仅当源范围和目标范围的数据类型相同时,才能执行该指令。 说明 此移动操作不会被操作系统的其它任务打断。这也解释了在执行“不可中断的存储区填充” 指令期间,CPU 报警响应次数增加的原因。 如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”: • 使能输入 EN 的信号状态为“0”。 • 变更元素的Zui大值为 ARRAY 或结构中的元素个数。如果复制的数据超过 OUT 输出中的元 素,则将返回一个意外结果。 当复制 ARRAY of BOOL 时,溢出的使能输出 ENO 将设置为“1”,直至超出 ARRAY 结构的字 节限制。如果 COUNT 输入的值超出了 ARRAY 结构的字节限制,则使能输出 ENO 将复位为 “0”。 说明 ARRAY 的使用 该指令读取源范围中所选元素的内容,并从指定索引开始将该内容向目标范围复制 n 次(n = 取决于参数 COUNT 的值)。 可以使用“不可中断的存储区填充”指令移动Zui多 16 KB 大小的数据。注意:CPU 对此有特 定限制。填充结构 与 ARRAY 中的元素相同,也可为结构(STRUCT、PLC 数据类型)中多个元素填充相同的值。 待填充元素的结构中包含元素的元素数据类型必须相同。而且,该结构也可嵌入到其它结构 中。如果操作数“TagIn_1”和“TagIn_2”的信号状态为“1”,则执行该指令。该指令从操作数从第一 个元素开始,将 #FillValue 的值复制到 #TargetArea 输出变量中三次。此移动操作不会被操 作系统的其它任务打断。如果成功执行该指令,则将 TagOut 和“ENO”使能输出的信号状态 置位为“1”。 该结构的使用示例 以下示例说明了填充结构时该指令的工作原理: 可使用以下元素创建一个全局数据块:SCATTER:将位序列解析为单个位 (S7-1200, S7-1500) 说明 指令“将位序列解析为单个位”用于将数据类型为 BYTE、WORD、DWORD 或 LWORD 的变 量解析为单个位,并保存在 ARRAY of BOOL、匿名 STRUCT 或仅包含有布尔型元素的 PLC 数 据类型中。 说明 多维 ARRAY of BOOL 使用“将位序列解析为单个位”指令时,不支持多维 ARRAY of BOOL。 说明 ARRAY、STRUCT 或 PLC 数据类型的长度 ARRAY、匿名 STRUCT 或 PLC 数据类型中包含的元素数目必须恰好等于位序列指定的数量。 例如,如果数据类型为 BYTE,则 ARRAY、STRUCT 或 PLC 数据类型中必须恰好包含 8 个元素 (WORD = 16、DWORD = 32、LWORD = 64)。 说明 该指令的可用性 该指令可用于固件版本为 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本为 V2.1 及以上 版本的 S7-1500 系列 CPU。 例如,通过这种方式您可以解析状态字,并使用索引读取和改变单个位的状态。使用 GATHER,可再次将各个位组合为位序列。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: • 使能输入 EN 的信号状态为“0”。 • ARRAY、STRUCT 或 PLC 数据类型中包含的 BOOL 元素数目不足。如果操作数 #Enable 在使能输入 EN 返回信号状态“1”,则将执行该指令。数据类型为 WORD 的操作数 #SourceWord 解析为单个位 (16),并将其分配给操作数 #DestinationArray 的各个 元素。如果在指令执行期间出现错误,操作数 #EnableOut 将在使能输出 ENO 处返回信号状态 “0”。SCATTER_BLK:将 ARRAY of <位序列> 中的元素解析为单个位 (S7-1200, S7-1500) 说明 “将位序列 ARRAY 的元素解析为单个位”指令用于将 BYTE、WORD、DWORD 或 LWORD 数 据类型的 ARRAY 分解为单个位,并保存在元素类型仅为布尔型的 ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中。在 COUNT_IN 参数中,可指定待解析源 ARRAY 中的元素数目。 IN 参数中源 ARRAY 的元素数量可能多于 COUNT_IN 参数中的指定数量。要保存所解析位序 列的各个位,ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中必须包含足够的元素数量。但 这可能会增加目标存储区空间。 说明 多维 ARRAY of BOOL 如果 ARRAY 是一个多维 ARRAY of BOOL,即使维度的填充位未明确声明且不可访问,但仍 会进行计数。参数 COUNT_IN 的值为“3”。在 OUT 参数处,将互连一个 ARRAY[0。参数 IN 和参数 OUT 中两个数组的大小均为 96 位。ARRAY of WORD 将解析为 48 个单个位。 说明 如果目标 ARRAY 的 ARRAY 下限不是“0”,请注意以下几点: 出于性能方面的原因,索引必须始终以 BYTE、WORD、DWORD 或 LWORD 限制开始。这就 意味着索引必须从 ARRAY 的下限处开始计算。通过以下公式进行相应计算: 有效下标 = ARRAY 下限 + n(位序列数量)× 所需位序列位数 对于 ARRAY[-2..45] of BOOL 和位序列 WORD,计算如下所示:例如,通过这种方式您可以解析状态字,并使用索引读取和改变单个位的状态。使用 GATHER,可再次将各个位组合为位序列。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: • 使能输入 EN 的信号状态为“0”。 • 源 ARRAY 中的元素数量少于 COUNT_IN 参数中的指定数量。 • 目标 ARRAY 的索引不以 BYTE、WORD、DWORD 或 LWORD 限制开始。在这种情况中,将 不向 ARRAY of BOOL 中写入任何结果。 • ARRAY[*] of BOOL、STRUCT 或 PLC 数据类型未提供所需的元素数量。 – S7-1500-CPU:此时,将尽可能多地解析位序列并写入 ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中。其余位序列将不考虑在内。 – S7-1200-CPU:不含复制过程。 说明 S7-1200-CPU:使能输出 ENO = 0 使能输出 ENO 的信号状态为“0”时,不会将任何数据写入输出参数 OUT 中。

展开全文
拨打电话 微信咨询 发送询价