- 三菱FX系列PLC编程及应用(第3版)
- 初航等编著
- 2989字
- 2024-01-18 11:58:03
1.4 PLC的编程语言
与一般计算机语言相比,PLC的编程语言具有明显的特点,它既不同于高级语言,也不同于一般的汇编语言;它既要满足易于编写,又要满足易于调试的要求。目前,还没有一种对各厂家产品都能兼容的编程语言。但不管什么型号的PLC,其编程语言都具有以下特点。
【图形式指令结构】程序以图形方式表达,指令由不同的图形符号组成,易于理解和记忆。系统的软件开发者已把工业控制中所需的独立运算功能编制成象征性图形,用户根据自己的需要对这些图形进行组合,并输入适当的参数。在逻辑运算部分,几乎所有的厂家都采用类似于继电控制电路的梯形图,很容易被用户接受。西门子公司还采用控制系统流程图来表示,它沿用二进制逻辑元件图形符号来表达控制关系,直观易懂。对于较复杂的算术运算、定时、计数等,一般也参照梯形图或逻辑元件图给予表示。
【明确的变量常数】图形符号相当于操作码,规定了运算功能,操作数由用户输入,如K400、T120等。PLC中的变量和常数,以及其取值范围有明确规定(由产品型号决定,可查阅产品手册)。
【简化的程序结构】PLC的程序结构通常很简单,多为模块式结构,不同模块完成不同的功能,这使程序的调试者对整个程序的控制功能和控制顺序有清晰的概念。
【简化应用软件生成过程】使用汇编语言和高级语言编写程序,要完成编辑、编译和链接3个过程;而使用PLC编程语言,只需要编辑一个过程,其余由系统软件自动完成,整个编辑过程都在人机对话下进行,不要求用户有高超的软件设计能力。
【强化调试手段】无论汇编程序,还是高级语言程序,调试都是令编程人员头疼的事,而PLC的程序调试使用编程器,利用PLC和编程器进行调试,诊断和调试操作都很简单。
总之,PLC的编程语言是面向用户的,不要求使用者具备高深的知识,也不需要长时间的专门训练。
1.梯形图
梯形图(L D)是用图形符号来描述程序的一种编程语言。这种编程语言利用因果关系来描述事件发生的条件和结果,每个梯级是一个因果关系。在同一梯级中,描述事件发生的条件在左侧表示,事件发生的结果在右侧表示。梯形图是最常用的一种PLC编程语言,它来源于继电控制系统的描述。在工业过程控制领域,电气技术人员对继电控制技术较为熟悉,因此由这种逻辑控制技术发展而来的梯形图受到广泛欢迎。梯形图的特点如下所述。
与电气操作原理图相对应,具有直观性和对应性。
与原有继电控制技术一致,易于掌握和学习。
与指令表编程语言有一一对应关系,便于相互转换和程序检查。
梯形图中的继电器不是“硬”继电器,而是PLC存储器的一个存储单元。当写入该单元的逻辑状态为1时,则表示相应继电器的线圈接通,其动合触点闭合,动断触点断开;当写入该单元的逻辑状态为0时,则表示相应继电器的线圈断开,其动断触点闭合,动合触点断开。
梯形图按从左到右、自上而下的顺序排列。每个逻辑行(或称梯级)起始于左母线,然后是触点的串/并联连接,最后是线圈与右母线相连。
梯形图中每个梯级流过的不是物理电流,而是“概念电流”,从左流向右,其两端没有电源。这个“概念电流”只是用于形象地描述用户程序执行中满足线圈接通的条件。
输入继电器用于接收外部输入信号,而不能由PLC内部其他继电器的触点来驱动。因此,梯形图中只出现输入继电器的触点,而不出现其线圈。输出继电器将程序执行结果输出给外部输出设备。当梯形图中的输出继电器线圈接通时,就有信号输出,但它不是直接驱动输出设备,而要通过输出接口的继电器、晶体管或晶闸管才能实现输出。
梯形图编程示意图如图1-4所示。
图1-4 梯形图编程示意图
2.指令表
指令表(IL)是用布尔助记符(Boolean Mnemonic)来描述程序的一种编程语言。指令表与计算机中的汇编语言非常相似,采用布尔助记符来表示操作功能。指令表具有下述特点。
采用助记符来表示操作功能,容易记忆,便于掌握。
在编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计。
与梯形图有一一对应关系。
图1-4所示的梯形图程序可以变换成指令表,如图1-5所示。
图1-5 与图1-4所示梯形图对应的指令表
3.功能块图
功能块图(FBD)是采用功能块来表示其所具有的功能的,不同的功能块有不同的功能。它有若干个输入端和输出端,通过软连接的方式,分别连接到所需的其他端子,从而完成所需的控制运算或控制功能。功能块可以分为不同的类型,在同一种类型中,也可能因功能参数的不同而使功能或应用范围有所差别。例如,输入端的数量、输入信号类型等的不同,使它的使用范围也不同。由于采用软连接的方式进行功能块之间及功能块与外部端子的连接,因此控制方案的更改、信号连接的替换等操作可以很方便地实现。功能块图的特点如下所述。
以功能块为单位,从控制功能入手,使控制方案的分析和理解变得容易。
功能块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程,有较好的易操作性。
对控制规模较大、控制关系较复杂的系统,由于控制功能的关系可以较清楚地表达出来,因此编程时间可以缩短,调试时间也能减少。
由于每种功能块要占用一定的程序内存,对功能块的执行需要一定的执行时间,因此这种编程语言多在大中型PLC和集散控制系统的编程中使用。
图1-4所示的梯形图程序也可以变换成功能块图,如图1-6所示。
图1-6 与图1-4所示梯形图对应的功能块图
4.功能表图
功能表图(Sequential Function Chart,SFC)是近年来发展起来的一种编程语言。采用功能表图编程时,控制系统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员与操作人员沟通设计思想,便于程序的分工设计、检查和调试。功能表图的特点如下所述。
以功能为主线,条理清楚,便于对程序操作的理解和沟通。
对于大型的程序,可分工设计,采用较为灵活的程序结构,节省设计、调试时间。
常用于系统规模较大、程序关系较复杂的场合。
只有在活动步的命令和操作被执行后,才对活动步后的转换进行扫描,因此整个程序的扫描时间较其他编程语言的程序扫描时间要短得多。
功能表图来源于佩特利(Petri)网,由于它具有图形表达方式,能比较简单、清楚地描述并发系统和复杂系统的所有现象,并能对系统中存在的死锁、不安全等反常现象进行分析和建模,在模型的基础上可以直接编程,因此得到了广泛的应用。近几年推出的PLC和小型离散控制系统中也已提供了采用功能表图编程语言进行编程的软件。功能表图体现了一种编程思想,在程序的编制中有很重要的意义。功能表图编程示例如图1-7所示。
图1-7 功能表图编程示例
5.结构化语句描述
结构化语句(Structured Text,ST)描述是用结构化的描述语句来描述程序的一种编程语言。它是一种类似于高级语言的编程语言。在大中型的PLC系统中,常采用结构化语句描述编程语言来描述控制系统中各个变量之间的运算关系。它也被用于集散控制系统的编程。
大多数制造厂商采用的结构化语句描述与BASIC、Pascal或C等高级语言相似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化语句描述编程语言具有如下特点。
采用高级语言进行编程,可以完成较复杂的控制运算。
需要有一定的计算机高级程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员难以完成。
直观性和易操作性等较差。
常被用于采用功能块等其他编程语言较难实现的一些控制功能的实施。
6.结构化梯形图
结构化梯形图是可以使用触点、线圈、功能、功能块等回路符号,将程序以图形的形式描述的语言。它是基于继电器回路设计技术创建的图形语言,容易直观理解,因此普遍用于顺序控制程序的编制,其回路总是从左侧的母线开始。