指令表(IL)
IEC 61131-3中的指令表IL(Instruction List)语言是一种低级语言,与汇编语言很相似,它是在借鉴、吸收世界范围的PLC厂商的指令表语言的基础上形成的一种标准语言,可用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中将动作和转变的行为。
指令表语言能用于调用,如有条件和无条件地调用功能块和功能,还能执行赋值以及在区段内执行有条件或无条件的转移。指令表语言不但简单易学,而且非常容易实现,不用编译就可以下载到PLC。指令表编程语言常常被作为基础编程语言,其他编程语言能够方便的转换为指令表语言。但是指令表编程语言对大型的复杂控制问题缺少有效的工具,因此,在大型复杂的控制问题中,通常不采用指令表编程语言。
4.1.1 指令表编程语言简介
1.简介
指令表语言是由一系列指令组成的语言。每条指令在新一行开始,一条完整的指令由操作符和紧随其后的操作数组成,操作数是指在IEC 61131-3的“公共元素”中定义的变量和常量。有些操作符可带若干个操作数,这时各个操作数用逗号隔开。指令前可加标号,后面跟冒号,在操作数之后可加注释。指令表IL编辑器的编程界面如图4.1所示。
指令表编程语言的特点是:
— 指令具有简单易学的特点,适用于小型较简单控制系统的编程;
— 操作符被用于操纵所有基本数据类型的变量、调用函数和功能块;
— 能够直接在PLC内部解释的语言,适用于大多数PLC制造商;
— 指令表编程语言的编写较难转换到其他编程语言,其他编程语言编写的程序容易转换到指令表编程语言。
2.程序执行顺序
指令表编程语言的执行过程是从上至下的顺序进行执行,如图4.2所示。
3.指令的格式
在指令表编程语言中,指令具有如下的格式:
标号:操作符/函数 操作数 注释
【例4.1】使用指令表实现电机的启保停控制。
例4.1中的程序用于对设备中的电机进行启保停控制。程序中,标签为START,指令第1行将变量bStart的结果存放至累加器中。第2行的指令将第1行指令的结果和bHold进行或逻辑运算,结果覆盖到累加器中。第3行指令用于将第2行运算结果和停止信号bStop进行取反后的逻辑与运算,结果仍存放在累加器中。第4行指令用于将当前累加器中的结果输出至变量bDone中。