编写程序:
(一)程序结构
1、应用程序结构
使用UnityPro软件编写程序,可以根据执行优先级别的不同,将程序分为多任务结构。多任务包括主任务、快速任务、事件任务。
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、调用FFB
FFB是基本功能(EF)、基本功能块(EFB)、用户自定义功能块(DFB)、过程的总称。
FFB可以通过3种方式调用:
1)通过“FFB输入助手”菜单命令(推荐),使用“编辑”“FFB输入助手”菜单命令。
(二)编程语言
1、梯形图
梯形图LD(LadderDiagram)是一种类似电控系统电路图的编程语言,它符合IEC61131-3标准,其基本单元是继电器触点与线圈,程序解算顺序遵从电源柱电流的方向,从左至右,从上到下,特别适合离散量的逻辑控制。
梯形图由多个不同的梯级组成,每一个梯级又由输入输出指令组成。在一个梯级中,输出指令应出现在梯级的最右边,而输入指令则出现在输出指令的左边。梯形图编程是面向单元格的,一个LD段包括单页窗口,在页中以行和列显示,最多可以定义64列(缺省为11列),2000行。
在使用LD编辑器编程时,选择编程对象有3种方法:
1)使用工具栏,如下图所示:

2)把光标放在编辑器中任何空的位置,单击右键选择对象组。如下图:
在LD编辑器中,除了IEC61131-3定义的对象,还有两个功能块(操作块、比较块)用于执行ST指令及ST功能块以及用于简单的比较操作。
操作块只在LD编程时使用,用于执行ST指令。当左边连接状态为1时,执行块中的ST指令。对于操作块,左边的连接状态直接传到右边连接,不考虑ST指令的结果。操作块可以放置在任何单元,占用1行和4列。
比较块也只用于LD编程,用于执行ST编程语言中的比较表达式(,,=,=,,=)。如果左边的连接状态为1,比较的结果也为1,则右边的状态也为1。比较块可以放置在除直接连右边母线的任一单元中,占用1行和2列。
2、结构化文本ST
结构化文本(StructText)编程类似于计算机语言编程,利用它可以很方便地建立、编辑和实现复杂的算法,特别在数据处理、计算存储、决策判断、优化算法等涉及描述多种数据类型的变量应用中非常有效。
ST程序是由一组语句列表组成,这些语句将由控制器按顺序执行。通过这些语句,您可以在一个代码段中有条件或无条件地调用功能块、功能,进行赋值,执行重复语句和在同一个代码段中执行条件跳转或无条件跳转指令。ST程序语句由操作符、操作数、表达式(可选)、注释(可选)构成。每条语句已分号结尾,多条语句(以分号分隔)可以放置在同一行,每行限制为300个字符,1条语句可以断行(多行放置),语句输入后,将立即执行一次语法和语义检查,检查结果将以彩色文本显示。
在ST语言编辑器中,专用工具条提供了一些常用指令的快捷插入键,将鼠标放置在工具条的各个对象按钮上,即可显示该对象的名称。
3、功能块图FBD
FBD编辑器用于编写符合IEC61131-3标准的图形化功能块程序。一个FBD代码段含有一个单页面窗口。该页面有网格背景,1个网格有10个网格单位坐标点,网格单位是两个对象之间的最小间隔。FBD编程语言不是面向单元格的,但对象可以通过网格单位来对齐。一个FBD代码段有360个水平坐标点,240个垂直坐标点。
FFB的执行顺序由其在代码段中的位置决定(从左到右、从上到下执行),如果FFB以图形方式连接而不是实参,则执行顺序由信号流决定,FFB的执行顺序编号显示在功能块结构的右上角。在FFB的图形网络中,只有当FFB的输入所连接的所有元素(其他FFB输出等)都处理完毕后,才执行该FFB;与同一FFB的不同输出连接的FFB的执行顺序为从上到下执行;FFB的执行顺序与其在图形网络中的位置无关。要更改FFB的执行顺序,您可以采用链路图形化连接来代替实参;也可以改变图形网络位置;或者在属性对话框中修改其执行顺序,如下图所示,可设置该功能块在其他某个功能块执行后立即执行。
4、继电器逻辑指令
免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系