概述
FBD 和 LD 编程的基本单元是网络。每个网络都包含一个结构体,该结构体可以表示:1) 逻辑或算术表达式;2) POU(函数、功能块、程序或库 POU)的调用;或 3) 跳转或返回指令。
IL实际上不需要网络。然而,在CODESYS为了支持转换为 FBD 或 LD, IL程序也至少包含一个网络。因此,您也应该将IL程序合理地划分为网络。
功能块图(FBD)
功能块图是一种面向图形的 IEC 61131 编程语言。它与一系列网络协同工作。这样,每个网络都包含一个结构,该结构可以包含逻辑和算术表达式、功能块调用、跳转或返回语句。
这里使用了布尔代数中常见的盒子。盒子和变量通过连接线连接。网络中的信号流从左到右。编辑器中的信号流从上到下,从网络 1 开始。

提示
CFC 也是一种编程语言,其原理与 FBD 相同,但有以下区别:
CFC 编辑器不是面向网络的。
您可以在 CFC 编辑器中自由放置元素。
可以直接插入反馈路径。
执行顺序由当前插入的元素列表决定,您可以更改这些元素。
有关详细信息,请参阅下列内容:功能块图(FBD)中的编程
逻辑梯形图(LD)
梯形逻辑图(LD)是一种图形化的编程语言,类似于电路图。
一方面,梯形逻辑图适合设计逻辑开关单元,另一方面,您也可以像在 FBD 中一样创建网络。因此,您可以很好地使用 LD 来控制其他程序块的调用。
梯形逻辑图由一系列网络组成。每个网络左侧以垂直线(母线)为界。每个网络包含触点、线圈、可选运算块(POU)和连接线的电路图。
在网络的左侧,有一个触点或一系列触点,用于传递ON
或者OFF
状态,对应于布尔值TRUE
和FALSE
,从左到右。每个触点都关联一个布尔变量。当此变量TRUE
,状态通过连接线从左到右传递。否则OFF
被中继。结果,网络右侧的线圈接收到该值ON
或者OFF
来自左边和值TRUE
或者FALSE
相应地写入分配给它们的布尔变量中。
当元件串联时,表示“与”运算。当元件并联时,表示“或”运算。穿过元件的线表示对该元件取反。
输入或输出的否定用圆圈符号表示。

IEC 61131-3 定义了完整的 LD 命令集,包含不同类型的触点和线圈。触点根据其类型从左到右传导电流。线圈存储输入值。触点和线圈被赋值给布尔变量。您可以使用跳转、返回、标签和注释来补充 LD 网络。
指令表(IL)
指令表是一种类似汇编的符合 IEC 61131 的编程语言。
它支持基于累加器的编程。
指令列表 (IL) 由一系列指令组成。每条指令另起一行,包含一个运算符以及一个或多个操作数,操作数之间用逗号分隔,具体取决于操作的类型。
标签后跟冒号,可以放在指令前面。它用于标识指令,也可以用作跳转目标。
注释必须是一行中的最后一个元素。指令之间可以插入空行。
支持所有 IEC 61131-3 运算符,包括多个输入、多个输出、否定、注释、输出的设置/重置以及条件/无条件跳转。
每条指令主要基于将值加载到累加器中(LD
指令)。之后,使用累加器中的参数执行相应的操作。操作结果再次写入累加器,您需要借助ST
操作说明。
指令列表支持比较运算符(EQ, GT, LT, GE, LE, NE
) 和跳转,用于条件执行或循环的编程。跳转可以是无条件的 ( JMP
) 或条件 ( JMPC
/ JMPCN
)。在条件跳转的情况下,将检查累加器中的值是否TRUE
或者FALSE
。
