Power PMAC中PLC程序及子程序的编写
1. PLC程序的编写
对于PLC程序的语法结构与运动程序prog写法相同,不再赘述,需要请翻看文章《Power PMAC运动控制器 —— 学习笔记2》,其他可以在PLC中使用的函数或者符号请在手册《Power PMAC Software Reference Manual》中查看。
结构如下:
//局部变量的定义
global Counter = 0;
open plc plc_name
//{程序主体}
Counter++;
close
值得注意的是,plc是一种循环扫描机制,并且同时使用几个plc可以实现类似于多线程的功能!
2. 使能和关闭PLC程序的方法
- 在cmd窗口中:
enable plc plc_name //使能plc_name程序
enable plc 1..5,7 //同时使能1、2、3、4、5、7号plc
disable plc plc_name //关闭plc_name程序
disable plc 1,3..5 //同时关闭1、3、4、5号plc
- 在程序中:
enable plc plc_name //使能plc_name程序
enable plc 1..5,7 //同时使能1、2、3、4、5、7号plc
disable plc plc_name //关闭plc_name程序
disable plc 1,3..5 //同时关闭1、3、4、5号plc
-
上电使能PLC的方法
在工程树下的Configuration文件下的pp_startup.txt文件中写入:enable plc 1;
并保存,则上电后1号plc程序将自动运行。
注意,1为plc的程序名称
3. PLC中运行运动程序的方法
-
使用指定的指令
//打开运动程序 start n:m //启动坐标系n中的m程序 //停止运动程序 abort m //停止运动程序m
-
直接使用与cmd相同命令的指令
cmd"&m bn r" //与窗口命令相同,选定坐标系m,运行程序n
在PLC程序中可以使用cmd"" 命令运行任何cmd命令,包括#1J/此类的命令
4. PLC调用子程序的方法
特殊函数的调用:
dwell 1000 //延时1000ms,与运动程序中相同
自定义子函数的调用:
call function_name(参数);
//例如调用自己编写的延时函数delay
call delay(10);
5. 子程序的编写
比较简单,结构跟prog、运动学程序以及PLC程序相同
open subprog function_name(参数)
//函数主体
close
以自定义延时函数为例:
/**********************************************/
// 功 能: 延时函数,单位:秒
// @ Jack Soong
// Time: 2019.02.21
/**********************************************/
open subprog delay(delay_time)
local EndTime;
EndTime = Sys.Time + delay_time;
while(EndTime>Sys.Time){};
return;
close
注意,在子程序中也可以使用cmd"" 命令启动运动程序prog,但当具有多个运动程序时要避免这么做,因为运动程序不能同时运行,否则会出现问题,当然它的前提是两个运动程序操作的电机有交叉,因为一个电机只能接受一个程序的命令。