如果要访问其他程序单元的变量,只需要在INTERFACE段的Connection选项卡下进行连接即可,这与ST语言中使用USES语句的功能相同, 比如在pAuto程序单元中要引用在ST程序pDefInit中定义的全局变量,那么可按下图所示的方法进行访问。
图35 连接需访问变量的程序单元
在每个程序单元里都有一个插入程序的选项,比如pAuto程序单元中双击Insert MCC Chart即可以在右侧窗口中打开程序的主编辑界面。在顶部的表格里,可以声明本程序的局部变量,比如在图中
可,本项目中没有定义局部变量。
选项卡下,将变量名称、数据类型和初始值填入表格即
图36 本项目无局部变量
(3)在LAD/FBD程序单元中声明变量
LAD/FBD程序单元中声明变量的操作与MCC类似,这里不再赘述。
另外,在LAD/FBD程序编辑窗口中也可以直接声明不存在的变量。比如在pLADFBD()程序中,将局部变量boResult修改为 boResult1,此时系统会自动弹出一个变量boResult1的声明窗口,在这里可选择数据类型和变量类型等。这种声明变量的方式非常方便。
图37 在LAD/FBD程序单元中声明变量
3.3.2编写程序
项目程序需要根据实际工艺编写,本项目中将工艺分解为回零、传送带运行、吹出器动作、安全门控制、错误处理等部分,分别编程进行处理,最后通过程序在执行 系统中的分配,达到各程序协调工作的目的。
由于相同的功能,可以使用不同的编程语言实现,所以编程方式十分自由。本项目中使用ST语言编写了数据初始化pDefInit和与HMI的数据交换pHMIout两段程序,使用MCC语言编写了与运动控制相关的程序,使用LAD/FBD编写了周期性执行的逻辑控制程序。
3.3.2.1使用ST语言编写程序
PROGRAMS,双击其中的Insert ST source file即可插入一段ST程序,在右侧窗口会自动打开ST程序编程器。使用ST语言编写的程序需要放在IMPLEMENTATION段中,以 PROGRAM关键字开头,以END_PROGRAM关键字结尾。程序编写完成后,还需要在INTERFACE段进行声明。比如pDefInit()程序 的ST程序如下。? 在SCOUT软件中,依次打开D435
INTERFACE
VAR_GLOBAL //声明全局变量
gboProgEnd : BOOL := FALSE;
gboProtDoorOpen : BOOL := FALSE; gr64VMasterAxis : LREAL := 360; gr64VMasterAxisOld : LREAL := 0; gi16Mode : INT := 0; gboDriveActive : BOOL := FALSE; gboStartConveyor : BOOL := FALSE;
gboStartEjector : BOOL := FALSE; END_VAR
PROGRAM pInit; // 声明程序pInit END_INTERFACE
IMPLEMENTATION
PROGRAM pInit; //程序pInit开始
gboProgEnd := FALSE; // 赋值语句,初始化变量,下同 gboProtDoorOpen := FALSE; gr64VMasterAxis := 360; gr64VMasterAxisOld := 0; gi16Mode := 0; gboDriveActive := FALSE; END_PROGRAM //程序pInit结束 END_IMPLEMENTATION
用相同方法编写pHMIout()程序,这里不再赘述。
3.3.2.2使用MCC语言编写程序
PROGRAMS,双击其中的Insert MCC Unit,即可创建一个MCC程序单元,然后双击其中的Insert MCC Chart即可插入一段MCC程序,在右侧窗口中会自动打开MCC编辑器,此时在工具栏上会出现MCC编程? 在SCOUT软件中,依次打开D435工具
条 ,所有的MCC指令都可以通过点击工具条上的按钮插入。
下面以pAuto()程序为例,介绍MCC编辑器的操作。pAuto()是用于控制生产线自动运行的程序,在所有轴都回零以后,即开始执行pAuto() 中的程序。按照工艺要求,需要先将虚主轴MasterAxis使能,在接到起动信号iboStartBelt以后,传送带轴Conveyorbelt开始 跟随主轴做齿轮同步,同时将喷嘴阀门的OUTPUT CAM功能使能。由于此时轴Ejector仍处于停止状态,所以喷嘴阀门一直关闭。然后起动虚主轴,如果虚主轴的速度设定值发生变化,那么要立即生效,要 循环判断设定值是否有变化。这样在虚主轴起动以后,传送带轴也开始运动。当检测到有停止信号gboProgEnd时,程序结束。
首先插入一个新程序,鼠标点击编程窗口中的使能命令
即可插入该功能块,如图38所示:
,然后选择工具栏上的轴