PLC 的编程语言,打基础!其实它并不难,建议收藏慢慢看
|
PLC是专为工业控制而开发的装置,其主要使用者是工厂广大电气技术人员,为了适应他们的传统习惯和掌握能力,通常PLC不采用微机的编程语言,而常常采用面向控制过程、面向问题的“自然语言”编程,这些编程语言有梯形图、语句表、逻辑功能图、逻辑方程式或布尔代数式等。 梯形图表达式是在原电气控制系统中常用的接触器、继电器梯形图基础上演变而来的。它与电气控制原理图相呼应,形象、直观和实用,广大电气技术人员很容易掌握,是PLC的主要编程语言。图1所示为两种梯形图的比较。
图1 两种梯形图 由图 1 可以看出,PLC 梯形图在形式上类似于继电器控制梯形图。它是用图形符号
等连接而成,这些符号依次为常开触点、常闭触点、并联连接、串联连接、继电器线圈。梯形图按自上而下、从左到右的顺序排列。一般每个继电器线圈对应一个逻辑行。梯形图的最左边是起始母线,每一逻辑行必须从起始母线开始画起,然后是触点的各种连接,最后终了于继电器线圈。梯形图的最右边是结束母线,有时可以省去不画。 在梯形图中的每个编程元件应按一定的规则加注字母和数字串,不同的编程元件常用不同的字母符号和一定的数字串来表示。 PLC梯形图具有以下特点。 (1)梯形图中的继电器不是物理继电器,每个继电器实际上是映象寄存器中的一位,因此称为“软继电器”。相应位的状态为1,表示该继电器线圈通电,其常开触点闭合,常闭触点断开;相应位的状态为 0,表示该继电器线圈失电,其常开触点断开,常闭触点闭合。梯形图中继电器线圈是广义的,除了输出继电器、辅助继电器线圈外,还包括定时器、计数器、移位寄存器以及各种算术运算等。 (2)每个继电器对应映象寄存器中的一位,其状态可以反复读取,因此可以认为继电器有无限多个常开触点和常闭触点,在程序中可以被反复引用。 (3)梯形图是PLC形象化的编程手段,梯形图两端是没有任何电源可接的。梯形图中并没有真实的物理电流流动,而仅只是“概念”电流,是用户程序解算中满足输出执行条件的形象表示方式。“概念”电流只能从左向右流动。 (4)输入继电器供PLC接收外部输入信号,而不是由内部其他继电器的触点驱动,因此,梯形图中只出现输入继电器的触点,而不出现输入继电器的线圈。输入继电器的触点表示相应的输入信号。 (5)输出继电器供PLC作输出控制用。它通过开关量输出模块对应的输出开关(晶体管、双向晶闸管或继电器触点)去驱动外部负载。因此,当梯形图中输出继电器线圈满足接通条件时,就表示在对应的输出点有输出信号。 (6)当PLC处于运行状态时,PLC就开始按照梯形图符号排列的先后顺序(从上到下、从左到右)逐一处理,也就是说,PLC对梯形图是按扫描方式顺序执行程序。 (7)用户程序解算时,输入触点和输出线圈状态是从 I/O 映象寄存器中读取的,不是解算时现场开关的实际状态。梯形图中前面程序解算的结果马上可以被后面程序的解算所利用。 语句表是一种与汇编语言类似的助记符编程表达式。在许多小型 PLC 的编程器中没有CRT屏幕显示,或没有较大的液晶屏幕显示,就用一系列PLC操作命令组成的语句表将梯形图控制逻辑描述出来,并通过编程器输入到机器中去。 不同的PLC,语句表使用的助记符不相同。以OMRON的PLC为例,对应图1(b)的语句表为: LD 0.00 (表示逻辑操作开始,常开触点与母线连接) OR 100.00 (表示常开触点并联) AND NOT 0.01 (表示常闭触点串联) OUT 100.00 (表示输出) 语句是用户程序的基础单元,每个控制功能由一条或多条语句组成的用户程序来完成。每条语句是规定 CPU 如何动作的指令,它的作用和微机的指令一样,PLC 的语句也由操作码和操作数组成,故其表达式也和微机指令类似。 PLC的语句:操作码 操作数 操作码用来指定要执行的功能,告诉CPU该进行什么操作;操作数内包含为执行该操作所必须的信息,告诉CPU用什么地方的数据来执行此操作。 操作数应该给CPU指明为执行某一操作所需要信息的所在地,所以操作数的分配原则如下。 (1)为了让CPU区别不同的编程元件,每个独立的元件应指定一个互不重复的地址。 (2)所指定的地址必须在该型机器允许的范围之内。超出机器允许的操作参数,PLC不予响应,并以出错处理。 语句表编程有键入方便、编程灵活的优点,但不如梯形图形象、直观。 功能块(FB)是一个将处理功能标准化的基本程序单元。功能块由 PLC 生产厂家以库文件形式提供,或由用户自行定义。 功能块定义时包括两部分:算法和变量定义。图2所示为定义时钟脉冲“ClockPulse”功能块示例,其中,图2(a)为算法和变量定义,图2(b)为生成的功能块。
图2 功能块定义 1.算法 功能块的算法可由梯形图或结构文本编写,OMRON由编程软件CX-P(5.0及以上版本)实现,图5.16(a)中采用的是梯形图,算法使用变量名而非实际的I/O地址编写。 2.变量定义 变量定义要求列出每个变量的类型和属性。 (1)变量类型 内部变量:只能在功能块内部使用的变量。内部变量不能与功能块的I/O参数直接建立联系,例如,从功能块的输入参数直接获得数据,或将数据直接从功能块输出。 输入变量:输入变量从功能块外面指定的输入参数中获得数据。每个功能块都有一个默认输入变量EN,EN为使能变量,功能块创建时自动生成,不需要用户定义,当EN处于ON时,功能块执行。 输出变量:输出变量可以将数据赋给功能块外面指定的输出参数。每个功能块都有一个默认输出变量 ENO,ENO 为使能输出变量,功能块创建时自动生成,不需要用户定义,功能块执行时,ENO处于ON状态。 外部变量:外部变量是由CX-P定义保存的系统变量(条件标志和一些辅助区域位),或用户定义的全局符号(可用于每个实例中)。 (2)属性 |











