用函数FB 实现多台电机的顺序启动控制。当按下启动按钮1 时,电机1 先启动,5 s后电机2 启动,按下停止按钮1,电机1 和电机2 立即停止。当按下启动按钮2 时,电机3 先启动,6 s后电机4 启动,按下停止按钮2,电机3 和电机4 立即停止。
1.添加函数块
在博途软件里新建立一个项目,添加设备PLC 后,在项目树的程序块单击,出现“添加新块”的界面,单击打开方框中的“FB 函数”按钮,默认的编号为1,在名称栏输入“电机顺序控制”,单击“确定”按钮,生成函数块FB1。在“电机顺序控制FB1”处右键单击“属性”,去掉FB1 属性中“优化的块访问”,可以在项目树的文件夹里看到新生成的FB1。
2.生成函数块的局部变量
打开FB1,用鼠标往下拉动程序编辑器的分隔条,分隔条上面是函数块的接口区,生成的局部变量如图6-18所示。IEC 定时器、计数器实际上也是函数块,定时器指令框上面是它的背景数据块。在FB 函数块中,定时器的背景数据块如果是一个固定的数据块,在同时多次调用FB 时,该数据块将会被同时用于多处,程序运行时将会出错。为避免出现这种问题,在块接口中生成数据类型为IEC_TIMER 的静态变量“TIMEDB”,用它提供定时器TON的背景数据。每次调用FB1 时,在FB1 不同的背景数据块中,不同的被控对象都有保存TON 的背景数据的存储区“TIMEDB”。
图6-18 FB1 的局部变量
3.FB1 和OB1 程序
用Input 参数“启动”控制电机InOut 参数“电机1”。参数“启动”为1 时,“电机1”的状态为1,接通延时定时器TON 开始定时,到达时间预设值后,Output 参数“电机2”为1,“停止”参数为控制参数“电机1”和“电机2”的停止。FB1 的程序如图6-19所示。在编辑程序中的定时器指令时要注意它的选择方式。在程序编辑界面右边的“指令”里选择定时器操作指令时,会弹出“调用选项”窗口,现要从FB1 函数块里的Static 变量里调用定时数据,这里单击“取消”,在TON 指令盒上方处双击,右边出现,单击后出现下拉选项,选择“#TIMEDB”。在TON 定时期间,每个扫描周期执行完FB1 之后,都需要保存“#TIMEDB”中的数据,函数块执行完后,下一次重新调用它时,其Static 静态变量的值保持不变。“TIMEDB”不能用函数块的临时数据区生成,只能用静态变量。函数块的背景数据块中的变量就是它对应的FB1 接口区中的Input、Output、InOut 参数和Static 变量。函数块FB1 的数据用背景数据块保存,这里例子里要调用两次FB1,它会产生两个相对应的背景数据块,名称分别为电机顺序控制_DB1、电机顺序控制_DB2。背景数据块在函数块执行完后不会丢失,以供下次执行使用,其他代码块也可以访问背景数据块中的变量,不能直接删除和修改背景数据块中的变量,只能在它对应的函数块接口中删除和修改这些变量。
图6-19 FB1 的程序(www.xing528.com)
生成函数块FB 的输入、输出参数和静态变量时,它们被自动指定一个默认值,可以修改这些默认值。局部变量的默认值被传送给FB 的背景数据块,作为同一个变量的启动值,可以在背景数据块中修改变量的启动值,调用FB 时没有指定实参的形参使用背景数据块中的启动值。
根据任务要求,可以定义PLC 的输入、输出变量,PLC 的变量表如图6-20所示。将项目树中的FB1 拖放到程序区的水平“导线”上。在出现的“调用选项”对话框中,输入背景数据块的名称,单击“确定”按钮,自动生成FB1 的背景数据块。OB1 主程序如图6-21所示。程序里的函数FB1 实际参数是使用变量表中已经定义的符号地址,若需要修改地址名称,可以直接在变量表中修改。函数的实际参数除了可以来自PLC 变量表的地址外,还可以在全局数据块里定义需要的参数。
4.调用函数块的仿真
选中项目树中的PLC_1,单击工具栏上的“开始仿真”按钮,打开S7-PLCSIM,将程序下载到仿真PLC。在S7-PLCSIM 的项目视图打开项目树中的“SIM 表格_1”,生成IB0 和QB0 的表格。当把IB0 的最低位I0.0 的框打钩再去掉,即模拟启动按钮1 按下,QB0 的最低位Q0.0 接通置1,系统会在QB0 的最低位方框处打上“√”,表示Q0.0 接通,电机1 启动。5 s后Q0.1 接通置1,次低位方框处也打上“√”,表示Q0.1 接通,电机2 启动,如图6-22所示。双击I0.1 对应的方框,模拟停止按钮1 按下,则Q0.0、Q0.1 都断开,相对应的“√”消失,电机1 和电机2 都停止。启动按钮2 按下的模拟过程与上述类似,不再赘述。
图6-20 PLC 的变量表
图6-21 OB1 主程序
图6-22 程序的仿真
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。