IEC 611313PLC学习笔记.docx

上传人:b****5 文档编号:7283050 上传时间:2023-01-22 格式:DOCX 页数:48 大小:620.16KB
下载 相关 举报
IEC 611313PLC学习笔记.docx_第1页
第1页 / 共48页
IEC 611313PLC学习笔记.docx_第2页
第2页 / 共48页
IEC 611313PLC学习笔记.docx_第3页
第3页 / 共48页
IEC 611313PLC学习笔记.docx_第4页
第4页 / 共48页
IEC 611313PLC学习笔记.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

IEC 611313PLC学习笔记.docx

《IEC 611313PLC学习笔记.docx》由会员分享,可在线阅读,更多相关《IEC 611313PLC学习笔记.docx(48页珍藏版)》请在冰豆网上搜索。

IEC 611313PLC学习笔记.docx

IEC611313PLC学习笔记

IEC611313PLC学习笔记

IEC61131-3规定了可编程控制器编程语言的 语法 和 语义 。

这一套统一的编程语言分如下两类:

1.两种文本语言。

 IL(InstructionList) 和 ST(StructuredText)

2.两种图形语言。

 LD(LadderDiagram) 和 FBD(FunctionBlockDiagram)

顺序功能图(SFC)元素 用来结构化描述可编程控制器程序和功能块的内部组织。

 

配置元素 用来支持将可编程控制器程序安装到可编程控制器系统中。

符合 IEC61131-3的可编程控制器程序应满足如下要求:

1.对于特定的语言,只使用该标准规定的特性。

2.不使用语言的扩展特性。

3.不依赖于对 实现相关 的任何特别解释。

概述

定义

聚集 :

数据对象结构化的收集所形成的数据类型。

赋值 :

给定变量或 聚集 值的机制。

数据类型 :

取值的集合以及允许的操作集合。

声明 :

建立 语言元素 定义的机制。

分隔符 :

用来分隔程序语言元素的字符或字符的组合。

求值 :

在程序执行期间,为表达式、功能、网络或功能块的输出确定值的过程。

直接量 :

直接表示一个值的词法单元。

保持的数据 :

以某种方式存储,在经过断电/通电序列后,能保持值不变的数据。

语义 :

编程语言的符号元素之间的关系,它们的含义、解释以及使用。

软件模型

在可编程控制器软件模型中, 配置 是对应于可编程控制器系统的语言元素, 资源 则对应于信号处理功能及其人机接口、传感器-执行器接口(如果有的话)。

一个 配置 包含一个或更多的 资源 ,每个 资源 包含一个或更多的 程序 。

而程序的运行受零个或更多 任务 的控制, 程序 可能包含零个或更多 功能块 或其他语言元素。

通信模型

1.在同一程序内,通过直接将一个程序元素的输出连接到另一个程序元素的输入,完成变量间的通信。

2.在同一配置中的程序之间,变量的值可以通过全局变量来通信。

3.使用通信功能块,变量的值可以在同一程序的不同部分之间、同一或不同配置的不同程序之间、可编程控制器程序和非可编程控制器系统之间进行通信。

4.此外,可编程控制器或非可编程控制器系统间通过 访问路径 传输数据。

程序设计模型

可编程控制器编程语言元素有如下的分类:

∙数据类型和变量

∙程序组织单元:

功能、功能块、程序

∙顺序功能图(SFC)元素

∙配置元素:

全局变量、资源、任务、访问路径

这些元素的组合应遵守下列规则:

1.导出数据类型的声明可以使用标准数据类型(包括基本数据类型和一般数据类型)、先前导出的任何数据类型。

2.导出功能的声明可以使用标准或导出数据类型、标准功能、先前导出的任何功能。

该声明可以使用IL,ST,LD,FBD语言。

3.导出功能块的声明可以使用标准或导出数据类型和功能、标准功能块、先前导出的任何功能块。

该声明可以使用IL,ST,LD,FBD语言和SFC元素。

4.程序声明可以使用标准或导出数据类型、功能和功能块。

该声明可以使用IL,ST,LD,FBD语言和SFC元素。

5.通过配置元素,可以将程序组合形成配置。

共同元素

字符的使用

文本/图形语言 字符集 定义在ISO-646IRV中,同时有其他字符集的扩展,如ISO10646-1定义的“拉丁-1补充”。

标识符 是由字母、数字、下划线组成的字符串,并且由字母或下划线开始。

∙可编程控制器编程语言是大小写不敏感的。

∙标识符中的下划线是有意义的,然而多个连续的下划线是不允许的。

∙标识符至少应支持6个字符。

注释 是在程序中引入文本的语言构造,并且对程序的执行没有影响。

在可编程控制器语言中,注释的分隔符为(* 和 *)。

嵌套的注释将被当做 错误 。

编译指示 是在程序组织单元中引入文本的语言构造,并且可能会对程序执行前的准备产生影响。

在可编程控制器语言中,编译指示的分隔符为{ 和 }。

数据的外部表示

数字直接量

有两种数字直接量:

整数和实数。

数字直接量定义为十进制数或其他基底的数。

在数字直接量中,插在数字间的单个 _ 是没有意义的,其他下划线的使用都是不允许的。

示例:

-120123_456+986

-12.00.00.45603.14159_26

-1.34E-12or-1.34e-12

16#FFor16#ff(十进制255)

FALSETRUE

UINT#16#9AFDINT#5

字符串直接量

字符串直接量包括单字节和双字节编码的字符。

单字符 字符串以'分隔,$与随后的两位16进制数表示8位字符码。

 双字节 字符串以"分隔,$与随后的4四位16进制数表示16位字符码。

$与随后的一个字符表示转移。

示例:

'''A''$'''ÄË'=='$C4$CB'

"""A""$"""ÄË"=="$00C4$00CB"

STRING#'OK'==WSTRING#'OK'

转义列表

组合

解释

$$

美元符号

$'/$"

引号

$L/$l

换行

$N/$n

新行

$P/$p

换页

$R/$r

回车

$T/$t

制表符

时间直接量

有两类的时间直接量:

1.持续时间 来度量或控制一个控制事件消耗的时间。

2.时间点 (可以包括日期)来同步控制事件的开始或结束。

o可选的单个_可以用来分隔不同的时间单位。

o持续时间的最大单位允许“溢出。

o最小单位可以是不含指数的实数。

关键字

持续时间

时间点

全拼

TIME

DATE TIME_OF_DAY DATE_AND_TIME

简写

T

D TOD DT

示例:

T#14.7ht#5d14h12m18s3.5msTIME#-14ms

DATE#1984-06-25tod#15:

36:

55.36

date_and_time#1984-06-25-15:

36:

55.36

数据类型

基本数据类型

编号

关键字

数据类型

长度

1

BOOL

布尔

1

2

SINT

短整数

8

3

INT

整数

16

4

DINT

双精度整数

32

5

LINT

长整数

64

6

USINT

无符号短整数

8

7

UINT

无符号整数

16

8

UDINT

无符号双精度整数

32

9

ULINT

无符号长整数

64

10

REAL

实数

32

11

LREAL

长实数

64

12

TIME

持续时间

13

DATE

如期

14

TIME_OF_DAY/TOD

时间(当日)

15

DATE_AND_TIME/DT

时间与日期

16

STRING

可变长度单字节字符串

8

17

WSTRING

可变长度双字节字符串

16

18

BYTE

长为8的位串

8

19

WORD

长为16的位串

16

20

DWORD

长为32的位串

32

21

LWORD

长为64的位串

64

一般数据类型

在功能和功能块的输入/输出说明中,除 基本数据类型 外,还可以使用 一般数据类型层级 。

一般数据类型用前缀ANY标识。

其层级关系如下:

ANY

ANY_DERIVED

ANY_ELEMENTARY

ANY_MAGNITUDE

ANY_NUM

ANY_REAL

LREAL

REAL

ANY_INT

LINT,DINT,INT,SINT

ULINT,UDINT,UINT,USINT

TIME

ANY_BIT

LWORD,DWORD,WORD,BYTE,BOOL

ANY_STRING

STRING

WSTRING

ANY_DATE

DATE_AND_TIME

DATE,TIME_OF_DAY

导出数据类型

导出数据类型 使用TYPE...END_TYPE声明。

例如,从基本数据类型直接导出的数据类型:

TYPERU_REAL:

REAL;END_TYPE.

枚举

TYPEANALOG_SIGNAL_TYPE:

(SINGLE_ENDED,DIFFERENTIAL):

=SINGLE_ENDED;

END_TYPE

在 枚举 中,可以使用类型前缀(如ANALOG_SIGNAL_TYPE#)可用来避免歧义。

如果没有提供足够的类型信息,将被视为 错误 。

枚举 类型的默认初始值为第一个标识符,或用户在类型声明中使用:

=指定的值。

子域

TYPEANALOG_DATA:

INT(-4095..4095);END_TYPE

子域 声明指定了数据取值的上限和下限。

如果子范围类型的值超出了其规定的范围,将被视为 错误 。

子域 数据类型的初始值为取值的下限。

结构

TYPE

ANALOG_CHANNEL_CONFIGURATION:

STRUCT

RANGE:

ANALOG_SIGNAL_RANGE;

MIN_SCALE:

ANALOG_DATA;

MAX_SCALE:

ANALOG_DATA;

END_STRUCT;

ANALOG_16_INPUT_CONFIGURATION:

STRUCT

SIGNAL_TYPE:

ANALOG_SIGNAL_TYPE;

FILTER_PARAMETER:

SINT(0..99);

CHANNEL:

ARRAY[1..16]OFANALOG_CHANNEL_CONFIGURATION;

END_STRUCT;

END_TYPE

对于 结构 和 数组 ,初始值对应基本数据类型的初始值,除非用户使用:

=指定。

基本数据类型的初始值均为0,日期除外:

0000-00-01。

数组

TYPEANALOG_16_INPUT_DATA:

ARRAY[1..16]OFANALOG_DATA;

END_TYPE

STRING 和 WSTRING 的默认长度是 实现相关 的,但用户可以指定,例如:

TYPESTR10:

STRING[10]:

='ABCDEF';END_TYPE。

变量

表示

单元素变量

单元素变量 定义为表示单个基本数据类型数据元素的变量。

这部分定义了变量的 符号表示 和 直接表示 (数据元素与可编程控制器输入/输出/存储器结构的物理/逻辑地址的关联)。

单元素变量 的 直接表示 由一个%,一个 地址前缀 ,一个 大小前缀 ,和一个或更多由.分隔的无符号整数组成。

*可用于地址前缀,表示 直接表示 还没有完全指定。

变量地址应在 配置 的VAR_CONFIG...END_VAR 构造内完全指定,否则将产生 错误 。

位置前缀

含义

地址前缀

含义

I

输入

X/None

单个位

Q

输出

B

字节(8位)

M

存储器

W

字(16位)

*

未指定

D

双字(32位)

L

长字(64位)

示例

%QX75or%Q75(*输出的75位*)

%IW2.5.7.1(*在输入的物理/逻辑层级2.5.7.1的字*)

一个可编程控制器通过分级寻址访问另一个控制器的数据应被视为 语言扩展 。

最大级数是 实现相关 的。

多元素变量

在本标准中定义的 多元素变量 包括 数组 和 结构 。

数组 是包含有着同样属性的数据对象的 聚集 ,每个数据对象可通过下标来引用。

结构 是命名数据元素收集而成的数据类型。

示例

OUTARY[%MB6,SYM]:

=INARY[0]+INARY[7]-INARY[%MB6]*%IW62;

MODULE_5_CONFIG.SIGNAL_TYPE:

=SINGLE_ENDED;

MODULE_5_CONFIG.CHANNEL[5].RANGE:

=BIPOLAR_10V;

初始化

当配置元素(资源、配置)启动时,每个与该元素关联的变量可以取如下的初始值:

∙上次停机时该变量的值(保持的值)。

∙用户指定的初始值。

∙该变量关联的数据类型的默认初始值。

用户可通过RETAIN限定符来指定变量是保持的。

声明

文本形式的变量声明使用关键字VAR(或其他VAR关键字),接着一个可选的限定符,接着一个或更多的用;分隔的声明,以关键字END_VAR结束。

变量声明涉及的关键字

关键字

变量使用

VAR

内部变量,组织单元内使用

VAR_INPUT

外部提供,组织单元内只读

VAR_OUTPUT

组织单元提供,外部实体使用

VAR_IN_OUT

外部实体提供,组织单元内可读写

VAR_EXTERNAL

配置通过VAR_GLOBAL提供,组织单元内可读写

VAR_GLOBAL

全局变量声明

VAR_ACCESS

访问路径声明

VAR_TEMP

功能块和程序内的临时存储

VAR_CONFIG

实例初始化和地址赋值

RETAIN

保持的变量

NON_RETAIN

非保持的变量

CONSTANT

常数(只读变量)

AT

地址赋值

在 功能块 和 程序 里,以VAR_TEMP...END_VAR构造声明的变量在每次 实例调用 都会初始化。

变量声明的作用域对于所在的程序组织单元是 局部的 。

VAR_GLOBAL...END_VAR变量只有通过VAR_EXTERNAL声明后才是可访问的,且VAR_EXTERNAL中的类型声明与对应的VAR_GLOBAL应保持一致,否则将产生 错误 。

类型赋值

物理/逻辑地址到符号表示变量的赋值应使用AT关键字。

如果没有这样的赋值,变量将被自动分配到可编程控制器存储器中合适的地址。

示例

VARRETAIN

AT%IW6.2:

WORD;

LIM_SW_S5AT%IX27:

BOOL;

INARYAT%IW6:

ARRAY[0..9]OFINT;

THREE:

ARRAY[1..5,1..10,1..8]OFINT;

END_VAR

赋初始值

初始值可以通过使用VAR_CONFIG...END_VAR构造提供的实例初始化特性来完成。

实例初始化提供的初始值总是应当覆盖类型提供的初始值。

在VAR_EXTERNAL声明中不允许给定初始值。

示例

变量初始化

VAR

VALVE_POSAT%QW28:

INT:

=100;

OUTARYAT%QW6:

ARRAY[0..9]OFINT:

=[10

(1)];

OKAY:

STRING[10]:

='OK';

TBT:

ARRAY[1..2,1..3]OFINT:

=[1,2,3(4),6];

END_VAR

结构

(*结构声明*)

TYPE

ANALOG_CHANNEL_CONFIGURATION:

STRUCT

RANGE:

ANALOG_SIGNAL_RANGE;

MIN_SCALE:

ANALOG_DATA;

MAX_SCALE:

ANALOG_DATA;

END_STRUCT;

ANALOG_16_INPUT_CONFIGURATION:

STRUCT

SIGNAL_TYPE:

ANALOG_SIGNAL_TYPE;

FILTER_PARAMETER:

SINT(0..99);

CHANNEL:

ARRAY[1..16]OFANALOG_CHANNEL_CONFIGURATION;

END_STRUCT;

END_TYPE

(*结构初始化*)

VARMODULE_8_CONFIG:

ANALOG_16_INPUT_CONFIGURATION:

=(

SIGNAL_TYPE:

=DIFFERENTIAL,

CHANNEL:

=[

4(

(RANGE:

=UNIPOLAR_1_5V)

),

RANGE:

=BIPOLAR_10_V,

MIN_SCALE:

=0,

MAX_SCALE:

=500

]

);

END_VAR

功能块初始化

VARTempLoop:

PID:

=(

PropBand:

=2.5,

Integral:

=T#5s

);

END_VAR

程序组织单元

IEC61131-3定义的 程序组织单元 包括:

功能、功能块、程序。

这些程序组织单元不应是 递归的,即对一个程序组织单元的调用不会再次引发对该类型程序组织单元的调用。

功能

功能 :

执行后产生一个结果数据元素,和任意数量的输出元素的程序组织单元。

功能结果可以是多值的,即数组或结构。

功能不能包含状态信息,即每次同样参数的调用应得到同样的结果。

已声明的功能可以在其他程序组织单元中调用。

功能使用示例-ST语言:

VARX,Y,Z,RES1,RES2:

REAL;EN1,V:

BOOL;END_VAR

RES1:

=DIV(IN1:

=COS(X),IN2:

=SIN(Y),ENO=>EN1);

RES2:

=MUL(SIN(X),COS(Y));

Z:

=ADD(EN:

=EN1,IN1:

=RES1,IN2:

=RES2,ENO=>V);

功能使用示例-FBD语言:

+-----++------++------+

X---+-|COS|--+-|ENENO|-----|ENENO|---V

||||||||

|+-----++---|DIV|-----|ADD|---Z

|||||

|+-----+||+-||

Y-+---|SIN|------|||+------+

||||+------+|

||+-----+|

|||

||+-----++------+|

|+-|SIN|--+-|ENENO|-|

|||||||

|+-----++--|MUL|---+

|||

|+-----+||

+---|COS|------||

||+------+

+-----+

表示法

∙对 VAR_OUTPUT 的赋值可以空白,也可以用变量。

∙对 VAR_IN_OUT 参数的赋值应该是变量。

∙对 VAR_INPUT 的赋值可以为空白、常量、变量和功能调用。

对于后者,功能的结果将被作为实参。

∙在图形语言中,功能应表示为矩形块,大小取决于输入参数等信息的多少。

功能名应卸载矩形块内部。

每个输入输出都用一根线来表示。

∙对于输入输出变量名的规定:

 

o没有指定输入变量名时,默认名为:

IN1, IN2(从上到下顺序)

o只有一个未命名输入时,默认名为:

IN

o上述默认名可以出现在功能表示的左边,也可以不出现。

∙还可以使用附加输入 EN 和附加输出 ENO,它们分别位于左右的最上方。

∙应使用信号线进行参数的连接(包括功能结果)。

∙布尔类型的输入输出可用 O 进行翻转。

∙VAR_IN_OUT 应被适当地连接。

∙参数列表是一系列实参到形参的赋值组成的集合。

 

oVAR_IN VAR_IN_OUT 赋值使用 :

=

oVAR_OUT 赋值使用 =>

∙除EN ENO外,参数列表中参数的数目、类型和顺序都应与功能定义相符。

执行控制

附加的 EN(Enable)输入、ENO(EnableOut)输出可用于控制功能的执行,规则如下:

1.如果 EN 值为 FALSE,功能被调用时不应执行,且 ENO 应被PC系统重置为 FALSE。

否则功能应被执行,且 ENO 应被PC系统置为 TRUE,功能操作中也可以对ENO进行赋值。

2.当功能执行中发生错误时,ENO 应被PC系统置为 FALSE,否则制造商应提供的其他的错误处理方式。

3.当ENO值为FALSE时,功能所有输出的值均 实现相关 。

EN ENO 使用示例:

(*LD语言*)

+-------+|

|ADD_EN|+|ADD_OK|

+---||---|ENENO|---()---+

||||

|A---||---C|

|B---|||

+-------+|

(*FBD语言*)

+-----+

ADD_EN---|EN|

A---|+|---C

B---||

+-----+

声明

文本语言中,功能声明由以下几部分组成:

1.关键字 FUNCTION;

2.VAR_INPUT...END_VAR 构造,规定输入变量;

3.VAR_IN_OUT...END_VAR构造和VAR_OUTPUT...END_VAR构造,分别规定输入-输出和输出变量。

4.VAR...END_VAR 构造,规定内部变量;

5.功能体。

规定功能对这些变量的操作,通过对与功能同名的变量赋值来设置返回值。

6.终止关键字 END_FUNCTION

图形语言中,功能声明由以下几部分组成:

1.关键字 FUNCTION END_FUNCTION,或等效的图形元素;

2.功能名,功能结果和功能变量的名称、类型、初始值的图形说明;

3.内部变量的名称、类型、初始值的图形说明。

4.功能体,同上。

每个 资源 中的功能声明数目是一个 实现相关 的参数。

功能声明示例-ST语言:

FUNCTIONSIMPLE_FUN:

REAL

(*Externalinterfacespecification*)

VAR_INPUT

A,B:

REAL;

C:

REAL:

=1.0;

END_VAR

VAR_IN_OUTCOUNT:

INT;END_VAR

VARCOUNTP1:

INT;END_VAR

(*Functionbodyspecification*)

COUNTP1:

=ADD(COUNT,1);

COUNT:

=COUNTP1;

SIMPLE_FUN:

=A*B/C;

END_FUNCTION

功能声明示例-FBD语言:

FUNCTION

+-------------+(*Externalinterfacespecification*)

|SIMPLE_FUN|

REAL----|A|----REAL

REAL----|B|

REAL----|C|

INT-----|COUNT---COUNT|----INT

+-------------+

(*Functionbodyspecification*)

+---+

|ADD|---+----+

CO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1