编程语言是系统提供的、用于项目应用中编写控制逻辑的工具。ControlLogix系统的编程语言符合IEC61131-3标准,有梯形图、结构化文本、功能块图和顺序功能图等4种编程语言。每种语言的指令条数有不同,指令符号和参数也有差异,有的指令只用于某种控制场合。如梯形图和结构化文本的定时器指令TON与TONR形式不同,顺序功能图不支持ASCⅢ指令等。可以根据不同的应用场合和工程技术人员或维护人员的编程习惯来选择和使用编程语言。
1、梯形图
梯形图(LD)是PLC的一种最典型的也是最基本的编程方式,它沿用了继电器的触点、线圈、串联、并联等术语和图形符号,并增加了新的功能和逻辑符号,具有直观、易学、好理解的特点,成为使用最为广泛的编程方式,适用于顺序逻辑控制、离散量控制、定时/计数控制等。
梯形图一般由2条母线和指令构成的梯级(Rung)或阶梯组成,每条梯级包括输入指令和输出指令。输入指令和左母线相接,输 出指令最后连接右母线。梯形图以结束语句(END)表示程序结束。典型的梯形图如图所示,这是一个延时通逻辑,当开关Swith_1闭合后10s,绿灯Green_Light亮。
2、结构化文本
结构化文本(ST)是一种类似于高级语言如BASIC的编程语言,能很方便地建立、编辑修改和实现比较复杂的控制算法。结构化文本包括赋值、条件、循环、重复、跳出等基本语句。特别是在数据处理、计算、存储、判断、优化算法等应用场合,以及涉及多种数据类型处理的应用中使用广泛。
上图的梯形图可以写成结构化文本语句如下图所示。
3、功能块图
功能块图(FBD)是一种可视化的编程语言,使用类似布尔代数的图形逻辑符号来表示控制逻辑。 同时引用仪表控制回路组态方式,用功能块之间的连接来建立程序结构,并放在表单中。每个功能块都定义控制策略并连接输入端和输出端来实现过程控制。
ContolLogix系统有丰富的功能块指令,适用于有数字电路基础和过程控制经验的技术人员使用。典型的功能块控制图如图所示,这是一个带复位标签的延时通功能块图,定时预置值为500ms。
4、顺序功能图
顺序功能图(SFC)也是一种图形化的编程语言,它将工作流程划分为步(Step),每一步都对应一个控制任务,这个控制任务包含实现控制的程序代码。该程序既可以是LD,也可以是ST或SFC。步用一个方框和一个步号表示,步与步之间的转换条件可以是一个条件,也可以是一段程序,用水平线和转换号表示。SFC有单序列的顺序结构、选择分支、并行分支和循环等4种结构。通过显示这些步和转换条件,可以随时掌握控制过程的状态。
SFC采用简单直观的图形符号来形象地表示和描述整个控制的过程、功能和特性,将整个逻辑分成容易处理的步和转换条件,简单易学、设计周期短、规律性强。整个程序结构清晰,可读和可维护性好,特别适合于熟悉工艺的编程人员使用。一个有选择分支的顺序功能块图如图所示,图中,程序从步3开始执行,执行完成后进入选择分支,从步7、步12和步13顺序判断转换条件来选择一个分支执行。如果第一个转换条件满足,选择执行步7;如果第2个转换条件满足,执行步12;如果第3个转换条件满足,执行步13。
5、编程语言选择
ControlLogix控制器支持的4种编程语言,除非特别指定,大多数技术人员会根据自己的喜好或掌握熟练程度来选择。实际上,每一种编程语言各有不同的特点和应用侧重点,包括指令集、编程风格、在线监视和注释等,要根据应用的具体情况和要求来综合选定,主要考虑因素见表。