1.4 PLC的指令系统

PLC的指令系统是PLC全部编程指令的集合。除基本指令外,整个指令系统也涉及程序结构、数据存储区和编程语言。

1. 程序结构

PLC的程序有3种:主程序、子程序、中断程序。其中主程序是程序的主体,一个项目只有唯一的一个主程序。主程序中可以调用子程序和中断程序,CPU在每一个扫描周期都要运行一次主程序。子程序可以被其他程序调用,使用子程序可以提高编程效率而且便于移植。中断程序是用来处理中断事件,而且中断程序不能被用户调用,而是由中断事件引发的。常见的中断有输入中断、定时中断、高速计数器中断和通信中断。

2. 数据存储区

数据区是用户程序执行过程中的内部工作的区域,用于对输入/输出数据进行存储。包括输入映像寄存器(I)、输出映像寄存器(Q)、变量存储器(V)、内部标准寄存器(M)、顺序控制继电器存储器(S)、特殊标志位寄存器(SM),局部存储器(L)、定时器寄存器(T)、计数器存储器(C)、模拟量输入映像寄存器(AI)、模拟量输出映像寄存器(AQ)、累加器(AC)和高速计数器(HC)。

3. 编程语言

PLC有各种不同类型的语言,即使是同一种编程语言在不同类型的PLC上也有不同的表示方法。PLC指令的功能及其表示方法是由各制造厂家在其进行系统设计时分别确定下来的,所以各种类型的PLC的指令系统存在一定的差异。

PLC编程语言标准(IEC 61131-3)中有5种编程语言。

(1)顺序功能图SFC(Sequential Function Chart);

(2)梯形图LADDER(Ladder Diagram);

(3)功能块图FBD(Function Block Diagram);

(4)语句表STL(Structured Instruction List);

(5)结构文本ST(Structured Text)。

其中的顺序功能图(SFC)、梯形图(LADDER)、功能块图(FBD)是图形编程语言,语句表(STL)、结构文本(ST)是文字语言。

4. 指令系统

本书中重点介绍的西门子公司PLC对应的STEP 7中的编程语言有梯形图、语句表和功能块图3种基本编程语言,可以相互转换。

STEP 7的基本逻辑指令有位逻辑指令、堆栈指令、定时器和计数器指令;基本功能指令有数据处理指令、数学运算指令;其程序控制指令有循环指令、跳转与标号指令、暂停指令、监视定时器复位指令、有条件指令、ENO指令、子程序调用与返回指令、特殊指令。这些指令的作用以及使用方法将在后文实例进行讲解。

以位逻辑指令为例,STEP 7中的位逻辑指令见表1-1和表1-2。

表1-1 LAD、FBD位逻辑指令表

表1-2 STL位逻辑指令表

各种类型PLC指令系统的差异主要表现在指令表达式、指令功能及功能的完整性等方面。一般来说,满足基本控制要求的逻辑运算、计时、计数等基本指令,各种PLC上都具有,而且这些基本指令在简易编程器上的指令键上都能找到,它们是一一对应的。对于数字运算,一般的PLC也有,但在计算精度、计算类型的多少上各有不同。对其他一些增强功能的控制指令,有的PLC较多,有的可能少些。

虽然各种PLC的指令系统存在这样或那样的不同,但总的来说,PLC的编程语言都是面向生产过程、面向工程技术人员的,对电气技术人员来讲是比较容易掌握的。各种PLC命令的主要功能及其编程的主要规则也是大同小异的。