S7块填充指令
FILL_BLK:填充块
说明
可以使用"填充存储区"指令,用 IN 输入的值填充一个存储区域(目标范围)。从输出 OUT 指定的地址开始填充目标范围。可以使用参数 COUNT 指定复制操作的重复次数。执行该指令时,输入 IN 中的值将移动到目标范围,重复次数由参数 COUNT 的值指定。
仅当源范围和目标范围的数据类型相同时,才能执行该指令。
如果满足下列条件之一,则使能输出 ENO 的信号状态为"0":使能输入 EN 的信号状态为"0"。变更元素的最大值为 ARRAY 或结构中的元素个数。如果复制的数据超过 OUT 输出中的元素,则将返回一个意外结果。
当复制 ARRAY of BOOL 时,溢出的使能输出 ENO 将设置为"1",直至超出 ARRAY 结构的字节限制。如果 COUNT 输入的值超出了 ARRAY 结构的字节限制,则使能输出 ENO 将复位为"0"。说明
ARRAY 的使用
该指令读取源范围中所选元素的内容,并从指定索引开始将该内容向目标范围复制 n 次(n = 取决于参数 COUNT 的值)。
填充结构
与 ARRAY 中的元素相同,也可为结构(STRUCT、PLC 数据类型)中多个元素填充相同的值。待填充元素的结构中包含元素的元素数据类型必须相同。而且,该结构也可嵌入到其它结构中。
参数
下表列出了"填充块"指令的参数:
参数
声明
数据类型
存储区
说明
S7-1200
S7-1500
EN
Input
BOOL
BOOL
I、Q、M、D、L 或常量
使能输入
ENO
Output
BOOL
BOOL
I、Q、M、D、L
使能输出
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
目标范围中填充的起始地址
有关有效数据类型的更多信息,请参见"另请参见"。
ARRAY 的使用示例
以下示例说明了填充 ARRAY 时该指令的工作原理:
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数
操作数
值
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"。
该结构的使用示例
以下示例说明了填充结构时该指令的工作原理:
可使用以下元素创建一个全局数据块:
Data_block_1
数据类型
MyStruct1
STRUCT
Member_1
INT
Member_2
INT
Member_3
INT
Member_4
INT
MyStruct2
STRUCT
SubArray
ARRAY[1..2] of STRUCT
SubArray[1]
STRUCT
NestedStruct
STRUCT
Member_1
INT
Member_2
INT
Member_3
INT
Member_4
INT
SubArray[2]
STRUCT
NestedStruct
STRUCT
Member_1
INT
Member_2
INT
Member_3
INT
Member_4
INT
生成以下程序代码,寻址 MyStruct1 变量:
生成以下程序代码,寻址 MyStruct2 变量:
在这两个示例中,参数 IN 的值 10 将从 Member_2 开始复制 OUT 参数中两次。即,值 10 将复制到元素 Member_2 和 Member_3 中两次。另外两个元素 Member_1 和 Member_4 保持不变。如果该指令成功执行,则 TagOut 操作数的信号状态将置位为"1"。
UFILL_BLK:不可中断的存储区填充
说明
可以使用"不可中断的存储区填充"(Fill block uninterruptible) 指令,用 IN 输入的值填充一个存储区域(目标范围)。该指令不可中断。从输出 OUT 指定的地址开始填充目标范围。可以使用参数 COUNT 指定复制操作的重复次数。执行该指令时,输入 IN 中的值将移动到目标范围,重复次数由参数 COUNT 的值指定。
仅当源范围和目标范围的数据类型相同时,才能执行该指令。说明
此移动操作不会被操作系统的其它任务打断。这也解释了在执行"不可中断的存储区填充"指令期间,CPU 报警响应次数增加的原因。
如果满足下列条件之一,则使能输出 ENO 的信号状态为"0":使能输入 EN 的信号状态为"0"。变更元素的最大值为 ARRAY 或结构中的元素个数。如果复制的数据超过 OUT 输出中的元素,则将返回一个意外结果。
当复制 ARRAY of BOOL 时,溢出的使能输出 ENO 将设置为"1",直至超出 ARRAY 结构的字节限制。如果 COUNT 输入的值超出了 ARRAY 结构的字节限制,则使能输出 ENO 将复位为"0"。说明
ARRAY 的使用
该指令读取源范围中所选元素的内容,并从指定索引开始将该内容向目标范围复制 n 次(n = 取决于参数 COUNT 的值)。
可以使用"不可中断的存储区填充"指令移动最多 16 KB 大小的数据。注意:CPU 对此有特定限制。
填充结构
与 ARRAY 中的元素相同,也可为结构(STRUCT、PLC 数据类型)中多个元素填充相同的值。待填充元素的结构中包含元素的元素数据类型必须相同。而且,该结构也可嵌入到其它结构中。
参数
下表列出了"不可中断的存储区填充"指令的参数:
参数
声明
数据类型
存储区
说明
S7-1200
S7-1500
EN
Input
BOOL
BOOL
I、Q、M、D、L 或常量
使能输入
ENO
Output
BOOL
BOOL
I、Q、M、D、L
使能输出
IN
Input
二进制数、整数、浮点数、定时器、DATE、CHAR、WCHAR、TOD
二进制数、整数、浮点数、定时器、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、CHAR、WCHAR、TOD
二进制数、整数、浮点数、定时器、DATE、CHAR、WCHAR、TOD、LTOD
D、L
目标范围中填充的起始地址。
有关有效数据类型的更多信息,请参见"另请参见"。
ARRAY 的使用示例
以下示例说明了填充 ARRAY 时该指令的工作原理:
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数
操作数
值
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"。
该结构的使用示例
以下示例说明了填充结构时该指令的工作原理:
可使用以下元素创建一个全局数据块:
Data_block_1
数据类型
MyStruct1
STRUCT
Member_1
INT
Member_2
INT
Member_3
INT
Member_4
INT
MyStruct2
STRUCT
SubArray
ARRAY[1..2] of STRUCT
SubArray[1]
STRUCT
NestedStruct
STRUCT
Member_1
INT
Member_2
INT
Member_3
INT
Member_4
INT
SubArray[2]
STRUCT
NestedStruct
STRUCT
Member_1
INT
Member_2
INT
Member_3
INT
Member_4
INT
生成以下程序代码,寻址 MyStruct1 变量:
生成以下程序代码,寻址 MyStruct2 变量:
在这两个示例中,参数 IN 的值 10 将从 Member_2 开始复制 OUT 参数中两次。即,值 10 将复制到元素 Member_2 和 Member_3 中两次。另外两个元素 Member_1 和 Member_4 保持不变。如果该指令成功执行,则 TagOut 操作数的信号状态将置位为"1"。
当代散文校园里那些可爱的同事们文博华校园作为一块人文荟萃之地,每天都在演绎着许多新鲜的故事,这些故事的主角大多是教师们。自己作为教师队伍中的一员,与诸位同事朝夕相处的日子久了,每个人的脾气和秉性都十分了解,于是
山西省十四五冷链物流发展规划公布近日,山西省发改委公布了山西省十四五冷链物流发展规划(以下简称规划),提出要聚焦打造京津冀冷链物流仓储基地目标,构建123冷链物流发展新格局。规划提出的发展目标是到2025年,初步
入心的情人,一生相伴这一生,走遍天涯海角,踏破红尘万丈,也未必能遇到一个真正入心的人。入心二字,看着简单,却是感情里最珍贵最难得的。那么,什么样的人,才是真正入心的人呢?在我看来,真正入心的人,至少要
铜梁安居闲游正月初十,还没有上班,赶上出行的末班车,避开春节假期的拥挤,到铜梁的安居古城溜达溜达。铜梁安居以前去过,但也许久没有去了,以往走一个地方往往就是走马观花,不怎么用心去感受和体会。今
雨林博物闯关行新春走基层文中国科学报记者胡珉琦一到春节,植物园游客量就爆了。中科院西双版纳热带植物园(以下简称版纳植物园)环境教育中心的赵金丽说,版纳植物园自1月以来,旅游接待量一直在高位运行,春节高峰时
电商加速度,大沥开门红!2月1日,佛山市南海区大沥镇经济发展办公室带来好消息,自春节开工以来,大沥电商产业园又添企业入驻又迎重点项目落地又增亮眼直播销售。跑出春天的速度,大沥电商产业园在响锣鼓纳鸿运中迎来
直通德班19日上午战况,薛飞速胜林高远,赵子豪遭遇两连败在直通德班比赛19日上午进行的比赛中,王楚钦刘丁硕林高远薛飞梁靖崑赵子豪等国乒名将登场。在首场一号台的比赛中,王楚钦展现了极强的进攻能力,30战胜刘丁硕。本场比赛刘丁硕在落后阶段也
法甲3里尔终结3连败北京时间2月19日20点,20222023赛季法甲联赛第24轮迎来一场焦点之战巴黎圣日耳曼主场迎战里尔。上半场,姆巴佩首开记录,内尔马打进个人五大联赛第150球,迪亚基特头球破门扳
2023年的篮球最终候选名单出炉,韦德,诺维茨基,等人赫然在列!首先小编给大家科普一下名人堂,它实际上一座篮球博物馆,位于美国91号高速公路附近。能够进入名人堂的不仅包括男女篮球运动员,还包括教练,球探,裁判员,篮球解说员等,对篮球运动起着很大
我已经很难心动了点击右上方关注,解锁每天新故事。有心者有所累,无心者无所谓。宁愿浅喜变淡薄,不愿深爱无归路。心不动,心不痛。你有没有这样的一种感觉,当你喜欢上一个人的时候,你总是驻足良久却迟迟也不
后半生,活得越来越好的3个秘诀你和百岁老人聊过天吗?百岁老人发自肺腑的每一句话,都是用生命酿造出来的原浆。今天给大家解读的书,是日本105岁老人日野原重明的活好。愿日野原先生的临终告白,能带你领悟生命的意义,获