博途S7-1200填充块指令如何使用
由上图的填充块指令,用IN输入的值天厨一个存储区域(目标范围)。从输出OUT指定的地址开始填充目标范围,可以使用COUNT指定复制操作的重复次数。
注意:仅仅当源范围和目标范围的数据类型相同时,才能执行该指令。
参数说明:如下表列出了指令的参数:
举例说明:
首先创建一个全局数据块:如下图所示:
编程:
仿真如下:
程序解释:
参数IN的值10将Member1开始复制out参数中两次,即将10复制到袁术Member1和Member2中两次,另外两个元素Member3和Member4保持不变。
S7-1500PLC梯形图(LAD)基础指令——块填充指令
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”。
相关问答
mcgs矩形填充颜色设置?
在MCGS平台中,可以按照以下步骤设置矩形填充颜色:1.选中你想要设置颜色的矩形。2.在属性框中选择“填充”。3.在填充选项中,可以选择不同的填充类型,例...
怎么查看PLC的CPU版本号-ZOL问答
工程菜单--更改PLC类型-有用(0)回复硬盘剩余空间直接把鼠标悬在盘符上就可以...可以的,直接拓展就行,挂了拓展模块后编程可以直接使用Q2.0~Q2.7有用(0)回复...
PLC的T型图,希望能够详细一点-汇财吧专业问答
[回答]我不会但贴吧里有很多人发这种教程啊都很详细啊有纸的木头的粘土的百度贴吧神秘博士吧F-t图/m=a-t图积分后是V-t很可惜,刷不了,因为T版和联通版在...
怎么实现plc控制柜和监视系统联网实现远程控制-ZOL问答
我想把word里有空格间隔的文字粘贴到excel里,想让他们填充到每个单元格里,怎样做啊1.3万浏览3回答笔记本侧面有一个安全锁孔,那是干什么用的7354浏览...
童鞋们,有没有谁给我推荐一下:PLC能干什么广东PLC行业前景如何?
[回答]目前,我国工业制造业正在展开自动化生产转型,对各类自动化生产设备的市场需求不断下跌。2012年中国PLC市场规模及快速增长变化趋势增长速度下降原因...
各位大佬谁清楚,艾杰尔UHPLC超高效液相色谱柱一圈是多长?帮...
[回答]气相色谱法色谱图中的艾杰尔UHPLC超高效液相色谱柱一般长度为10到50cm。色谱柱一般长度为10到50cm(需要两根连用时,可在二者之间加一连接管),内径为...
单片机怎么把一个变量通过wifi发送到手机端?
给题主提供一个我自己的思路,不依赖市面上的任何现成产品.首先,PLC是可以进行串口通信的,这是PLC最简单也是最基础的通信功能,你可以让PLC与PC通过RS-232线缆...
超细粉包装秤的结构原理是什么?
[回答]有称重传感器,根据预先设定好的重量进行快速和慢慢充填,达到高包装精度。伺服马达带动托盘升降,升降速度可任意设定,附除尘罩(可定做),充...伺服马...
养猪场废水处理具体工艺流程是什么?如何才能达到排放标准?
你好很高兴回答你的问题养猪场污水处理方案一.概述养猪场污水主要包括猪尿、部分猪粪和猪舍冲洗水,属高浓度有机污水,而且悬浮物和氨氮含量大。这种...接触池...
wps上的ppt怎么在文字下方加入底纹-ZOL问答
选中需要设置的图形对象,在“绘图”工具栏中单击“填充颜*”*标,然后执行下列操作之一:●颜色填充:单击“填充颜色”右边的箭头,选择一种已有的颜色或单击...
扫一扫微信交流