baptize | 7.3 可编程控制器(PLC)的编程语言 | | | | mentalist |
|
7.3.4 指令语句表(IL) 指令表编程语言类似于计算机中的助记符汇编语言,它是可编程控制器最基础的编程语言。所谓指令表编程,是用一个或几个容易记忆的字符来代表可编程控制器的某种操作功能,具体指令的说明将在后面的相关内容中作详细的介绍。指令表示例如图7.14所示。 |
shas图7.14 PLC指令语句表 |
7.3.5 结构化文本语言(ST) 结构化文本(ST)是一种高级的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。 结构化文本语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构化文本非常适合应用在有复杂的算术计算的应用中。 结构化文本程序格式自由,可以在关键词与标识符之间任何地方插入制表符、换行字符和注释。对于熟悉计算机高级语言开发的人员来说,结构化语言更是易学易用。此外,结构化文本语言还易读易理解,特别是用有实际意义的标识符、批注来注释时,更是这样。 下面程序是一个用结构化文本程序实现功能块的例子。该实例描述的是如何用功能块控制箱体中的流体,箱体可以通过阀门被注满和倒空,箱体的重量由一个称重单元监视。功能块通过比较两个输入值FullWeight和EmptyWeight以确定箱体是满的还是空的。 该功能块提供了一个“Command”输入,该输入有四种状态,1.给箱体加水;2.保持不变;3.起动“Stirrer”;4. 清空箱体。实现该功能块算法的结构化文本程序如下: (*箱体状态*) TYPE_T_STATE: (FULL,NOT_FULL,EMPTIED);END_TYPE; airraid (*阀门状态*) TYPE_T_VALVE: (OPEN,SHUT);END_TYPE; FUNCTION_BLOCK TankControl VAR_IN (**) Command:SINT; Weight :REAL; FullWeight,EmptyWeight : REAL; END_VAR VAR_OUT (**) FillValve :T_VALVE:=SHUT; EmptyValve :T_VALVE:=SHUT; StirSpeed :REAL:=0.0; END_VAR VAR State :=T_STATE :=EMPTYIED; END_VAR |
|
|
浅谈结构化语言(ST)在PLC程序中的应用
(2012-02-02 17:13:01)
son of bitch转载▼
现在多数PLC程序都是采用梯形图的方式进行编写,这种编程方式编写的PLC程序直观,方便于PLC系统顺序控制的控制方式,因此得到广泛的应用。但是利用梯形图也有它的一些弱点,比如用梯形图编写数据处理和数据计算程序比较复杂,可读性不强;各个PLC厂家基于技术垄断的原因,梯形图程序的编写方式各不相同,造成了程序转化和程序升级的工作量的增加。
随着各个PLC系统的不断升级,CPU处理能力的增强,一种基于高级编程语言的新的PLC编程语言应运而生,它能够很好的补充梯形图编程的弱点,这就是结构化语言(也叫做ST语言)。
国际电工委员会(IEC)已经制订了一系列有关可编程控制器的规范,制定这些规范的目的就是为了促进控制工业中所使用的设备和编程语言的国际化。
ST语言是指,关于开放/控制中的逻辑记述方式所制定的国际标准IEC61131-3 中定义的语言。在ST语言中支持运算符、控制语句、函数,
铁观音英语
它的特点有:
通过条件语句进行分支选择,通过重复语句进行的重复的控制语句。
使用(*、/、+、-、<、>、=等)公式
可以进行程序注释
配备了丰富的函数群。有助于简化程序编写步骤。
下面就公司常用的几种PLC系统的结构化语言就行分别的介绍:
三菱系统
you to be
三菱系统只有在Q系列以上才支持ST语言的编程,同时编程软件GPPW版本也需要在8.0以上才能正常的编写和打开ST语言的程序。
下面是一段三菱ST语言的程序:
IF m150 THEN
FOR z10:=0 TO 10 BY 1 DO
z11:=z10*6;
z13:=z10*2;
IF ((d4050z10-d300z11-d301z11)<200) AND m100z13 AND m340z13 THEN m170z13:=TRUE; END_IF; (*1工位超差范围确认*)
IF ((d4050z10-d302z11-d303z11)<200) AND m101z13 AND m341z13 THEN m171z13:=TRUE; END_IF;
END_FOR;
上边程序语句实现的功能是:
1.10个工位小料超差确认功能。
2.超差确认的范围是:超过目标重量误差上限重量200g超差确认有效。
三菱系统的梯形图不支持复杂运算语句,以往要实现复杂的数据处理语句往往要编写多步语句。而通过ST语言可以很好的简化复杂数据处理程序的编写步骤,而且通过重复循环语句可以大大减少了类似程序的重复工作量。大大提高了程序编写的效率。
但是三菱系统的ST语言也有自己的缺点,程序编写不知能,不能自动区分大小写;ST语言程序占用CPU空间高于梯形图程序,对于本身内存较小的三菱CPU来说是一个很大的程序负担。
AB PLC 系统
AB PLC只有Logix系统通过RSLogix 5000编程软件可以对Logix系列的CPU编写ST程序
下面是ST 语言的例子
for j:=0 to 251 by 63 do
for i:=0 to 14 by 1 do
if Weigh_Parameter[i].RecipeNo=_R1_4_Detail[j] then
Weigh_Parameter[i].TargetValueA:=_R1_4_Detail[j+4*i+3];
Weigh_Parameter[i].TargetErrorA:=_R1_4_Detail[j+4*i+4];
Weigh_Parameter[i].TargetValueB:=_R1_4_Detail[j+4*i+5];
Weigh_Parameter[i].TargetErrorB:=_R1_4_Detail[j+4*i+6]
Weigh_Parameter[i].RecipeNumber:=_R1_4_Detail[j+1];
end_if;
end_for;
end_for;
martha graham
上述程序实现的功能:根据配方号(RecipeNo)判断,将上位机下传的配方数据转存到称量数据区。
可以看出RSLogix 5000的ST语言有以下特点:
程序编写灵活。由于5000系统编程软件数组的定义,可以非常方便的进行同类数据的整理编程。
类似于高级语言的程序处理方式。ST语言是一种类似于高级编程语言的Pasacl语言的编程方式,在5000程序中ST语言处理方式更加类似于高级语言。
同Tag设置有很好的对应。5000系统中Tag的使用,使程序同高级语言程序能够很好的进行结合,在这里通过ST语言,对于熟悉上位机语言的工程师能够很好的接受PLC程序,进行快速有效的程序对接。
西门子系统
watford
编程语言SCL(结构化控制语言)是一个可选软件包,它是按照国际电工技术委员会
IEC1131-3标准定义的高级的文本语言。它类似与PASCAL类型语言,在编写诸如回路和条
件分支时,用其高级语言指令要比STL容易。因此,SCL适合于公式计算,复杂的最优化算
法或管理大量的数据。
S7 SCL程序是在源代码编辑器中编写的。
FUNCTION_BLOCK FB20
VAR_INPUT
ENDVAL: INT;
END_VAR
VAR_IN_OUT
IQ1: REAL;
END_VAR
VAR
INDEX: INT;
END_VAR
BEGIN
CONTROL:=FALSE;
FOR INDEX:= 1 TO ENDVALUE DO
IQ1:= IQ1 * 2;
IF IQ1 >10000 THEN
CONTROL = TRUE
大连英语教师
END_IF
END_FOR;
END_FUNCTION_BLOCK
西门子的SCL(ST)相对于其他两种PLC,是最严谨的语言编写方式,同高级语言的编写方式可以说完全相同,需要函数的定义和变量的声明等等。
函数程序语句的编写和5000程序有相似之处,这里便不再详细解释。
通过三种PLC系统ST语言程序的比较,可以发现,虽然三种PLC品牌不同,编程软件不同,但是应用ST语言后程序的主题结构基本相同,只是对应不同的PLC需要在编程结构上进行一定的变化。这样利用ST语言编写的程序可以很快的从一种PLC转化成为另一种PLC所能应用的程序结构,大大降低了程序转化的工作量。为了以后程序的标准化和模块化奠定了良好的基础。不过,我们对于ST语言的了解还是不够,不能将ST语言通SFC或者结构框图程序有效的结合,这样能够使我们的PLC程序更好的结构化和模块化。