欧姆龙cp1h常用指令学习(六)功能块、子程序
欧姆龙PLC的功能块勇哥暂时理解为是一种拥有输入输出参数的自定义的指令。它的好处是实现功能复用,从梯形图上看来很简洁,可以减少plc内存消耗。 如果仅仅是实现功能的利用,显然功能块无法和子程序区分开来,功能块拥有自己特殊的定义与调用方式。
功能块有两种方法,一是梯形图形式,二是ST文本形式(结构文本),两者区别只是编码方式不同。
(一) 梯形图形式的功能块
首先创建一个梯形图功能块
然后进入功能块的参数与梯形图编辑界面
参数区有:内部、输入、输出、输入输出、外部,共5个标签项。
下面的示例块用到了输入与输出,其它3个标签是干嘛用的勇哥暂时还不清楚,以后再补充。
输入标签要自己建立变量,指定数据类型,因为yButton等三个变量我准备输入继电器点,所以其类型为BOOL型。
EN是输入标签里面自带的一个变量,可以叫做系统变量吧,它是不可删除的,这个变量按名称就可以猜出来是让功能有效或者无效的作用。
输出标签里也有个系统变量,ENO,它是表示这个功能块运行成功或者失败的标志,默认置1。
最下面是梯形图编辑区,在这里面你不可以LD 0.01这样写,也就是不可以用到实际的输入输出IO点,你可以使用的是上面定义的输入输出的变量。
(三)子程序
在下面的例子中,子程序fun2中使用了1.09,在主程序中也使用了1.09,如果子程序不被执行,则我们按下1.09则子程序里面的指令即使导通也是没有效果的。
即如果子程序没被导通调用的话,其内部的指令不被执行。
子程序指令包括:
SBN  定义子程序
RET 子程序结束
SBS 调用子程序
另外还有3条指令:GSBN,GRET,GSBS为全局子程序调用。
这三条指令是和中断调用配合的,勇哥还不知道怎么用,以后再补全。
调用子程序的例子欧姆龙plc的子程序,基本上相当于高级语言的无参数调用。
如果要有参数调用子程序,可以上面讲的功能块指令。
另外一点是,子程序也是支持嵌套的。
主程序
子程序fun1
子程序fun2