(图片来源网络,侵删)
编写程序:(一)程序结构1、应用程序结构使用 Unity Pro 软件编写程序,可以根据执行优先级别的不同,将程序分为多任务结构。多任务包括主任务、快速任务、事件任务。1)主任务(MAST) 是应用程序的主要任务,它是必需的,是整个应用程序的基础,由代码段和子程序组成。主任务的每一个代码段都可用5 种标准IEC61131-3 语言:LD、FBD、IL、 ST 或SFC 来进行编写。子程序可用LD、FBD、IL、ST 来编写,在任务代码段中进行调用。您可以选择主任务的执行类型:循环执行( 缺省) 或者周期性执行(1~255ms)。2)快速任务(FAST) 用于执行时间较短的、周期性的处理任务。它由代码段和子程序组成。代码段和子程序都可用LD、FBD、IL、ST 来编写。SFC 不适用于快速任务。快速任务是周期性(1~255ms) 执行的,它的优先级别比主任务高,快速任务的程序执行时间必须尽可能的短,以避免低优先级别的任务发生溢出。3)事件任务(EVENT) 的优先级别最高,高于其他任何任务,适用于需要极短时间响应事件的处理任务,这些事件来自专用输入/ 输出模块或事件计时器。事件处理任务是单代码段的,它只含有一个代码段,可以用LD、FBD、IL、ST 来编写。用户可以根据实际应用需求定义各种任务的执行方式,右键单击任务文件夹中MAST的属性,在其属性对话框中调整运行参数。2、程序段和子程序3、创建程序段第一步,在项目浏览器的树型结构中,右键单击“段”,选择右键菜单中的“新建段”,得到如下窗口。第二步,在该窗口中定义好段的名称,选择该段编程语言的种类,确认即可。在该窗口的“条件”选项卡中,您还可以定义1 个布尔变量做为该段的执行条件,缺省状态为无条件执行该代码段。4、调用FFBFFB 是基本功能(EF)、基本功能块(EFB)、用户自定义功能块(DFB)、过程的总称。FFB 可以通过3 种方式调用:1)通过“FFB 输入助手”菜单命令( 推荐),使用“编辑” > “FFB 输入助手”菜单命令。2)或从快捷菜单中点击命令,通过“数据选择”菜单命令,使用“编辑” > “数据选择”菜单命令。3) 或从快捷菜单中点击命令,通过“类型库浏览器”中的拖放功能,使用“工具” > “类型库浏览器”菜单命令。 (二)编程语言1、梯形图梯形图LD(Ladder Diagram)是一种类似电控系统电路图的编程语言,它符合IEC61131-3标准,其基本单元是继电器触点与线圈,程序解算顺序遵从电源柱电流的方向,从左至右,从上到下,特别适合离散量的逻辑控制。梯形图由多个不同的梯级组成,每一个梯级又由输入输出指令组成。在一个梯级中,输出指令应出现在梯级的最右边,而输入指令则出现在输出指令的左边。梯形图编程是面向单元格的,一个LD 段包括单页窗口,在页中以行和列显示,最多可以定义64 列( 缺省为11 列), 2000 行。在使用LD 编辑器编程时,选择编程对象有3 种方法: 1) 使用工具栏,如下图所示:2)把光标放在编辑器中任何空的位置,单击右键选择对象组。如下图:3)点击菜单“编辑” > “新建”在LD 编辑器中,除了IEC61131-3 定义的对象,还有两个功能块( 操作块、比较块) 用于执行ST 指令及ST功能块以及用于简单的比较操作。操作块只在LD 编程时使用,用于执行ST 指令。当左边连接状态为1 时,执行块中的ST 指令。对于操作块,左边的连接状态直接传到右边连接,不考虑ST 指令的结果。操作块可以放置在任何单元,占用1 行和4 列。比较块也只用于LD 编程,用于执行ST 编程语言中的比较表达式(<, >, >=, <=, <>, =)。如果左边的连接状态为1,比较的结果也为1,则右边的状态也为1。比较块可以放置在除直接连右边母线的任一单元中,占用1 行和2 列。2、结构化文本ST结构化文本(Struct Text) 编程类似于计算机语言编程,利用它可以很方便地建立、编辑和实现复杂的算法,特别在数据处理、计算存储、决策判断、优化算法等涉及描述多种数据类型的变量应用中非常有效。ST 程序是由一组语句列表组成,这些语句将由控制器按顺序执行。通过这些语句,您可以在一个代码段中有条件或无条件地调用功能块、功能,进行赋值,执行重复语句和在同一个代码段中执行条件跳转或无条件跳转指令。ST 程序语句由操作符、操作数、表达式( 可选)、注释( 可选) 构成。每条语句已分号结尾,多条语句( 以分号分隔) 可以放置在同一行,每行限制为300 个字符,1 条语句可以断行( 多行放置),语句输入后,将立即执行一次语法和语义检查,检查结果将以彩色文本显示。在ST 语言编辑器中,专用工具条提供了一些常用指令的快捷插入键,将鼠标放置在工具条的各个对象按钮上,即可显示该对象的名称。3、功能块图FBDFBD 编辑器用于编写符合IEC61131-3 标准的图形化功能块程序。一个FBD 代码段含有一个单页面窗口。该页面有网格背景, 1 个网格有10 个网格单位坐标点,网格单位是两个对象之间的最小间隔。FBD 编程语言不是面向单元格的,但对象可以通过网格单位来对齐。一个FBD 代码段有360 个水平坐标点, 240 个垂直坐标点。FFB 的执行顺序由其在代码段中的位置决定( 从左到右、从上到下执行),如果FFB以图形方式连接而不是实参,则执行顺序由信号流决定, FFB 的执行顺序编号显示在功能块结构的右上角。在FFB 的图形网络中,只有当 FFB 的输入所连接的所有元素( 其他FFB 输出等) 都处理完毕后,才执行该 FFB ;与同一 FFB 的不同输出连接的 FFB 的执行顺序为从上到下执行; FFB 的执行顺序与其在图形网络中的位置无关。要更改FFB 的执行顺序,您可以采用链路图形化连接来代替实参;也可以改变图形网络位置;或者在属性对话框中修改其执行顺序,如下图所示,可设置该功能块在其他某个功能块执行后立即执行。4、继电器逻辑指令
0 评论