fb 是功能块的略称,是将顺控程序内反复使用的梯形图块部件化,以便能在顺控程序中引用的功能块。由此,在提高了程序开发效率的同时,还可减少程序错误,提高程序质量。
将顺控程序部件化究竟是指什么?
下面通过以下简单的程序来演示部件化的流程。
例 ) 输入信号 (x1)12 次 on 时,输出信号 (y12) 变为 on 的程序
以下介绍创建 fb 的顺控程序时的技巧:
1. 将多个位传送到字标签中的方法:
通过使用 bset、brst 指令,设置对于对象字的各个位的 on/off 信息, 可以将多个位传送到字标签中。
2. 在 fb 中浏览多个连续数据的方法:
通过以下方法可以将 fb 的输入输出标签的连续区域获取到 fb 的内部标签中。
以下以输入标签为例进行说明。
(1) 在主程序中预先将值存储到 d1000 开始的 n 点的 d 寄存器中。
(2) 在 fb 的输入标签中指定 d1000。
(3) 在 fb 的内部,通过 bmov 将从输入标签 (i_write_data) 开始的 n 点传送到内部标签 ( 需要预先预留出 n 点的排列 ) 中。
但是,在此情况下,如果省略了 fb 的输入输出标签,内部标签中将可能存储期望以外的数据,导致顺控程序失控并执行预料以外的动作,因此不要省略输入输出标签。
3. 在 fb 内使用变址寄存器的方法
在 fb 内使用变址寄存器的情况下,为了保护变址寄存器,应添加变址寄存器的保存梯形图及还原梯形图。
[ 创建示例 ]
在执行 fb 内的程序之前将变址寄存器 z7、z8、z9 进行保存,在程序结束时将保存的变址寄存器还原的程序示例如下所示。