首先建议大家在编程之前思考好框架,涉及以后的扩展,引用;基础的FB(底层),应该充分降低耦合度(功能要单一),充分总结一下与本功能相关的组件,抽取其中的共同点,认真设计接口参数;
以下以分度盘为例,仅供参考
构建好设计机构后开始编程
1.打开博图软件,新建一个项目:
2.添加自己项目中要用的PLC硬件:
3.根据接口,创建自己的UDT,以便将来外部调用时使用:
3.1先定义输入信号,并初始化初值:
3.2再定义输出信号:
3.3最后合并为分度盘的整个信号:红色和绿色框选择数据类型时,选择为刚才定义的类型;
4.1添加FB块,并声明接口参数,中间变量等声明在Static区域,常量声明在constant
4.2定义FB的输入接口(可以直接复制刚才定义好的数据类型中的变量)
4.3定义FB的输出接口(可以直接复制刚才定义好的数据类型中的变量)
此时接口定义已经全部完成;
7.我们暂时不编写程序,直接拖动FB到OB观察一下接口:经过实例化后效果如下图
编写程序,程序的编写建议禁止引用任何外部变量,如有用到系统时钟等,使用接口引入后,定义局部变量使用,编程不在这里详细介绍,根据逻辑控制需求,需用熟悉的语言编写即可;
当分度盘需要继续封装到别的块中时,使用多重背景进行操作;这里不做二次封装,假设有2台分度盘时,我们主程序中如何快速操作:
添加一个数据块叫UNIT
在数据块中声明一个数组,数组的类型选用刚才建立好的UDT,我们建立的为2个长度;
展开后如下:
变量和FB进行绑定:拖动放置的接口即可(左右分屏操作)
声明外部IO接口,绑定到FB实现对外部单元控制
添加变量和外部地址:
进行IO的Mapping,有的信号可以选择通过逻辑控制,我们暂时Mapping分度盘的启动,原点,以及到位信号;为节省空间便于操作,我们使用SCL进行:
添加SCL程序段,并直接赋值(因为需要一直运行)
至此,即可进行正常控制了;