大庆地区SIEMENS西门子PLC模块代理商 西门子PLC代理,西门子S7-1500代理,西门子PLC代理经销
西门子PLC数组的生成与使用教程
(1)生成数组
可以在数据块中定义数组,也可以在逻辑块的变量声明表中定义它。下面介绍在数据块中定义的方法。在SIMATIC管理器中用菜单命令“插入”→“S7块”→“数据块”生成数据块DB4。双击打开它,默认的显示方式为声明视图方式。声明视图用于定义、删除和修改共享数据块中的变量,指定它们的名称、数据类型和初始值。
如果循环时间超过大循环时间的两倍,并且没有执行RE_TRIGR指令来复位监控定时器,不管是否有OB80,CPU将立即进入STOP模式。
不能结束的循环指令和非常长的扫描时间可能会导致反复调用RE_TRIGR指令,虽然CPU不会进入STOP模式,但是会造成在一个扫描周期内CPU被“锁死”。为了防止出现这种情况,每100ms插入一个通信时间片。选中图2-137中的“通信负载”,可以改变这一时间片的大小。这一机制提供了恢复CPU控制的机会。
通常CPU尽可能快地执行扫描循环。与用户程序和通信任务有关,每次扫描循环的时间间隔是变化的。
在新生成的数据块的行和后一行标有STRUCT(结构)和END_STRUCT(结构结束)。在这两行中间有一个自动生成的临时占位符量。
10s后延时时间到,CPU调用SFC 32指定的OB20。在OB20中用MOVE指令保存调用OB20的日期时间值的后4个字节(见图4-52)。同时将Q4.0置位,并通过PQB4立即输出。
可以用I0.2将Q4.0复位(见图4-53)。在OB1中调用SFC34“QRY_DINT”来查询延时中断的状态字STATUS,查询的结果用MW8保存,其低字节为MB9。OB_NR的实参是延时中断 OB的编号,RET_VAL为SFC 执行时的错误代码,为0时无错误。
在延时过程中,可以在10.1的上升沿调用SFC33“CAN_DINT”来取消延时中断过程。
将该行的名称改为数组的名称“PRESS”(见图4-7),变量的名称只能使用字母、数字和下划线,不能使用中文。用鼠标右键点击该行的“类型”列,执行弹出的快捷菜单中的“复杂类型”→“ARRAY”
(数组)命令,在出现的“ARRAY 【】”的方括号中输入