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种编程语言,除非特别指定,大多数技术人员会根据自己的喜好或掌握熟练程度来选择。实际上,每一种编程语言各有不同的特点和应用侧重点,包括指令集、编程风格、在线监视和注释等,要根据应用的具体情况和要求来综合选定,主要考虑因素见表。
