第一部分:micro800控制器的编程指令资料

上传人:w****i 文档编号:98089475 上传时间:2019-09-08 格式:DOC 页数:79 大小:2.04MB
返回 下载 相关 举报
第一部分:micro800控制器的编程指令资料_第1页
第1页 / 共79页
第一部分:micro800控制器的编程指令资料_第2页
第2页 / 共79页
第一部分:micro800控制器的编程指令资料_第3页
第3页 / 共79页
第一部分:micro800控制器的编程指令资料_第4页
第4页 / 共79页
第一部分:micro800控制器的编程指令资料_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《第一部分:micro800控制器的编程指令资料》由会员分享,可在线阅读,更多相关《第一部分:micro800控制器的编程指令资料(79页珍藏版)》请在金锄头文库上搜索。

1、第5章 Micro800控制器的编程指令 第 5 章5 Micro800控制器的编程指令学习目标n 了解编程器的工作方式n 了解可编程控制器编程方式的特点n 熟练掌握功能块指令、函数指令和操作指令5.1 Micro800控制器编程语言通常PLC不采用微机的编程语言,而采用面向控制过程、面向实际问题的自然语言编程。这些编程语言有梯形图、逻辑功能图、布尔代数式等。如罗克韦尔自动化公司所有的PLC(Micro800、MicroLogix、SLC 500、PLC-5和ControlLogix)都支持梯形图(LD)的编程方式。Micro800控制器支持三种编程方式:梯形图、结构化文本和功能块编程。其最大

2、的特点就是每种编程方式都支持功能块化的编程。下面分别介绍这三种方式。5.1.1 梯形图梯形图一般由多个不同的梯级(RUNG)组成,每一梯级又由输入及输出指令组成。 在一个梯级中,输出指令应出现在梯级的最右边,而输入指令则出现在输出指令的左边,如图 51所示。输入指令输出指令图 51梯形图梯形图表达式是从原电器控制系统中常用的接触器、继电器梯形图基础上演变而来的。它沿用了继电器的触点、线圈、串联等术语和图形符号,并增加了一些继电接触控制没有的符号。梯形图形象、直观,对于熟悉继电器方式的人来说,非常容易接受,而不需要学习更深的计算机知识。这是一种最为广泛的编程方式,适用于顺序逻辑控制、离散量控制、

3、定时、计数控制等。首先应对硬件进行组态,完成系统的硬件组态以后,就可以编写程序文件了。首先要创建一个新程序,在项目组织器窗口中右键单击控制器图标,选择添加一个新的梯形图程序,如图52所示。图52新建梯形图程序新建程序后,在如图53所示的窗口右键单击Programs(程序),选择对程序重新命名。图53新建的梯形图程序把程序命名为test,创建的程序将完成以下功能:有两盏灯light1和light2,在第一盏灯亮两秒以后,熄灭第一盏灯,点亮第二盏灯。首先要创建编写程序所需要的变量,分别有start、light1、light2和计时器timer。程序中所用到的变量可以是全局变量,也可以是本地变量,在

4、项目组织器窗口中打开本地变量或者全局变量,只要双击其图标即可。这里采用本地变量,打开本地变量列表,建立编程所需要的变量,如图54所示。图54建立程序所需要的变量在项目组织器窗口中双击程序图标,打开编程窗口,在工具栏中拖拽所需要的指令到编程梯级。把常开指令拖拽到梯级上以后,会自动弹出变量列表,编程人员可以直接选择需要的变量,如图55所示,这里选择表示启动按钮的start。然后以同样的方法,完成第一个梯级,如图56所示。添加一个新的梯级,开始编写第二个梯级。在第二个梯级中需要用到计时器,这里计时器创建时选择功能块指令,把功能块指令拖拽到梯级上以后,会自动弹出选择功能块的对话框,选择TON功能块,选

5、择完成后,计时器的名字在“Name”项中选择,选择前面建立的计时器timer。为计时器定时2s,双击计时器的PT输入处,输入T#2s即可。熄灭第一盏灯的同时,点亮第二盏灯,则梯级需要一个分支,从工具栏中拖拽梯级分支到计时器后面的梯级上,然后添加复位线圈和置位线圈,编好后的梯级如图57所示。图55选择所需要的变量图56点亮第一盏灯的梯级图57第二个梯级以上步骤完成了梯形图程序的编写,右键单击程序图标,选择生成,如图58所示,对程序进行编译,编译无误后会提示编译完成。图58编译程序5.1.2 功能块1功能块简介在Micro800控制器中可以用功能块(Function Block Diagram(F

6、BD)编程语言编写一个控制系统中输入和输出之间的控制关系图示。用户也可以使用现有的功能块组合,编辑成需要的用户自定义功能块。每个功能块都有固定的输入连接点和输出连接点,输入和输出都有固定的数据类型规定。输入点一般在功能块的左边,输出点在右侧。在FBD中同样可以使用梯形图(LD)编程语言中的元素,如线圈、连接开关按钮、跳转、标签和返回等。与梯形图编程语言不同的是,在功能块编程中所使用的元素放置位置没有过多限制,不像在梯形图中对每个元素有严格规定的位置。且在FBD编程语言中同样支持使用功能块操作,如操作指令、函数等大类功能块以及用户自定义的功能块等(只在Connected Components W

7、orkbench中)。当使用功能块(Function Block Diagram(FBD)编程时,可以从工具箱拖出功能块元素到编辑框里,并编辑它。图59是一个编程示例:图59功能块编程示意图输入和输出变量与功能块的输入和输出用连接线连接。信号连接线可以连接如下块的两类逻辑点:输入变量和功能块的输入点;功能块的输出和另一功能块的输入点;功能块的输出和输出变量。连接的方向表示连接线带着得到的数据从左边传送到右边。连接线的左右两边必须有相同的数据类型。功能块多重的右边连接分支也叫做分支结构,可以用于从左边扩展信息至右边。注意数据类型的一致性。2功能块执行顺序在语言编辑器中,可以显示程序中包含的任意元

8、素的执行顺序(以数字形式)。FBD程序中可以显示执行顺序的元素有: 线圈 触点 LD垂直连接 角 返回 跳转 函数 运算符 功能块实例(已声明或未声明) 变量(程序中将值分配到的地方)注意:当无法确定顺序时,标记显示问号 (?)。 要显示执行顺序,可以执行以下任何一种操作: 按 Ctrl-W。 在工具菜单中,选择执行顺序。在程序执行期间,指令块是功能块图中的任意元素,网络是链接在一起的一组指令块,指令块的位置是依据其左上角而定的。以下规则适用于 FBD 程序的执行顺序: 网络从左向右、从上向下执行。 在执行指令块前,必须解析所有输入。同时解析两个或更多个指令块的输入时,执行决定是根据指令块的位

9、置做出的(从左向右、从上向下)。 指令块的输出按从左向右、从上向下的顺序以递归方式执行。3调试功能块调试 FBD 程序时,需要在语言编辑器中监视元素的输出值。这些值使用颜色、数字或文本值加以显示,具体取决于它们的数据类型:布尔数据类型的输出值使用颜色进行显示。值为“真”时,默认颜色为红色;值为“假”时,默认颜色为蓝色。输出值的颜色将成为下一输入。输出值不可用时,布尔元素为黑色。 注意:可以在“选项”窗口中自定义用于布尔项的颜色。SINT、USINT、BYTE、INT、UINT、WORD、DINT、UDINT、DWORD、LINT、ULINT、LWORD、REAL、LREAL、TIME、DATE

10、 和 STRING 数据类型的输出值在元素中显示为数字或文本值。当数字或文本值的输出值不可用时,在输出标签中会显示问号 (?)。值还会显示在对应的变量编辑器实例中。5.1.3 结构文本结构文本(Structured Text)类似于BASIC语言,利用它可以很方便地建立、编辑和实现复杂的算法,特别是在数据处理、计算存储、决策判断、优化算法等涉及描述多种数据类型的变量应用中非常有效。1结构化文本(ST)主要语法ST 程序是一系列ST语句。下列规则适用于ST程序: 每个语句以分号(“;”)分隔符结束。 源代码(例如变量、标识符、常量或语言关键字)中使用的名称用不活动分隔符(例如空格字符)分隔,或者

11、用意义明确的活动分隔符(例如“”分隔符表示“大于”比较)分隔。 注释(非执行信息)可以放在 ST 程序中的任何位置。注释可以扩展到多行,但是必须以“(*”开头,以“*)”结尾。 注意:不能在注释中使用注释。下面是基本 ST 语句类型: 赋值语句(变量 := 表达式;) 函数调用 功能块调用 选择语句(例如 IF、THEN、ELSE、CASE.) 迭代语句(例如 FOR、WHILE、REPEAT.) 控制语句(例如 RETURN、EXIT.) 用于与其他语言链接的特殊语句当输入 ST 语法时,下列项目以指定的颜色显示: 基本代码(黑色) 关键字(粉色) 数字和文本字符串(灰色) 注释(绿色)在活

12、动分隔符、文本和标识符之间使用不活动分隔符可增加ST程序的可读性。下面是ST不活动分隔符: 空格 Tab 行结束符(可以放在程序中的任何位置)使用不活动分隔符时,需要遵循以下规则: 每行编写的语句不能多于一条。 使用Tab来缩进复杂语句。 插入注释以提高行或段落的可读性。2表达式和括号ST表达式由运算符及其操作数组成。操作数可以是常量(文本)值、控制变量或另一个表达式(或子表达式)。对于每个单一表达式(将操作数与一个ST运算符合并),操作数类型必须匹配。此单一表达式具有与其操作数相同的数据类型,可以用在更复杂的表达式中。示例:(boo_var1 AND boo_var2) BOOL 类型not

13、 (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 函数调用属性属性说明名称被调用函数的名称以 IEC 61131-3 语言或“C

14、”语言编写含义调用结构化文本 (ST)、梯形图 (LD) 或功能块图 (FBD) 函数或“C”函数,并获取其返回值语法:= (, . );操作数返回值的类型和调用参数必须符合为函数定义的接口返回值函数返回的值当在函数主体中设置返回参数的值时,可以为返回参数赋予与该函数相同的名称:FunctionName := ; 示例示例 1:IEC 61131-3 函数调用(* 主 ST 程序 *)(* 获取一个整型值并将其转换成有限时间值 *)ana_timeprog := SPlimit ( tprog_cmd );appl_timer := ANY_TO_TIME (ana_timeprog * 10

15、0);(* 被调用的 FBD 函数名为“SPlimit” *)示例 2:“C”函数调用 与 IEC 61131-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功能块调用属性属性说明名称功能块实例的名称含义

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号