方式二,在项目浏览器中双击CPU或I/O模块,如下图查看相应模块的地址,在模块的I/O对象表格里定义,这种方式只能生成,不支持修改和删除。
方式三,在”程序编辑窗口”中定义,这种方式只能生成,不支持修改和删除。
(二)实际操作
1、在项目浏览器中点击“变量和FB实例”,在右侧“名称”下输入start,类型选 EBOOL,在下一行输入 stop,类型选 EBOOL,然后关闭窗口。如下图:
2、从硬件属性中书写:在项目浏览器中双击DDO3202k;左键点右侧“BMX DDO3202k”,选择I/O对象,再选择%Q,然后点击“更新网络”。在该界面右侧%Q0.2.0名称下,改写为cmd_motor,再用鼠标左键选中第2行,按着鼠标左键下拉,选择右侧Q0.2.1、Q0.2.2、Q0.2.3;然后在左侧“名称前缀”框中输入cmd_,点击“创建”。即可形成cmd_0、cmd_1、cmd_2;如下图:
3、关闭所有窗口,点击“变量和FB实例”,会显示刚才所有的定义变量名。
4、按保存按钮,保存项目。
六、编写程序:
(一)程序结构
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、调用FFB
FFB 是基本功能(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、功能块图FBD
FBD 编辑器用于编写符合IEC61131-3 标准的图形化功能块程序。一个FBD 代码段含有一个单页面窗口。该页面有网格背景, 1 个网格有10 个网格单位坐标点,网格单位是两个对象之间的最小间隔。FBD 编程语言不是面向单元格的,但对象可以通过网格单位来对齐。一个FBD 代码段有360 个水平坐标点, 240 个垂直坐标点。
FFB 的执行顺序由其在代码段中的位置决定( 从左到右、从上到下执行),如果FFB以图形方式连接而不是实参,则执行顺序由信号流决定, FFB 的执行顺序编号显示在功能块结构的右上角。在FFB 的图形网络中,只有当 FFB 的输入所连接的所有元素( 其他FFB 输出等) 都处理完毕后,才执行该 FFB ;与同一 FFB 的不同输出连接的 FFB 的执行顺序为从上到下执行; FFB 的执行顺序与其在图形网络中的位置无关。要更改FFB 的执行顺序,您可以采用链路图形化连接来代替实参;也可以改变图形网络位置;或者在属性对话框中修改其执行顺序,如下图所示,可设置该功能块在其他某个功能块执行后立即执行。
4、继电器逻辑指令
(三)操作示例
1、在项目浏览器中依次点击“程序” → “任务” → “MAST”,右键点击“段”选择“新建段”,如下图:
在弹出的页面名称(N)一栏输入practice—1,语言中选择“LD”。如下图。
2、编写程序:
1)输入常开、常闭接点及线圈;在工具条上选择“常开接点 ”,把鼠标放置在程序编辑窗口中的灰色定位块上,点击鼠标左键,一个常开接点就输入到程序编辑窗口了,同时弹出“触点属性”页面,如下图。
在“触点属性”页面点击给该触点选择名称,如下图。或直接输入“start“。
依次输入下图所示程序。
如上图Start字符下出现红色波浪线,说明该变量没定义,需要在项目浏览器的“变量和FB实例”中定义变量。
2)写功能块:在工具条上点击,打开“FFB输入助手”如下图, 在“FFB类型”中键入TOF,下面显示“原型P”,在“实例(I)”的名称改为stop_motor”;
3)为变量赋值:双击第二个常开,点击 “功能块“,把“按缺省值命名“打对号”,选择stop_motor.Q,然后确定,退出该窗口;
4)双击tof的“PT端”弹出下图,“写入preset_ime(设置延时时间)”,点击 ,在弹出的窗口中,按扩展按钮(可以进行地址和注释);再双击“ET端”,和刚才做法一样,写名字“Elapse_time(终止时间)”。
5)点击“保存”,在菜单“生成”中选 “分析”及“项目分析”。检查无错误后存盘。
全部程序如下图。
七、Unity Pro XL 仿真器使用
1、在菜单“PLC”中选“仿真模式”。
2、在菜单“PLC”中选“设置地址”,在“介质”里,选TCP IP,主机IP地址必须是:127.0.0.1,并且.PLC仿真器只支持基于TCP/IP的通讯。
3、在PLC(P)菜单上点击“连接“,弹出如下图:
如果连接成功如下图所示,在工具栏上的图标是蓝底的红色号,如果操作连接时出现“这不是有效的PLC地址,或PLC忙碌,或介质已关闭。”可能是如下原因:
1)首先选择“仿真模式”,而不是“标准模式”。(在“PLC”菜单选择)
2)在程序安装目录中启动“PLC仿真器”。(有时可以不启动)
3)如果仿真器为黑底红叹号,则卸载 :搜狗输入法、网络实名、上网助手、新浪点点通、Chinese keywords、3721中文邮等软件。
4)如果还不行的话,在win7下就以管理员身份运行仿真器。
4、在PLC(P)菜单上点击“将项目传输的PLC(T)”如下图:
弹出对话框如下:选中“PLC在传输后运行”,点击“传输”按钮。
又弹出以下对话框“是否确认此项目上的运行(N)?”,点击确定。可看到此时梯形图线条和字体发生变化。
确定后出现下图:
也可以看到右下角工具栏的仿真器图标变成了蓝底加红播放按钮。
双击仿真器图标弹出仿真器面板RUN灯亮,ERR灯灭,SER COM灯闪烁。