S7-200系列PLC的基本编程语言有梯形图(LAD)、语句表(STL)和功能图(FBD)。其中梯形图和功能图是图形语言,语句表是文字语言。不同的编程语言可供不同知识背景的人员采用,下面简单介绍这几种PLC编程语言的特点。
梯形图是用得最多的可编程控制器图形语言。梯形图与继电器电控系统的电路图很相似,具有直观易懂的优点,很容易被工厂熟悉继电器控制的电气工程师掌握,特别适用于开关量逻辑控制。
梯形图主要由触点、线圈和用方框表示的功能块组成。触点代表逻辑输入条件,如外部的开关、按钮等;线圈代表逻辑输出结果,用来控制外部的指示灯、中间继电器等;功能块代表附加指令,如定时器、计数器和数学运算指令。
梯形图程序允许程序仿真来自电源的能流通过一系列逻辑输入条件,决定是否启用逻辑输出。一个梯形图程序包括左侧提供能流的能量线,闭合的触点允许能量通过它们流到下一个元素,而打开的触点则阻止能量的流动。图1-4给出了梯形图程序的一个例子。当图中I0.0与I0.1的触点接通,或I0.0与I0.2的触点接通时,有一个假想的能流通过Q0.0线圈。利用能流的概念,可以帮助我们更好地理解和分析梯形图程序,能流只能从左向右、从上向下流动。
图1-4 梯形图程序
触点和线圈组成的独立电路称为网络(Network),用编程软件生成的梯形图程序有网络编号,允许以网络为单位,给梯形图增加注释。在网络中,程序的逻辑运算按从左到右的方向执行,与能流方向一致。各网络按从上到下的顺序执行,执行完成所有的网络后,返回最上面的网络重新执行。
可编程控制器的指令是一种与微机汇编语言中的指令相似的助记符表达式,但比汇编语言易懂易学。语句表编程语言比较适合于熟悉可编程控制器和逻辑程序设计经验丰富的程序员使用,语句表可以实现某些不能用梯形图或功能块图实现的功能。与图1-4所示的梯形图程序等价的指令表程序如下:
S7-200 CPU从上到下按照程序的次序执行每一条指令,当执行到底部时,再从头重新开始执行每条指令。在执行程序时要用到逻辑堆栈,梯形图和功能图编辑器会自动插入处理栈操作所需要的指令。在语句表中,必须由编程人员加入这些堆栈处理指令。
功能图程序由通用逻辑门图形组成。在程序编辑器中看不到触点和线圈,但是有等价的、以框指令形式出现的指令。程序逻辑由这些框指令之间的连接决定。也就是说,一条指令的输出可以被用来启用另一条指令,这样可以建立所需要的控制逻辑。这样的连接概念使用户可以解决各种各样的逻辑问题。
功能图编程语言是类似于数字逻辑门电路的编程语言,有数字电路基础的人很容易理解掌握。功能图程序使用类似与门、或门的方框来表示逻辑关系,迎合了逻辑设计人员的思维习惯。图1-5所示是由图1-4中的梯形图程序转换来的功能图程序。
图1-5 功能图程序
上述3种编程语言既可独立使用,又可混合使用。STEP 7-Micro/WIN软件可为用户提供语言间的相互转换。梯形图或功能图程序一定能转换成语句表,而语句表编写的程序不一定能转换成梯形图或功能图。原因是某些指令只有语句表形式,没有梯形图和功能图的表示方式。梯形图程序中的逻辑关系一目了然,易于理解,与继电器电路图的表达方式极为相似,所以在设计复杂的开关量控制程序时,一般使用梯形图语言。语句表程序输入方便快捷,可以为每条语句加上注释,适用于复杂程序的阅读。在设计通信、数据运算等高级应用程序时,建议使用语句表语言。