首页 理论教育 编程语言简介

编程语言简介

时间:2023-06-24 理论教育 版权反馈
【摘要】:编程语言最为复杂,多种多样,看似相同,但不通用。最常用的可以划分为以下5类编程语言:1.梯形图梯形图是PLC使用得最多的图形编程语言,被称为PLC的第一编程语言。梯形图常被称为电路或程序,梯形图的设计称为编程。

编程语言简介

最常用的编程语言有两种:一种是梯形图;另一种是助记符语言表。采用梯形图编程,因为它简单易懂,但需要一台个人计算机及相应的编程软件;采用助记符形式便于实验,因为它只需要一台简单的编程器

编程语言最为复杂,多种多样,看似相同,但不通用。最常用的可以划分为以下5类编程语言:

1.梯形图

梯形图是PLC使用得最多的图形编程语言,被称为PLC的第一编程语言。梯形图与电器控制系统的电路图很相似,具有直观易懂的优点,很容易被工厂电气人员掌握,特别适用于开关量逻辑控制。梯形图常被称为电路或程序,梯形图的设计称为编程。

(1)梯形图的格式

梯形图一般有多个梯级组成,每一个梯级又有输入及输出指令组成。在一个梯级中,输出指令应出现在梯形图的最右边,而输入指令则出现在输出指令的左边,如图3-6所示。

978-7-111-54864-5-Part02-5.jpg

图3-6 梯形图的基本结构

当输入指令所表示的梯级条件为真时则开始执行输出指令,否则不执行。因此,允许在一个梯级中无输入指令—表示梯级永远为真;也允许有多个输入指令。串联意味着几个条件之间是“与”的关系,并联则表示几个条件之间是“或”的关系。输出指令则不允许串联,但允许并联,表示梯级条件为真时,几个输出指令可并一执行,如图3-7所示。

978-7-111-54864-5-Part02-6.jpg

图3-7 梯形图基本结构

该梯级表示,当输入为真时,_IO_EM_DI_00被触发,则输出_IO_EM_DO_00和_IO_EM_DO_01同时输出为1

(2)梯形图的编程特点及注意事项

1)梯形图按行从上至下编写,每一行从左往右顺序编写。PLC程序执行顺序与梯形图的编写顺序一致。

2)左、右边垂直线称为起始母线、终止母线。每一逻辑行必须从起始母线开始画起,终止于继电器线圈或终止母线

3)梯形图的起始母线与线圈之间一定要有触点,而线圈与终止母线之间则不能有任何触点。

4)梯形图表示的并不是一个实际电路而只是一个控制程序,其间的连线表示的是它们之间的逻辑关系,即所谓“软接线”。

5)各输入输出并非是物理实体,而是“软继电器”。每个“软继电器”仅对应PLC存储单元中的一位。该位状态为“1”时,对应的继电器线圈接通,其常开触点闭合、常闭触点断开;状态为“0”时,对应的继电器线圈不通,其常开、常闭触点保持原态。

6)梯形图中流过的电流不是物理电流,而是“概念”电流,是用户程序运算中满足输出执行条件的形象表示方式。“概念”电流只能从左向右流。

7)梯形图中的继电器接点可在编制用户程序中无限引用,即可常开又可常闭。

8)梯形图中用户逻辑运算解得的结果,可马上为后面用户程序的运算所引用。

9)当PLC处于运行状态时,就开始按照梯形图符号排列的先后顺序(从上到下、从左到右)逐一处理,也就是说,PLC对梯形图是按扫描方式顺序执行程序的。

2.结构化文本

结构文本(ST)是为IEC61141-3标准创建的的一种专用高级语言,与梯形图相比,它能实现复杂的数学运算,编写的程序更加简洁紧凑。

(1)结构化文本特点

1)高级文本编程语言;

2)结构化的编程方式;

3)简单的标准结构;

4)快速高效的编程;

5)使用直观灵活;

6)与PASCAL类似;

7)符合IEC61141-3标准。

(2)结构化文本主要语法

1)结构化文本程序是一系列ST语句。下列规则适用于ST程序:

每个语句以分号(";")分隔符结束;

源代码(例如变量、标识符、常量或语言关键字)中使用的名称用不活动分隔符(例如空格字符)分隔,或者用意义明确的活动分隔符(例如“>”分隔符表示“大于”比较)分隔;

注释(非执行信息)可以放在ST程序中的任何位置。注释可以扩展到多行,但是必须以“(*”开头,以“*)”结尾。不能在注释中使用注释。

2)下面是基本ST语句类型:

赋值语句(变量:=表达式;)

函数调用

功能块调用

选择语句(例如IF、THEN、ELSE、CASE...)

迭代语句(例如FOR、WHILE、REPEAT...)

控制语句(例如RETURN、EXIT...)

用于与其他语言链接的特殊语句

3)当输入ST语法时,下列项目以指定的颜色显示:

基本代码(黑色)

关键字(粉色)

数字和文本字符串(灰色)

注释(绿色)

4)在活动分隔符、文本和标识符之间使用不活动分隔符可增加ST程序的可读性。下面是ST不活动分隔符:

空格(www.xing528.com)

Tab

行结束符(可以放在程序中的任何位置)

5)使用不活动分隔符时,需要遵循以下规则:

每行编写的语句不能多于一条

使用Tab来缩进复杂语句

插入注释以提高行或段落的可读性,见表3-1。

表3-1 ST语法可读性示例

978-7-111-54864-5-Part02-7.jpg

(3)调用函数和功能块

ST编程语言可以调用函数。可以在任何表达式中使用函数调用。函数调用属性见表3-2。

表3-2 ST函数调用属性

978-7-111-54864-5-Part02-8.jpg

当在函数主体中设置返回参数的值时,可以为返回参数赋予与该函数相同的名称:FunctionName:=;

示例1:IEC 61131-3函数调用

(*主ST程序*)

(*获取一个整型值并将其转换成有限时间值*)

ana timeprog:=SPlimit(tprog cmd);

appl timer:=ANY TO TIME(ana timeprog*100);

(*被调用的FBD函数名为“SPlimit”*)

示例2:“C”函数调用-与IEC 61131-3函数调用的语法相同

(*复杂表达式中使用的函数:min、max、right、mlen和left是标准“C”函数

*)

limited value:=min(16,max(0,input value));

rol msg:=right(message,mlen(message)-1)+left(message,1);

ST编程语言调用功能块。可以在任何表达式中使用功能块调用。功能块调用属性见表3-3。

表3-3 功能块调用属性说明

978-7-111-54864-5-Part02-9.jpg

当在功能块主体中设置返回参数的值时,可以通过将返回参数的名称与功能块名称相连来分配返回参数:

FunctionBlockName.OutputParaName:=;

示例

(*调用功能块的ST程序*)

(*在变量编辑器中声明块的实例:*)

(*trigb1:块R TRIG-上升沿检测*)

(*从ST语言激活功能块*)

trigb1(b1);

(*返回参数访问*)

If(trigb1.Q)Then nb edge:=nb edge+1;End if;

3.功能块图

功能块具有多个输入和输出参数。这些已经过实例化,意味着会针对每个实例复制功能块的局部变量。调用程序中的功能块时,实际上调用了在其中已调用相同代码的块的实例,但是所用数据为已被分配给该实例的数据。会将实例的变量值从一个循环存储至另一个循环。

功能块可由项目中的任意程序来调用。功能块可调用函数或其他功能块。必须使用功能块的每个调用(输入)参数或返回(输出)参数的类型或唯一名称,来显式定义该功能块的接口

功能块可具有多个输出参数。功能块返回参数的值因各种不同编程语言而异。功能块名称和功能块参数名称最多可包含128个字符。功能块参数名称可以字母或下划线字符开头,后跟字母、数字和单个下划线字符。

如图3-8所示,在CCW(一体化编程组态软件中集成的功能块TP指令,主要功能为在上升沿时,将内部计时器)增加至指定值;如果计时器结束,请重置内部计时器。具体的功能块的功能以及应用,我们会在指令部分进行详细的介绍。

4.顺序功能图

顺序功能图(Sequential Function Chart,SFC)又称状态转移图,它是描述控制系统的控制过程、功能和特性的一种图形,同时也是设计PLC顺序控制程序的一种有力工具。

978-7-111-54864-5-Part02-10.jpg

图3-8 TP指令

顺序功能法就是按照生产工艺预先规定的顺序,在各个输入信号的作用下,根据内部状态和时间的顺序,在生产过程中各个执行机构自动地有秩序地进行操作。

这种语言在西门子等其他品牌的PLC中应用很广泛,这里就不做详细地介绍了。

5.指令表

它为优化编码性能提供了一个环境,与汇编语言非常相似。指令表和梯形图之间可以相互转化,通常情况下不进行指令表编程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈