第一部分:Micro800控制器的编程指令

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章Micro800控制器的编程指令第5章5Micro800控制器的编程指令了解编程器的工作方式了解可编程控制器编程方式的特点熟练掌握功能块指令、函数指令和操作指令学习目标循序渐进Micro800控制系统5.1Micro800控制器编程语言通常PLC不采用微机的编程语言,而采用面向控制过程、面向实际问题的自然语言编程。这些编程语言有梯形图、逻辑功能图、布尔代数式等。如罗克韦尔自动化公司所有的PLC(Micro800、MicroLogix、SLC500、PLC-5和ControlLogix)都支持梯形图(LD)的编程方式。Micro800控制器支持三种编程方式:梯形图、结构化文本和功能块编程。其最大的特点就是每种编程方式都支持功能块化的编程。下面分别介绍这三种方式。5.1.1梯形图梯形图一般由多个不同的梯级(RUNG)组成,每一梯级又由输入及输出指令组成。在一个梯级中,输出指令应出现在梯级的最右边,而输入指令则出现在输出指令的左边,如图5-1所示。图5-1梯形图梯形图表达式是从原电器控制系统中常用的接触器、继电器梯形图基础上演变而来的。它沿用了继电器的触点、线圈、串联等术语和图形符号,并增加了一些继电接触控制没有的符号。梯形图形象、直观,对于熟悉继电器方式的人来说,非常容易接受,而不需要学习更深的计算机知识。这是一种最为广泛的编程方式,适用于顺序逻辑控制、离散量控制、定时、计数控制等。首先应对硬件进行组态,完成系统的硬件组态以后,就可以编写程序文件了。首先要创建一个新程序,在项目组织器窗口中右键单击控制器图标,选择添加一个新的梯形图程序,如图5-2所示。输入指令输出指令第5章Micro800控制器的编程指令图5-2新建梯形图程序新建程序后,在如图5-3所示的窗口右键单击Programs(程序),选择对程序重新命名。图5-3新建的梯形图程序把程序命名为test,创建的程序将完成以下功能:有两盏灯light1和light2,在第一盏灯亮两秒以后,熄灭第一盏灯,点亮第二盏灯。首先要创建编写程序所需要的变量,分别有start、light1、light2和计时器timer。程序中所用到的变量可以是全局变量,也可以是本地变量,在项目组织器窗口中打开本地变量或者全局变量,只要双击其图标即可。这里采用本地变量,打开本地变量列表,建立编程所需要的变量,如图5-4所示。循序渐进Micro800控制系统图5-4建立程序所需要的变量在项目组织器窗口中双击程序图标,打开编程窗口,在工具栏中拖拽所需要的指令到编程梯级。把常开指令拖拽到梯级上以后,会自动弹出变量列表,编程人员可以直接选择需要的变量,如图5-5所示,这里选择表示启动按钮的start。然后以同样的方法,完成第一个梯级,如图5-6所示。添加一个新的梯级,开始编写第二个梯级。在第二个梯级中需要用到计时器,这里计时器创建时选择功能块指令,把功能块指令拖拽到梯级上以后,会自动弹出选择功能块的对话框,选择TON功能块,选择完成后,计时器的名字在“Name”项中选择,选择前面建立的计时器timer。为计时器定时2s,双击计时器的PT输入处,输入T#2s即可。熄灭第一盏灯的同时,点亮第二盏灯,则梯级需要一个分支,从工具栏中拖拽梯级分支到计时器后面的梯级上,然后添加复位线圈和置位线圈,编好后的梯级如图5-7所示。第5章Micro800控制器的编程指令图5-5选择所需要的变量图5-6点亮第一盏灯的梯级图5-7第二个梯级以上步骤完成了梯形图程序的编写,右键单击程序图标,选择生成,如图5-8所示,对程序进行编译,编译无误后会提示编译完成。循序渐进Micro800控制系统图5-8编译程序5.1.2功能块1.功能块简介在Micro800控制器中可以用功能块(FunctionBlockDiagram(FBD))编程语言编写一个控制系统中输入和输出之间的控制关系图示。用户也可以使用现有的功能块组合,编辑成需要的用户自定义功能块。每个功能块都有固定的输入连接点和输出连接点,输入和输出都有固定的数据类型规定。输入点一般在功能块的左边,输出点在右侧。在FBD中同样可以使用梯形图(LD)编程语言中的元素,如线圈、连接开关按钮、跳转、标签和返回等。与梯形图编程语言不同的是,在功能块编程中所使用的元素放置位置没有过多限制,不像在梯形图中对每个元素有严格规定的位置。且在FBD编程语言中同样支持使用功能块操作,如操作指令、函数等大类功能块以及用户自定义的功能块等(只在ConnectedComponentsWorkbench™中)。当使用功能块(FunctionBlockDiagram(FBD))编程时,可以从工具箱拖出功能块元素到编辑框里,并编辑它。图5-9是一个编程示例:图5-9功能块编程示意图第5章Micro800控制器的编程指令输入和输出变量与功能块的输入和输出用连接线连接。信号连接线可以连接如下块的两类逻辑点:输入变量和功能块的输入点;功能块的输出和另一功能块的输入点;功能块的输出和输出变量。连接的方向表示连接线带着得到的数据从左边传送到右边。连接线的左右两边必须有相同的数据类型。功能块多重的右边连接分支也叫做分支结构,可以用于从左边扩展信息至右边。注意数据类型的一致性。2.功能块执行顺序在语言编辑器中,可以显示程序中包含的任意元素的执行顺序(以数字形式)。FBD程序中可以显示执行顺序的元素有:•线圈•触点•LD垂直连接•角•返回•跳转•函数•运算符•功能块实例(已声明或未声明)•变量(程序中将值分配到的地方)注意:当无法确定顺序时,标记显示问号(??)。要显示执行顺序,可以执行以下任何一种操作:•按Ctrl-W。•在工具菜单中,选择执行顺序。在程序执行期间,指令块是功能块图中的任意元素,网络是链接在一起的一组指令块,指令块的位置是依据其左上角而定的。以下规则适用于FBD程序的执行顺序:•网络从左向右、从上向下执行。•在执行指令块前,必须解析所有输入。同时解析两个或更多个指令块的输入时,执行决定是根据指令块的位置做出的(从左向右、从上向下)。•指令块的输出按从左向右、从上向下的顺序以递归方式执行。3.调试功能块调试FBD程序时,需要在语言编辑器中监视元素的输出值。这些值使用颜色、数字或文本值加以显示,具体取决于它们的数据类型:布尔数据类型的输出值使用颜色进行显示。值为“真”时,默认颜色为红色;值为“假”时,默认颜色为蓝色。输出值的颜色将成为下一输入。输出值不可用时,布尔元素为黑色。注意:可以在“选项”窗口中自定义用于布尔项的颜色。SINT、USINT、BYTE、INT、UINT、WORD、DINT、UDINT、DWORD、LINT、循序渐进Micro800控制系统ULINT、LWORD、REAL、LREAL、TIME、DATE和STRING数据类型的输出值在元素中显示为数字或文本值。当数字或文本值的输出值不可用时,在输出标签中会显示问号(??)。值还会显示在对应的变量编辑器实例中。5.1.3结构文本结构文本(StructuredText)类似于BASIC语言,利用它可以很方便地建立、编辑和实现复杂的算法,特别是在数据处理、计算存储、决策判断、优化算法等涉及描述多种数据类型的变量应用中非常有效。1.结构化文本(ST)主要语法ST程序是一系列ST语句。下列规则适用于ST程序:•每个语句以分号(“;”)分隔符结束。•源代码(例如变量、标识符、常量或语言关键字)中使用的名称用不活动分隔符(例如空格字符)分隔,或者用意义明确的活动分隔符(例如“”分隔符表示“大于”比较)分隔。•注释(非执行信息)可以放在ST程序中的任何位置。注释可以扩展到多行,但是必须以“(*”开头,以“*)”结尾。注意:不能在注释中使用注释。下面是基本ST语句类型:•赋值语句(变量:=表达式;)•函数调用•功能块调用•选择语句(例如IF、THEN、ELSE、CASE...)•迭代语句(例如FOR、WHILE、REPEAT...)•控制语句(例如RETURN、EXIT...)•用于与其他语言链接的特殊语句当输入ST语法时,下列项目以指定的颜色显示:•基本代码(黑色)•关键字(粉色)•数字和文本字符串(灰色)•注释(绿色)在活动分隔符、文本和标识符之间使用不活动分隔符可增加ST程序的可读性。下面是ST不活动分隔符:•空格•Tab第5章Micro800控制器的编程指令•行结束符(可以放在程序中的任何位置)使用不活动分隔符时,需要遵循以下规则:•每行编写的语句不能多于一条。•使用Tab来缩进复杂语句。•插入注释以提高行或段落的可读性。2.表达式和括号ST表达式由运算符及其操作数组成。操作数可以是常量(文本)值、控制变量或另一个表达式(或子表达式)。对于每个单一表达式(将操作数与一个ST运算符合并),操作数类型必须匹配。此单一表达式具有与其操作数相同的数据类型,可以用在更复杂的表达式中。示例:(boo_var1ANDboo_var2)BOOL类型not(boo_var1)BOOL类型(sin(3.14)+0.72)REAL类型(t#1s23+1.78)无效表达式括号用于隔离表达式的子组件,以及对运算的优先级进行明确排序。如果没有为复杂表达式加上括号,则由ST运算符之间的默认优先级来隐式确定运算顺序。示例:2+3*6相当于2+18=20乘法运算符具有较高优先级(2+3)*6相当于5*6=30括号给定了优先级3.调用函数和功能块ST编程语言可以调用函数。可以在任何表达式中使用函数调用。函数调用包含的属性见表5-1。表5-1函数调用属性属性说明名称被调用函数的名称以IEC61131-3语言或“C”语言编写含义调用结构化文本(ST)、梯形图(LD)或功能块图(FBD)函数或“C”函数,并获取其返回值语法:=(,...);操作数返回值的类型和调用参数必须符合为函数定义的接口返回值函数返回的值当在函数主体中设置返回参数的值时,可以为返回参数赋予与该函数相同的名称:FunctionName:=;示例循序渐进Micro800控制系统示例1:IEC61131-3函数调用(*主ST程序*)(*获取一个整型值并将其转换成有限时间值*)ana_timeprog:=SPlimit(tprog_cmd);appl_timer:=ANY_TO_TIME(ana_timeprog*100);(*被调用的FBD函数名为“SPlimit”*)示例2:“C”函数调用–与IEC61131-3函数调用的语法相同(*复杂表达式中使用的函数:min、max、right、mlen和left是标准“C”函数*)limited_value:=min(16,max(0,input_value));rol_msg:=right(message,mlen(message)-1)+left(message,1);ST编程语言调用功能块。可以在任何表达式中使用功能块调用。功能块调用属性见表5-2。表5-2功能块调用属性属性说明名称功能块实例的名称含义从标准库中(或从用户定义的库中)调用功能块,访问其返回参数语法(*功能块的调用*)(,...);(*获取其返回参数*):=.;...:=.;操作数参数是与为该功能块指定的参数类型相匹配的表达式。返回值参见上面的“语法”以获取返回值当在功能块主体中设置返回参数的值时,可以通过将返回参数的名称与功能块名称相连来分配返回参数:FunctionBlockName.OutputParaName:=;示例(*调用功能块的ST程序*)(*在变量编辑器中声明块的实例:*)(*trigb1:块R_TRIG-上升沿检测*)(*从ST语言激活功能块*)trigb1(b1);(*返回参数访问*)If(trigb1.Q)Thennb_edge:=nb_edge+1;End_if;第5章Micro800控制器的编程指令5.2Micro800控制器的内存组织Micro800控制器的内存可以分为两大部分:数据文件和程序文件。下面分别介绍这两部分内容。5.2.1数据文件Micro800控制器的

1 / 79
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功