2008-12-11陈忠华教授E-mail:chenzho38@sina.comPLC培训班(第4讲)IEC61131-3编程语言标准介绍2008-12-12PLC培训班(第4讲)IEC61131-3编程语言标准介绍1.IEC61131-3PLC标准通用信息2.IEC61131-3PLC标准软件模型3.IEC61131-3PLC标准通信模式4.IEC61131-3PLC标准通用语言单元5.IEC61131-3PLC编程语言2008-12-13IEC61131IEC61131--3PLC3PLC标准通用信息标准通用信息众所周知,在开发可编程序控制器(PLC)的早期阶段,由于没有一个统一的国际标准,各制造商根据自己的习惯,使用自己的编程语言,这些编程语言从内容到形式都很不相同,例如,德国的公司喜欢用功能块图和语句表语言,这与他们早期将晶体管逻辑电路用来完成控制功能有关系,而美国的公司则喜欢用梯形图语言和控制鼓(ControlDrum)。梯形图语言又是从继电器控制逻辑延伸来的,至于法国公司除了用梯形图语言外,还用GRAFCET语言,这一语言又特别适用于完成顺序控制的功能。2008-12-14IEC61131IEC61131--3PLC3PLC标准通用信息标准通用信息这种编程语言的不统一情况,给用户带来极大的不方便,使用不同公司产品,编制的程序完全不通用,用户被迫要去熟悉不同公司的编程语言,要额外的购置不同的编程工具,要想在一个大型的工程项目中使用多家公司的产品,几乎是不可能的事。早在上世纪80年代国际电工技术委员会IEC的第六工作组(IEC/TC65B/WG6)就开始着手制定统一的可编程序控制器标准。并于1993年正式颁布了这一标准,即IEC1131-3国际标准。2008-12-15IEC61131IEC61131--3PLC3PLC标准通用信息标准通用信息我国根据IEC的标准制定的中华人民共和国可编程序控制器(ProgrammableController)的国家标准,标准号为GB/T15969.1-15969.4,该标准于1995年底发布,从1996年10月1日起开始实施。2008-12-16IEC61131IEC61131--3PLC3PLC标准通用信息标准通用信息近几年由于自动化系统的发展,需要制定涵盖更广领域,不仅包括PLC,还有DCS,HMI以及现场总线等的内容。IEC的第七工作组(IEC/SC65B/WG7)制定了新的IEC61131-3标准,第七工作组包括来自不同的PLC制造商,软件公司和用户代表,这样制定的标准可以做为一个导则,为大多数PLC制造商所接受,IEC61131标准的5个部分总结当代PLC系统的要求,这些要求涉及PLC的硬件和编程系统。新标准包括了早已在PLC编程中使用的通用概念,同时也增加了新的编程方法。2008-12-17IEC61131IEC61131--3PLC3PLC标准通用信息标准通用信息IEC61131-3本身只做为PLC的编程指导,而不是强制的规则,若PLC制造商希望符合这个标准,他们必须提供文件,说明其对标准的符合程度,他们还必须通过认证,确认那些部分符合标准,那些部分还不能满足标准。这个标准附有62个性能表,制造商必须填写这些表格并提供注释(例如;“完全满足”,不能“实现”,“以下部分能实现”…)。2008-12-18IEC61131IEC61131--3PLC3PLC标准通用信息标准通用信息该标准还提供一个测试基础,允许制造商和客户都能评估,每一个编程系统符合IEC标准的接近程度。为了进一步证明兼容性,PLCopen国际组织,进一步定义兼容性等级的测试,而这些测试是由独立的机构进行的。2008-12-19IEC61131-3PLC标准软件模型IEC61131-3的软件模型描述了诸多概念,包括组态(configuration)。资源(resource).任务(task).程序(program).功能块(functionblock)以及功能(function)和它们之间的连接。2008-12-110IE任务C61131-3PLC标准软件模型(组态内部的资源)在软件等级中的昀高等级是组态(configuration),它定义了单元结构,这一单元有可能是,例如:带多个CPU连接的PLC。一个组态包括一个或若干个资源(resources),它构成一个CPU资源的程序是由任务来控制,任务(task)表示一个可执行的程序单元。2008-12-111IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型(组态内部的资源)Configuration(组态)Resource(资源)Resource(资源)Resource(资源)Task(任务)Task(任务)Task(任务)2008-12-112IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型((任务任务))任务能周期地或由于一定的事件来处理,它们具有优先权级,优先权是定义在资源内部分配给CPU的时间段。有若干种类型的任务:a.周期任务,b.时间控制任务(时间间隔任务),c.事件控制任务(事件任务),e.中断任务任务说明是由任务名,它的优先权级,以及任务执行时的条件,条件可以是时间间隔,一个事件〈数字量输入的上升沿或全局变量的伪(false)/真(true)变化〉或一个中断,每一个任务能分配若干个程序,这些程序将由任务来激活。程序是按照所指示的顺序来处理的。2008-12-113IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型((任务任务))a.带有条件的任务,在条件满足时将被执行,例如,当指示的时间间隔已经超出,或变量的地址“伪”改变成“真”。b.如果若干个任务都满足条件,则具有昀高优先权级的任务将被执行。c.不允许将同一个优先权级分配给多个任务(优先权级0=任务禁止是例外)。d.在另一个任务正在被处理时,如果具有较高优先权级的任务的条件被满足,则较低优先权级的任务将被中断,只有另一任务已被完成后,再继续处理。2008-12-114IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型(组织单元(组织单元POUsPOUs))IEC61131-3定义程序(program),功能块(functionblock),功能(function)作为程序的组织单元或POUs(ProgramOrganizationunitsPOUs).POUs的性质允许用户程序广泛的模块化以及重复应用已经实现和经过测试的软件模块。为了程序模块能访问一个POU,至少需要有请求接口的说明,在进行说明之后,一个POU对所有其他POU是存在的。2008-12-115IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型(组织单元(组织单元POUsPOUs))FunctionBlock(功能块)Function(功能)Task(任务)Program(程序)Program(程序)Program(程序)FunctionBlock(功能块)Function(功能)Function(功能)2008-12-116IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型(程序(程序))整个程序具有实时性质,程序能在CPU中运行,是由分配程序的任务来解决的,一个程序能分配给若干个任务,亦即这若干个程序的背景是在不同的实时性质下生成。程序中的一个是主程序被分配给PLC外部设备、全局变量和访问路径。2008-12-117IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型(功能块(功能块))IEC61131-3应用标准功能和功能块来标准化典型PLC的功能。这一标准库是统一的,不依赖于制造商的PLC系统编程的重要基础。功能块(FBs)可以比作集成电路,它包括一定的控制功能,它们用来设置输入/输出和内部变量,功能块的状态要求被保留从一个周期到另一个周期,只有功能的输入和输出变量能被请求的程序寻址。一个功能块能被另一个功能块调用。2008-12-118IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型(功能块背景(功能块背景))IEC61131-3提供功能块背景,一个背景是一种结构,在调用功能块时,它保留所有的内部输入和输出变量。一个程序它调用FB1三次,则具有三个FB1背景,每次调用一个。程序则会精确地计算请求而不会有边外效应(sideeffects)。请遵守,所有背景应用相同的程序码,亦即,程序码的改变对所有三个请求具有相同的效应。软件工具,通过自动说明对背景提供帮助,在FB调用时指定背景名,这一名词管理调用的数据结构。2008-12-119IEC61131IEC61131--3PLC3PLC标准软件模型标准软件模型(功能(功能))与功能块不同,功能没有内部变量的缓冲区。这样,功能不能使用全局变量访问功能的组织单元和直接说明地址变量。所有功能具有一个共同点,如果功能的输入参数是相同的,则它们将提供相同的输出参数。2008-12-120IEC61131IEC61131--3PLC3PLC标准标准通信模式通信模式IEC61131-3的通信方式使用:a.访问路径(Accesspaths)b.全局变量(Globalvariables)c.参数调用(Callparameters)d.通信组织单元(IEC61131-5)(Communicationorganization)来说明组态单元的数据交换2008-12-121IEC61131IEC61131--3PLC3PLC标准标准通信模式通信模式访问路径:定义访问路径允许组态单元相互之间和PLC系统实现通信。全局变量:全局变量能容易地在程序之间实现通信,它们能在组态,资源,程序内进行说明和应用。参数调用:在程序内部,数据交换是通过参数调用来实现的,参数,例如:输入和输出变量。参数调用定义了值转移的接口。通信组织单元:通信组织单元提供了通信服务,这些服务将在IEC61131的第5部分进行定义。2008-12-122IEC61131IEC61131--3PLC3PLC标准通用语言单元标准通用语言单元IEC61131-3的通用语言单元是标识(Identifiers),关键词(Keywords),评论(Comments),文字(Literals),数据类型和变量(Datatypesandvariables)。以下对它们进行详细描述。2008-12-123IEC61131IEC61131--3PLC3PLC标准通用语言单元标准通用语言单元((标识符)标识符)标识符用来寻址变量,功能,程序等,它们是一些单元且能支持程序的可读性。标识符是一个字母数字和下划线的序列,以一个字母或下划线开始。以下各项不可以做为标识符:a.空格和德文中的元音变音字母b.以同一方式说明两次c.用关键字做为标识符(参看4.2节)2008-12-124IEC61131IEC61131--3PLC3PLC标准通用语言单元标准通用语言单元((关键字关键字))关键字是清楚的字母组合,能做为单个的语法助记符单元关键字不能用做为标识符,IEC61131-3关键字举例:ABS,SIN,BOOL,FALSE,TRUE,FOR,NEXT,IF,THEN,VAR,GLOBAL,DATE,TIME,FUNCTION2008-12-125IEC61131IEC61131--3PLC3PLC标准通用语言单元标准通用语言单元((评论评论))评论或程序的一部分用来帮助理解程序且是重要的沟通方法。评论允许在任何位置以所有文本编辑的形式而且必须以特殊的字母序列(*and*)开始和结束。每一个网络段能对它的功能评论成一段文本。2008-12-126IEC61131IEC61131--3PLC3PLC标准通用语言单元标准通用语言单元((文字文字))IEC61131-3说明文字做为字母,数字和时间的序列。字母序列:字母序列文字具有0或更多字母,而且以