登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:[分享]什么是IEC 61131?-- 已降低阅读标准

点击:65743 回复:335

IEC61131标准已被建立起来了,用于标准化现有自动化系统领域中的多种语言、指令集和不同概念。PLC概念的巨大多样性,已导致了不同PLC平台和生产厂家之间的不兼容性。结果就要付出很多努力用于培训、硬件和软件投资。
IEC61131标准化了编程语言、PLC与编程系统之间的接口、指令集以及工程的处理和结构化。使用符合IEC 61131标准的PLC和编程系统的优点,是所有平台的兼容性,以及因使用同一概念而降低了用于自动化系统的成本。
该标准由几个部分和技术报告组成。标准的第三部分致力于编程语言。
很显然,这个标准对于编程系统的概念、结构、特征和处理,以及编写PLC程序的方式,都有很大影响。
伴随IEC61131-3而来的主要变化有:
变量声明类似于高级编程语言的变量声明。
数据类型的声明成为可能。
可以区分全局数据和局部数据。
编程意味着符号编程。
最后修改:2005-11-8 22:40:14
05-02-04 11:06
IEC 61131-3中的配置元素
一个符合IEC61131-3的PLC编程系统利用配置元素来反映硬件结构。这些配置元素基本上是配置、资源和任务。
IEC 61131-3中的配置
一个配置可被比作一个可编程控制器系统,例如一个导轨。在一个配置里可以定义一个或几个资源。
IEC 61131-3中的资源
一个资源可被比作一个能插入在导轨内的CPU。在资源中可以声明仅在该资源内有效的全局变量。在一个资源中,可以执行一个或多个任务。
IEC 61131-3中的任务
任务决定了所关联程序的时间调度。这意味着程序必须被关联到任务上。任务的设置决定了时间的调度。
IEC 61131-3 描述了导致不同任务类型的各种时间调度模型:
默认任务。每个资源可以包含一个默认任务。默认任务是具有最低优先权的任务(低于循环任务),并且不是按照时间来调度的。如果它被完全执行过之后,系统等待一个所定义的空闲时间。如果接下来还是没有循环任务或任何其它更高优先级的任务要处理,则默认任务被自动再次执行。这意味着,只要没有更高优先级的任务来执行,就总是执行默认任务(除了必要的预定义的两次调用之间的空闲时间之外)。默认任务不是按时间来调度,并具有四种任务类型中的最低优先级。每个资源中只能插入一个默认任务。
循环任务每隔一个确定的时间间隔就被激活一次,程序周期性地执行。
系统任务是在发生错误或PLC运行状态发生改变的情况下由PLC操作系统自动调用的。它们又被称为系统程序或SPG。
事件或中断任务在发生某一确定事件的情况下会被激活。
每个任务都有一定的优先级。在被称为抢占式任务调度系统中,当因某个事件而使得一个具有较高优先级的任务变为活动状态时,一个具有较低优先级的活动任务会立即被中断。在非抢占式调度系统中,较高优先级任务对较低优先级任务的中断是不可能的。
所支持的任务类型取决于所使用的PLC。
05-02-04 11:06
IEC 61131-3中的POU
程序组织单元或POU,是PLC程序的语言元素。它们是包含了程序代码的小的、独立的软件单位。POU的名称在工程内应该是独一无二的。
在IEC 61131-3中,根据其不同用途,POU被分为三种类型:
程序
功能块
函数
每种POU都由两个不同部分组成:声明部分和代码本体部分。
在声明部分,声明了所有必要的变量。
POU的指令或代码本体部分,是用所需的编程语言编写指令的部分。
05-02-04 11:07
IEC 61131-3中的函数
函数是带有多个输入参数和恰好一个输出参数的POU。调用带有相同值的函数总是返回相同的结果。返回值可以是简单数据类型。在一个函数内,可以调用另外的函数,但不能调用功能块或程序。不允许递归调用。函数的缩写为FU。
IEC61131-3描述了在编辑PLC程序时可以使用的标准函数。根据硬件和PLC类型,可能不是所有的标准函数都可用,或者可能添加了固件函数。
下面是一个标准IEC 61131-3函数类型列表:
类型转换函数,如INT_TO_REAL
数值函数,如ABS和LOG
标准算术运算函数,如ADD和MUL
位串函数,如AND和SHL
选择和比较函数,如SEL和GE
字符串函数,如RIGHT和INSERT
时间数据类型函数,如带有TIME数据类型的SUB
05-02-04 11:07
[replyview]功能块是带有多个输入/输出参数和内部存储单元的POU。功能块的返回值取决于其内部存储单元的值。功能块内可以调用另外的功能块或函数,但不能调用程序。不允许递归调用。功能块的缩写为FB。
IEC61131-3描述了当您编辑PLC程序时可以使用的标准功能块。根据您的硬件和PLC类型,可能不是所有的功能块都可用,也可能添加了固件功能块。
下面是一个标准IEC 61131-3功能块类型列表:
双稳态元素,如SR和RS
边沿检测功能块,如R_TRIG和F_TRIG
计数器,如CTU和CTD
定时器功能块,如TON和TOF
[/replyview]
05-02-04 11:08
[replyview]程序,是根据控制器过程的需要,包含了函数和功能块的一个逻辑组合的POU。程序的行为和使用类似于功能块。程序具有输入和输出参数,而且可以具有内部存储区。程序一定要被关联到任务上。
在程序内部,可以调用函数和功能块。不允许递归调用。
[/replyview]
05-02-04 11:11
实例化
IEC 61131-3提供了实例化的可能性。实例化意味着,一个功能块被定义一次而被使用多次。因为功能块总是具有一个内部存储区,所以,每当该功能块被用于一个不同的存储区域时,有必要将它们的值保存起来。这由实例名称来完成。实例名称是在将要使用该功能块的POU的变量声明中声明的。每个实例具有一个相关联的标志符,并包含输入和输出参数。
下图显示了一个具有两个实例的功能块‘FB_exam’的变量声明:
VAR
drive1    :FB_exam;
drive2    :FB_exam;
END_VAR
其代码本体已在工程的某处定义了的功能块‘FB_exam’具有了两个实例。第一个实例的实例名称为‘drive1’,第二个为‘drive2’。在相应的代码本体工作单中,您可以两次使用‘FB_exam’功能块,两种情况下,都使用正确的实例名称。
功能块可以在另一个功能块或程序中被实例化。程序可以在资源内部被实例化。
函数可以不必实例化而被调用,因为它们没有内部存储区。
05-02-04 11:13
[Post=30]数据类型决定了变量可以具有哪一类值。数据类型定义初始值、可能值的范围和位数。
IEC 61131-3 区分三种数据类型:
基本数据类型
类属数据类型
用户自定义数据类型
[/Post]
最后修改:2005-11-8 22:29:03
05-02-04 11:14
基本数据类型
IEC 61131-3中描述了基本数据类型的取值范围和位数。
在下表中显示了基本的数据类型:
数据类型 描述 大小 范围 默认初始值
BOOL 布尔 1 0...1 0
SINT 短整型 8 -128...127 0
INT 整型 16 -32768...32767 0
DINT 双整型 32 -2.147.483.648 至 2.147.483.647 0
USINT 无符号短整型 8 0 至 255 0
UINT 无符号整型 16 0 至 65535 0
UDINT 无符号双整型 32 0 至 4,294,967,295 0
REAL 实数 32 -3.402823466 E+38

-1.175494351 E-38
以及
+1.175494351 E-38

+3.402823466 E+38
0.0
TIME 持续时间 32 0... 4.294.967.295 ms t#0s
BYTE 长度为8的位串 8 0...255
(16#00...16#FF) 0
WORD 长度为16的位串 16 0...65.535
(16#00...16#FFFF)。  0
DWORD 长度为32的位串 32 0...4.294.967.295
(16#00...16#FFFFFFFF) 0
05-02-04 11:15
[replyview]类属数据类型
类属数据类型是包括了基本数据类型的分级组的数据类型。ANY_INT包括DINT、INT、SINT、UDINT、UINT和USINT等基本数据类型。如果一个函数可以与ANY_INT相连,则意味着可以处理DINT、INT、SINT、UDINT、UINT和USINT等数据类型的变量。
在下表中显示了类属数据类型:
ANY
ANY_NUM
ANY_REAL
REAL
ANY_INT
DINT, INT, SINT
UDINT, UINT, USINT
ANY_BIT
DWORD, WORD, BYTE, BOOL
STRING
TIME
[/replyview]
05-02-04 11:16

上一页下一页

工控新闻

更多新闻资讯