[精选]IEC61131-3_标准.pptx
PLC培训班第培训班第4讲讲IEC61131-3编程语言标准介绍编程语言标准介绍1.IEC61131-3PLC标准通用信息标准通用信息2.2.IEC61131-3PLC标准软件模型标准软件模型3.3.IEC61131-3PLC标准通信模式标准通信模式 4.IEC61131-3PLC标准通用语言单元标准通用语言单元 5.5.IEC61131-3PLC编程语言编程语言IEC 61131-3 PLC 标准通用信息标准通用信息众众所所周周知知,在在开开发发可可编编程程序序控控制制器器PLC的的早早期期阶阶段段,由由于于没没有有一一个个统统一一的的国国际际标标准准,各各制制造造商商根根据据自自己己的的习习惯惯,使使用用自自己己的的编编程程语语言言,这这些些编编程程语语言言从从内内容容到到形形式式都都很很不不相相同同,例例如如,德德国国的的公公司司喜喜欢欢用用功功能能块块图图和和语语句句表表语语言言,这这与与他他们们早早期期将将晶晶体体管管逻逻辑辑电电路路用用来来完完成成控控制制功功能能有有关关系系,而而的的公公司司则则喜喜欢欢用用梯梯形形图图语语言言和和控控制制鼓鼓ControlDrum。梯梯形形图图语语言言又又是是从从继继电电器器控控制制逻逻辑辑延延伸伸来来的的,至至于于法法国国公公司司除除了了用用梯梯形形图图语语言言外外,还还用用GRAFCET语语言言,这这一一语语言言又又特特别别适适用用于完成顺序控制的功能。于完成顺序控制的功能。IEC 61131-3 PLC 标准通用信息标准通用信息这这种种编编程程语语言言的的不不统统一一情情况况,给给用用户户带带来来极极大大的的不不方方便便,使使用用不不同同公公司司产产品品,编编制制的的程程序序完完全全不不通通用用,用用户户被被迫迫要要去去熟熟悉悉不不同同公公司司的的编编程程语语言言,要要额额外外的的购购置置不不同同的的编编程程工工具具,要要想想在在一一个个大大型型的的工工程程工工程程中使用多家公司的产品,几乎是不可能的事。中使用多家公司的产品,几乎是不可能的事。早早在在上上世世纪纪80年年代代国国际际电电工工技技术术会会IEC的的第第六六工工作作组组IEC/TC65B/WG6就就开开始始着着手手制制定定统统一一的的可可编编程程序序控控制制器器标标准准。并并于于1993年年正正式式公公布布了了这这一一标标准,即准,即IEC11313国际标准。国际标准。IEC 61131-3 PLC 标准通用信息标准通用信息我国根据我国根据IEC IEC 的标准制定的的标准制定的可编程序控制器可编程序控制器ProgrammableController的国家标准,标准的国家标准,标准号为号为GB/T15969.1GB/T15969.115969.4 15969.4,该标准于,该标准于19951995年年底发布,从底发布,从19961996年年1010月月1 1 日起开始实施。日起开始实施。IEC 61131-3 PLC 标准通用信息标准通用信息近近几几年年由由于于自自动动化化系系统统的的开开展展,需需要要制制定定涵涵盖盖更更广广领领域域,不不仅仅包包括括PLC,还还有有DCS,HMI以以及及现现场场总总线线等等的的内内容容。IEC的的 第第 七七 工工 作作 组组 IEC/SC65B/WG7 制制 定定 了了 新新 的的IEC611313标标准准,第第七七工工作作组组包包括括来来自自不不同同的的PLC制制造造商商,软软件件公公司司和和用用户户代代表表,这这样样制制定定的的标标准准可可以以做做为为一一个个导导则则,为为大大多多数数PLC制制造造商商所所接接受受,IEC61131标标准准的的5 5个个局局部部总总结结当当代代PLC系系统统的的要要求求,这这些些要要求求涉涉及及PLC的的硬硬件件和和编编程程系系统统。新新标标准准包包括括了了早早已已在在PLC编编程程中中使使用用的的通通用用概概念念,同时也增加了新的编程方法。同时也增加了新的编程方法。IEC 61131-3 PLC 标准通用信息标准通用信息 IEC IEC 61131611313 3本本身身只只做做为为PLCPLC的的编编程程指指导导,而而不不是是强强制制的的规规则则,假假设设PLCPLC制制造造商商希希望望符符合合这这个个标标准准,他他们们必必须须提提供供文文件件,说说明明其其对对标标准准的的符符合合程程度度,他他们们还还必必须须通通过过认认证证,确确认认那那些些局局部符合标准,那些局部还不能满足标准。部符合标准,那些局部还不能满足标准。这这个个标标准准附附有有6262个个性性能能表表,制制造造商商必必须须填填写写这这些些表表格格并并提提供供注注释释例例如如;“完完全全满满足足,不不能能“实现,实现,“以下局部能实现以下局部能实现。IEC 61131-3 PLC 标准通用信息标准通用信息 该该标标准准还还提提供供一一个个测测试试基基础础,允允许许制制造造商商和和客客户户都都能能评评估估,每每一一个个编编程程系系统统符符合合IEC标标准准的接近程度。的接近程度。为为了了进进一一步步证证明明兼兼容容性性,PLCopen国国际际组组织织,进进一一步步定定义义兼兼容容性性等等级级的的测测试试,而而这这些些测测试试是是由独立的机构进行的。由独立的机构进行的。IEC61131-3PLC标准软件模型标准软件模型 IEC IEC 61131611313 3的的软软件件模模型型描描述述了了诸诸多多概概念念,包包 括括 组组 态态 configurationconfiguration。资资 源源 resourceresource.任任务务tasktask.程程序序programprogram.功功 能能 块块 function function blockblock 以以 及及 功功 能能 functionfunction和它们之间的连接。和它们之间的连接。IE任务任务C61131-3PLC标准软件模型标准软件模型组态内部的资源组态内部的资源 在在软软件件等等级级中中的的最最高高等等级级是是组组态态configuration,它它定定义义了了单单元元结结构构,这这一一单单元元有有可可能能是是,例例如如:带带多多个个CPU连接的连接的PLC。一一个个组组态态包包括括一一个个或或假假设设干干个个资资源源resources,它它构成一个构成一个CPU资资源源的的程程序序是是由由任任务务来来控控制制,任任务务task表表示示一一个个可执行的程序单元。可执行的程序单元。IEC 61131-3 PLC 标准软件模型标准软件模型 组态内部的资源组态内部的资源IEC 61131-3 PLC 标准软件模型标准软件模型 任务任务 任任务务能能周周期期地地或或由由于于一一定定的的事事件件来来处处理理,它它们们具具有有优优先先权权级级,优先权是定义在资源内局部配给优先权是定义在资源内局部配给CPUCPU的时间段。的时间段。有假设干种类型的任务:有假设干种类型的任务:a.a.周期任务,周期任务,b.b.时间控制任务时间间隔任务,时间控制任务时间间隔任务,c.c.事件控制任务事件控制任务事件任务事件任务,e.e.中断任务中断任务任任务务说说明明是是由由任任务务名名,它它的的优优先先权权级级,以以及及任任务务执执行行时时的的条条件件,条条件件可可以以是是时时间间间间隔隔,一一个个事事件件数数字字量量输输入入的的上上升升沿沿或或全全局局变变量量的的伪伪falsefalse/真真truetrue变变化化或或一一个个中中断断,每每一一个个任任务务能能分分配配假假设设干干个个程程序序,这这些些程程序序将将由由任任务务来来激激活活。程序是按照所指示的顺序来处理的。程序是按照所指示的顺序来处理的。IEC 61131-3 PLC 标准软件模型标准软件模型 任务任务 a.带带有有条条件件的的任任务务,在在条条件件满满足足时时将将被被执执行行,例例如如,当当指指示示的时间间隔已经超出,或变量的地址的时间间隔已经超出,或变量的地址“伪改变成伪改变成“真。真。b.如如果果假假设设干干个个任任务务都都满满足足条条件件,则则具具有有最最高高优优先先权权级级的的任任务将被执行。务将被执行。c.不不允允许许将将同同一一个个优优先先权权级级分分配配给给多多个个任任务务优优先先权权级级0任任务禁止是例外。务禁止是例外。d.在在另另一一个个任任务务正正在在被被处处理理时时,如如果果具具有有较较高高优优先先权权级级的的任任务务的的条条件件被被满满足足,则则较较低低优优先先权权级级的的任任务务将将被被中中断断,只只有有另一任务已被完成后,再继续处理。另一任务已被完成后,再继续处理。IEC 61131-3 PLC 标准软件模型标准软件模型组织单元组织单元POUs IEC IEC 61131611313 3定定义义程程序序programprogram,功功能能块块function function blockblock,功功能能functionfunction作作为为程程序序的的组组织织单单元元或或POUsPOUsProgram Program Organization Organization units units POUsPOUs.POUsPOUs的的性性质质允允许许用用户户程程序序广广泛泛的的模模块块化化以以及及重重复复应应用用已已经经实实现现和和经经过过测测试试的的软软件件模模块块。为为了了程程序序模模块块能能访访问问一一个个POUPOU,至至少少需需要要有有请请求求接接口口的的说说明明,在在进进行行说说明明之之后后,一一个个POUPOU对对所所有有其其他他POUPOU是是存存在在的。的。IEC 61131-3 PLC 标准软件模型标准软件模型组织单元组织单元POUsIEC 61131-3 PLC 标准软件模型标准软件模型程序程序整整个个程程序序具具有有实实时时性性质质,程程序序能能在在CPUCPU中中运运行行,是是由由分分配配程程序序的的任任务务来来解解决决的的,一一个个程程序序能能分分配配给给假假设设干干个个任任务务,亦亦即即这这假假设设干干个个程程序序的的背背景景是是在在不不同同的的实实时时性性质质下下生生成成。程程序序中中的的一一个个是是主主程程序序被被分分配配给给PLCPLC外外部部设设备备、全全局局变变量量和和访访问路径。问路径。IEC 61131-3 PLC 标准软件模型标准软件模型功能块功能块 IEC IEC 61131611313 3应应用用标标准准功功能能和和功功能能块块来来标标准准化化典典型型PLCPLC的的功功能能。这这一一标标准准库库是是统统一一的的,不不依依赖赖于于制制造商的造商的PLCPLC系统编程的重要基础。系统编程的重要基础。功功能能块块FBsFBs可可以以比比作作集集成成电电路路,它它包包括括一一定定的的控控制制功功能能,它它们们用用来来设设置置输输入入/输输出出和和内内部部变变量量,功功能能块块的的状状态态要要求求被被保保存存从从一一个个周周期期到到另另一一个个周周期期,只只有有功功能能的的输输入入和和输输出出变变量量能能被被请请求求的的程程序序寻址。一个功能块能被另一个功能块调用。寻址。一个功能块能被另一个功能块调用。IEC 61131-3 PLC 标准软件模型标准软件模型功能块背景功能块背景 IEC611313提提供供功功能能块块背背景景,一一个个背背景景是是一一种种结结构构,在调用功能块时,它保存所有的内部输入和输出变量。在调用功能块时,它保存所有的内部输入和输出变量。一一个个程程序序它它调调用用FB1FB1三三次次,则则具具有有三三个个FB1FB1背背景景,每每次次调调用用一一个个。程程序序则则会会精精确确地地计计算算请请求求而而不不会会有有边边外外效效应应side side effectseffects。请请遵遵守守,所所有有背背景景应应用用相相同同的的程程序序码码,亦亦即即,程程序序码码的的改改变变对对所所有有三三个个请请求求具具有有相相同同的效应。的效应。软软件件工工具具,通通过过自自动动说说明明对对背背景景提提供供帮帮助助,在在FBFB调调用用时指定背景名,这一名词管理调用的数据结构。时指定背景名,这一名词管理调用的数据结构。IEC 61131-3 PLC 标准软件模型标准软件模型功能功能与与功功能能块块不不同同,功功能能没没有有内内部部变变量量的的缓缓冲冲区区。这这样样,功功能能不不能能使使用用全全局局变变量量访访问问功功能能的的组组织织单单元元和和直直接接说说明明地地址址变变量量。所所有有功功能能具具有有一一个个共共同同点点,如如果果功功能能的的输输入入参参数数是是相相同同的的,则它们将提供相同的输出参数。则它们将提供相同的输出参数。IEC 61131-3 PLC 标准标准通信模式通信模式IEC 61131IEC 611313 3的通信方式使用:的通信方式使用:a.a.访问路径访问路径Access pathsAccess pathsb.b.全局变量全局变量Global variablesGlobal variablesc.c.参数调用参数调用 Call parametersCall parametersd.d.通信组织单元通信组织单元IEC 61131IEC 611315 5 munication organization munication organization来说明组态单元的数据交换来说明组态单元的数据交换IEC 61131-3 PLC 标准标准通信模式通信模式访访问问路路径径:定定义义访访问问路路径径允允许许组组态态单单元元相相互互之之间间和和PLCPLC系统实现通信。系统实现通信。全全局局变变量量 :全全局局变变量量能能容容易易地地在在程程序序之之间间实实现现通通信信,它们能在组态,资源,程序内进行说明和应用。它们能在组态,资源,程序内进行说明和应用。参参数数调调用用:在在程程序序内内部部,数数据据交交换换是是通通过过参参数数调调用用来来实实现现的的,参参数数,例例如如:输输入入和和输输出出变变量量。参参数数调调用用定义了值转移的接口。定义了值转移的接口。通通信信组组织织单单元元:通通信信组组织织单单元元提提供供了了通通信信效效劳劳,这这些效劳将在些效劳将在IEC 61131IEC 61131的第的第5 5 局部进行定义局部进行定义。IEC 61131-3 PLC 标准通用语言单元标准通用语言单元 IEC IEC 6113161131 3 3的的 通通 用用 语语 言言 单单 元元 是是 标标 识识 IdentifiersIdentifiers,关关键键词词KeywordsKeywords,评评论论 mentsments,文文字字Literals Literals,数数据据类类型型和和变变量量Data Data types types and and variablesvariables。以下对它们进行详细描述。以下对它们进行详细描述。IEC 61131-3 PLC 标准通用语言单元标准通用语言单元 标识符标识符 标标识识符符用用来来寻寻址址变变量量,功功能能,程程序序等等,它它们们是是一一些单元且能支持程序的可读性。些单元且能支持程序的可读性。标标识识符符是是一一个个字字母母数数字字和和下下划划线线的的序序列列,以以一一个个字母或下划线开始。字母或下划线开始。以下各项不可以做为标识符:以下各项不可以做为标识符:a.a.空格和德文中的元音变音字母空格和德文中的元音变音字母 b.b.以同一方式说明两次以同一方式说明两次 c.c.用关键字做为标识符参看用关键字做为标识符参看4.24.2节节IEC 61131-3 PLC 标准通用语言单元标准通用语言单元关键字关键字 关键字是清楚的字母组合,能做为单个的语法助记符关键字是清楚的字母组合,能做为单个的语法助记符单元单元关键字不能用做为标识符,关键字不能用做为标识符,IEC611313关键字举例:关键字举例:ABS,SIN,BOOL,FALSE,TRUE,FOR,NEXT,IF,THEN,VAR,GLOBAL,DATE,TIME,FUNCTIONIEC 61131-3 PLC 标准通用语言单元标准通用语言单元评论评论 评论或程序的一局部用来帮助理解程序且是重要评论或程序的一局部用来帮助理解程序且是重要的沟通方法。评论允许在任何位置以所有文本编辑的沟通方法。评论允许在任何位置以所有文本编辑的形式而且必须以特殊的字母序列的形式而且必须以特殊的字母序列*and*开始和开始和结束。每一个网络段能对它的功能评论成一段文本。结束。每一个网络段能对它的功能评论成一段文本。IEC 61131-3 PLC 标准通用语言单元标准通用语言单元文字文字 IEC611313说明文字做为字母,数字和时间的序列。说明文字做为字母,数字和时间的序列。字母序列:字母序列文字具有字母序列:字母序列文字具有0或更多字母,而且以或更多字母,而且以反反逗号逗号开始和结束例如:开始和结束例如:Charactersequence。数字:有两种不同类型的数字文字:整数和实数。整数数字:有两种不同类型的数字文字:整数和实数。整数能定义带有基数,十进制数能具有十或的符号,能定义带有基数,十进制数能具有十或的符号,实数能表示成指数形式。实数能表示成指数形式。时时间间:有有两两种种不不同同的的时时间间文文字字间间隔隔时时间间和和天天/日日期期时时间间IEC 61131-3 PLC 标准通用语言单元标准通用语言单元数据类型数据类型 数据类型:数据类型:IEC611313定定义义了了不不同同的的标标准准数数据据类类型型,它它们们帮帮助助编编译译,推推导导以以及及用用户户定定义义数数据据类类型型。每每一一个个标标识识符符被被分分配配到到一一个个数数据据类类型型,数数据据类类型型决决定定了了多多大大的的存存储储容容量量将将被被保保存存以以及及什什么值相应于存储器的内容。么值相应于存储器的内容。IEC 61131-3 PLC 标准通用语言单元标准通用语言单元数据类型数据类型 标准数据类型标准数据类型a.a.波尔型真值表波尔型真值表 真真/伪。伪。b.b.字节,字,双字,带符号的整型数,不带符号的字节,字,双字,带符号的整型数,不带符号的整型数,整型数,1616位整形数,不带符号的位整形数,不带符号的1616位整形数,双位整形数,双整形数,不带符号的双整形数整形数据类型。整形数,不带符号的双整形数整形数据类型。c.c.实数浮点数据类型。实数浮点数据类型。d.d.串数据字符串。串数据字符串。e.e.时间时间TIMETIME,日时间,日时间TIMETIMEOFOFDAYDAY,日期,日期DATEDATEf.f.日期和时间日期和时间DATE_AND_TIMEDATE_AND_TIME 时间数据类型时间数据类型。IEC 61131-3 PLC 标准通用语言单元标准通用语言单元数据类型数据类型 定义数据类型定义数据类型a.阵列阵列ARRAY1,2,3维场。维场。b.指指针针POINTER包包含含用用于于实实时时程程序序的的变变量量/功功能块的寻址。能块的寻址。c.枚枚举举Enumeration枚枚举举数数,由由很很多多字字符符串串常常数组成。数组成。d.结构结构STRUCTe.参参考考Reference用用于于对对变变量量/常常数数/功功能能块块生生成一个替换名成一个替换名 IEC 61131-3 PLC 标准通用语言单元标准通用语言单元变量变量IEC611313定义定义5种不同的变量类种不同的变量类型型a.全局变量全局变量b.本地变量本地变量c.输入变量输入变量d.输出变量输出变量e.输入和输出变量输入和输出变量IEC 61131-3 PLC 标准通用语言单元标准通用语言单元变量变量本本地地变变量量不不能能连连接接到到外外部部,亦亦即即它它们们只只能能在在程程序序内内部部的的一一局局部部进进行行寻寻址址,全全局局变变量量能能被被所所有有程程序序组组织织单单元元POUs寻寻址址。输输入入,输输出出和和输输入入/输输出出变变量量是是与与程程序序,功功能能和和功功能能块块有有关关的的。它它们们能能在在被被分分配配的的POU内内通通过过读读或或写写来来改改变变,在在POU外外部部改改变变必必须须进进行行定定义义,输输入入,输输出出和和输输入入/输出输出在在原原文文件件之之间间变变量量要要加加以以说说明明,变变量量VAR变变量量结结束束END_VAR。通通常常每每个个变变量量在在冷冷启启动动之之后后被被初初始始化化。默默认认的的初初始始值值为为0或或“伪伪,可可以以通通过过另另一一变变量量符符号号“:=在在说说明中指定用户定义的初始值。明中指定用户定义的初始值。IEC 61131-3 PLC 标准通用语言单元标准通用语言单元变量属性变量属性当说明一个变量时,能附加以下的属性当说明一个变量时,能附加以下的属性:a.保保存存RETAIN:这这些些变变量量在在主主要要故故障障之之后后。仍仍保保存存同同一一值。当再启动时,程序将以这一保存的值继续进行。值。当再启动时,程序将以这一保存的值继续进行。b.常数常数CONSTANT:变量值不能改变:变量值不能改变c.AT:变量在储存器映像区中具有固定位置固定地址。:变量在储存器映像区中具有固定位置固定地址。Example举例:以一初始值说明一个输出变量。举例:以一初始值说明一个输出变量。VAR-OUTPUTPar_out1:INT:10;*输出参数输出参数1,具有初始值,具有初始值10*END-VARIEC 61131-3 PLC 标准通用语言单元标准通用语言单元固定地址变量固定地址变量在在进进行行说说明明时时,通通过过关关键键字字变变量量能能被被分分配配一一个个物物理理存储器位置。存储器位置。地地址址用用特特殊殊字字母母序序列列来来指指示示,字字母母序序列列的的起起始始用用符符号号,跟跟随随一一个个范范围围前前缀缀和和一一个个数数据据前前缀缀数数据据类类型型表表示示数数据据长长度度。最最后后是是数数字字序序列列表表示示存存储储器器的位置。的位置。范范围围前前缀缀:I输输入入,Q输输出出,M标标志志,内内部存储器范围部存储器范围长长度度前前缀缀:X单单个个位位,B字字节节,8位位,W字字,16位位,D双字,双字,32位位IEC 61131-3 PLC 标准通用语言单元标准通用语言单元固定地址变量固定地址变量Example举例:举例:QX1.0.2输出位输出位2IW1.0.1输入位输入位1MB7标志字节标志字节7MW1标志字标志字1MD3标志双字标志双字3MX1.2在标志字在标志字1中的第中的第3标志位标志位IEC 61131-3 PLC 标准标准编程语言编程语言 IEC61131-3标准是标准是PLC编程语言编程语言的国际标准。根据这一标准,程序的国际标准。根据这一标准,程序是由以下一些单元组成的:是由以下一些单元组成的:结构结构Structures 组织单元组织单元 Organizationunits 全局变量全局变量 Globalvariables4.4.编程语言编程语言 IEC 61131-3IEC 61131-3国际标准的编程语言包括图形化编程语言和文国际标准的编程语言包括图形化编程语言和文本化编程语言。本化编程语言。图形化编程语言包括:梯形图、功能块图、顺序功能图。图形化编程语言包括:梯形图、功能块图、顺序功能图。文本化编程语言包括:指令表和结构化文本。文本化编程语言包括:指令表和结构化文本。1.1.结构化文本语言结构化文本语言 1 1 操作符。结构化文本操作符。结构化文本STST定义了一系列操作符用于实定义了一系列操作符用于实现算术和逻辑运算,如现算术和逻辑运算,如 逻辑运算符:逻辑运算符:ANDAND、XORXOR、OROR;算术运算符:算术运算符:、=、+、-、*、/等,等,Start Start:=Oilpress AND Stream AND Pump=Oilpress AND Stream AND Pump V V:=K*=K*-W*T-W*T 2 2 赋值语句。结构化文本赋值语句。结构化文本STST程序既支持很简单的赋程序既支持很简单的赋值语句,如值语句,如X X:=Y=Y,也支持很复杂的数组或结构赋值,如,也支持很复杂的数组或结构赋值,如 Profile3:=10.3+SQRT Profile3:=10.3+SQRTRate+2.0Rate+2.0 Alarm.TimeOn:=RCT1.CDT Alarm.TimeOn:=RCT1.CDT 3 3 在程序中调用功能块。功能块在被调用以前,输入参在程序中调用功能块。功能块在被调用以前,输入参数被分配为默认值;在调用后,输入参数值保存为最后一次调用数被分配为默认值;在调用后,输入参数值保存为最后一次调用的值。功能块调用的格式如下。的值。功能块调用的格式如下。Function Block Instance Function Block Instance Input Parameter1:=Value Expression1,Input Parameter1:=Value Expression1,Input Parameter2:=Value Expression2 Input Parameter2:=Value Expression2;4 4 结构化文本结构化文本STST程序中的条件语句。程序中的条件语句。IF THENELSE IF THENELSE条件语句。条件语句的格式如下:条件语句。条件语句的格式如下:IF THEN IF THEN ELSE ELSE END_IF END_IF;关键字说明例如说明:=赋值d:=10将右边的一个供计算的数值赋值给左边的标识符调用 FBFB NamePar1:=10,Par2:=20;调用另一个类型为 FB 的 POU,包括其参数RETURN返回RETURN脱离当前的 POU 和返回到调用 POUIF选择IF d 1 DON:=n/2;END_WHILE一个多循环语句块,具有在开始端的结束条件REPEAT跌代 3一个多循环语句块,具有在结束端的结束条件EXIT循环的结束EXIT;一个迭代语句的结束条件。;空白语句;6 6 编程举例:用结构化文本编程举例:用结构化文本STST程序编功能块。程序编功能块。本程序是一用结构化文本本程序是一用结构化文本STST程序编功能块的例子。该程序编功能块的例子。该实例描述的是如何用功能块控制箱体中的流体,箱体可以实例描述的是如何用功能块控制箱体中的流体,箱体可以通过阀门被注满和倒空,如图通过阀门被注满和倒空,如图4.94.9所示,箱体的质量由一个所示,箱体的质量由一个称重单元监视。功能块通过比较两个输入值称重单元监视。功能块通过比较两个输入值Full WeightFull Weight和和Empty WeightEmpty Weight以确定箱体是满的还是空的。以确定箱体是满的还是空的。该功能块提供了一个该功能块提供了一个“mand“mand输入,该输入有四种状态,给箱体加水;保持不变;输入,该输入有四种状态,给箱体加水;保持不变;起动;清空箱体。实现该功能块算法的结构化文本起动;清空箱体。实现该功能块算法的结构化文本STST程序如下:程序如下:TYPE_T_STATE:TYPE_T_STATE:FULL,NOT_FULL,EMPTIEDFULL,NOT_FULL,EMPTIED;*箱体状态箱体状态*END_TYPE;END_TYPE;TYPE_T_VALVE:TYPE_T_VALVE:OPEN,SHUTOPEN,SHUT;*阀门状态阀门状态*END_TYPE;END_TYPE;FUNCTION_BLOCK TankControl;FUNCTION_BLOCK TankControl;*功能块功能块*VAR_IN VAR_IN *输入状态变量输入状态变量*mand:SINT;mand:SINT;Weight:REAL;Weight:REAL;FullWeight:REAL;FullWeight:REAL;EmptyWeight:REAL;EmptyWeight:REAL;END_VAR END_VAR VAR_OUT VAR_OUT *输出状态变量输出状态变量*FillValve:T_VALVE:=SHUT;FillValve:T_VALVE:=SHUT;EmptyValve:T_VALVE:=SHUT;EmptyValve:T_VALVE:=SHUT;StirSpeed:REAL:=0.0;StirSpeed:REAL:=0.0;END_VAR END_VAR VAR VAR *过程变量过程变量*Stat:=T_STATE:=EMPTYIED;Stat:=T_STATE:=EMPTYIED;END_VAR END_VAR 2 2 指令表指令表Instruction ListInstruction List,ILIL IEC61131-3IEC61131-3的指令表的指令表ILIL语言是一种低级语言,与汇语言是一种低级语言,与汇编语言很相似编语言很相似 2 2 指令表操作符。指令表操作符。IEC61131-3IEC61131-3指令表包括四类操指令表包括四类操作符:一般操作符、比较操作符、跳转操作符和调用操作作符:一般操作符、比较操作符、跳转操作符和调用操作符。符。一般操作符是指在程序中经常会用到的操作符。一般操作符是指在程序中经常会用到的操作符。装入指令:装入指令:LD NLD N等。等。逻辑指令:逻辑指令:AND N AND N 与指令、与指令、OR N OR N 或指令、或指令、XOR N XOR N 异或指令等。异或指令等。算术指令:算术指令:ADDADD加指令、加指令、SUBSUB减指令、减指令、MUL MUL 乘指令乘指令,DIV,DIV除指令、除指令、MODMOD取模指令等。取模指令等。比较操作符:比较操作符:GTGT大于、大于、GEGE大于等于、大于等于、EQEQ等于等于、NENE不等于、不等于、LELE小于等于、小于等于、LTLT小于等。小于等。跳转及调用操作符:跳转及调用操作符:JMP C,N JMP C,N 跳转操作符、跳转操作符、CALL CALL C,NC,N调用操作符等。调用操作符等。用结构化文本描述的两点间距离的计算公式为:用结构化文本描述的两点间距离的计算公式为:Travel_distance:=SQRTx1x2*x1x2+y1y2*y1y2 用指令表编写的该功能的函数用指令表编写的该功能的函数TRAVELTRAVEL如下:如下:FUNCTION TRAVEL FUNCTION TRAVEL:REALREAL VAR_INPUT VAR_INPUT X1,X2,Y1,Y2 X1,X2,Y1,Y2:REALREAL*点点X,YX,Y坐标坐标*TMax TMax:REAL REAL*最大移动距离最大移动距离*END_VAR END_VAR VAR VAR Temp Temp:REALREAL;*中间值中间值*END_VAR END_VAR LD Y1 LD Y1 SUB Y2 SUB Y2 *计算计算Y2-Y1*Y2-Y1*ST Temp ST Temp *将将Y2-Y1Y2-Y1值存入值存入Temp*Temp*MUL Temp MUL Temp *计算计算Y2-Y1Y2-Y1 的平方的平方*ADD X1 ADD X1 SUB X2*计算计算X1-X2*ST Temp*将将X1-X2值值 存入存入Temp*MUL Temp*计算计算X1-X2的平方的平方*ADD TEMP*将两平方值相加将两平方值相加*CAL SQRT *调平方根函数调平方根函数*ST TRAVEL*设定计算结果设定计算结果*GT TMax*比比TMax 大吗?大吗?*JMPC ERR *是,转到是,转到ERR 执行执行*S ENO *设定设定ENO*ERR:RET *错误返回,错误返回,ENO 不输出不输出*3 3 功能块图功能块图Function Block DiagramFunction Block Diagram,FBDFBD 功能块图功能块图FBDFBD是一种图形化的控制编程语言,它通过是一种图形化的控制编程语言,它通过调用函数和功能块来实现编程。调用函数和功能块来实现编程。4 4 梯形图梯形图Ladder DiagramLadder Diagram,LDLD 梯形图梯形图LDLD是是IEC61131-3IEC61131-3三种图形化编程语言的一三种图形化编程语言的一种,是使用最多的种,是使用最多的PLCPLC编程语言,来源于编程语言,来源于 ,最初用于表,最初用于表示的继电器逻辑,简单易懂,很容易被电气人员掌握。后示的继电器逻辑,简单易懂,很容易被电气人员掌握。后来随着来随着PLCPLC硬件技术开展,梯形图编程功能越来越强大,现硬件技术开展,梯形图编程功能越来越强大,现在梯形图在在梯形图在DCSDCS系统也得到广泛使用。系统也得到广泛使用。l常见梯形图指令NOTPN常开触点常闭触点取反立即常开正跳变负跳变立即常闭()()(R)(RI )()()()()S()()SI输出立即输出置位立即置位复位立即复位IEC 61131-3 PLC 标准标准编程语言编程语言 在在IEC61131-3标准中定义了标准中定义了5种种PLC编程语编程语言,它们是:言,它们是:指令表指令表ILInstructionlist 结构文本结构文本 STStructuredtext 顺序功能图顺序功能图SFC Sequentialfunctionchart 功能块图功能块图FBD Functionblockdiagram 梯形图梯形图LDLadderdiagram对解决某一问题,最适用于,用上术语言中对解决某一问题,最适用于,用上术语言中的某一种语言。的某一种语言。SFC顺序功能图编程语言举例顺序功能图编程语言举例在这一讲中我们要介绍使用在这一讲中我们要介绍使用SFC编程语言的一个应用编程语言的一个应用例子。德国西门子公司的例子。德国西门子公司的PLC编程语言中有一种叫编程语言中有一种叫S7Graph的编程语言,实际上它就是一种标准的编程语言,实际上它就是一种标准SFC的编的编程语言。这里介绍的例子是用程语言。这里介绍的例子是用S7Graph对一台自动钻对一台自动钻床的顺序工作循环,进行编程。床的顺序工作循环,进行编程。对顺序控制这一类系统的编程,一般按照以下的流程对顺序控制这一类系统的编程,一般按照以下的流程进行:进行:从以下图中我们看到,首先要对实施的顺序控制工程从以下图中我们看到,首先要对实施的顺序控制工程建立一个顺序结构和对系统的信号进行定义,然后在建立一个顺序结构和对系统的信号进行定义,然后在西门子的西门子的PLCSIMATIC管理器中建立一个工程,和管理器中建立一个工程,和STEP7一样可以采用符号地址编程,也可以不用符号一样可以采用符号地址编程,也可以不用符号地址编程,如果用符号地址编程要求建立一个符号地地址编程,如果用符号地址编程要求建立一个符号地址表。址表。SFC顺序功能图编程语言举例顺序功能图编程语言举例对于顺序控制系统最适合的编程语言是用对于顺序控制系统最适合的编程语言是用SFC语言,语言,在本例中我们采用西门子公司的在本例中我们采用西门子公司的S7Graph语言类似语言类似SFC语言,用这种语言按照工艺要求编程一个功能语言,用这种语言按照工艺要求编程一个功能块块FB1,S7Graph会自动生成会自动生成FB1的背景数据块的背景数据块DB1。在在STEP7程序的程序的OB1组织块中调用组织块中调用FB1和和DB1完成程完成程序的组织。将程序下载到序的组织。将程序下载到PLC中,用中,用STEP7的调试手的调试手段调试和运行程序。段调试和运行程序。顺序控制系统编顺序控制系统编程和调试的工作程和调试的工作流程流程自动钻床的系统配置自动钻床的系统配置自动钻床的系统配置自动钻床的系统配置上图是我们的例子中的自动钻床的系统配上图是我们的例子