admin 管理员组文章数量: 1184232
2024年1月25日发(作者:activities短语)
第一部分:宏指令简介
宏指令,是威纶通触摸屏提供的一个附加功能。简而言之,它是一个脚本编辑界面,用户可以在上面编写一些命令,从而对组态的控件执行一些复杂的逻辑运算等处理。利用宏指令可以实现一些应用程序以外的操作,例如 多级用户密码登入 、 动态锁机
、 配方存储 等;以及一些简单的触摸屏逻辑,例如 开机进度条 、 画面切换
等功能,用宏指令做的话会事半功倍。本节,我们先从宏指令的基础语法开始,带你敲开宏指令这扇大门。
宏指令的语法类似于简化版的 VB 或 C 语言,大家如果对 C
语言的变量、语句、函数、数组等概念有了解的话,宏指令使用起来就是很简单的。如果没有了解也没关系,下面我们就来一一介绍宏指令的编辑步骤。
在讲解之前,我们先来了解宏指令的编辑器与触发条件。宏指令的 新建/编辑界面
如下所示:
打开方式: 菜单栏 -- 工具,点击“宏指令”。
新增 -- 编译通过的宏指令在列表中显示。最多可以新增 128 个独立的宏指令。
一个新的宏指令编辑界面如下所示:
其中,第一行的 macro_command main() 和最后一行的 end macro_command
是固定格式,大家不用管它。我们的宏指令逻辑在这两行之间编写。
刚才我们提到过,宏指令的语法类似于简化版的 C 语言。 C
语言当中编程的第一件事是定义变量。变量可以理解成是一个相对的地址,我们可以自由对它命名。宏指令当中变量就是基本的编程对象,定义好的变量才可以使用,换而言之,
变量必须先定义后使用。不定义就使用变量、或者先使用后定义的做法,都是错误的
。
变量的定义方法如下: 数据类型 变量名称
例如: int A
bool bfh
short ABC
数据类型的列举如下所示,大家根据需求来选择。
定义好了变量之后,我们需要给变量赋予一个绝对地址的值。这样才能使变量与实际的地址,也就是我们编辑好的触摸屏控件产生一个对应,这个过程叫做变量导入。宏指令当中,我们需要借助一个专用函数来实现变量导入功能,这个函数写作 Getdata
。
格式:
Getdata ([ 导入目标变量名 ] , ''[ 设备 ]'' , [ 地址类型 ] , [ 地址 ] , [
个数 ])
例如: Getdata( “ bfh ” , “ Local HMI ” , LB , 0 , 1)
含义: 把本机触摸屏地址 LB0 里的值导入到变量 bfh 里面,数量为 1 个。
对于Getdata 这样的专用函数,我们不需要手动输入函数的格式,而是在宏指令编辑区左下角的函数库里面直接填写即可,如图所示:
设置完成之后,点击确定, Getdata 函数就自动生成到编辑区。
图中,我们先定义了一个 bool 型的变量 a ,然后将触摸屏的地址 LB0 导入到变量 a 当中。
LB0 对应着触摸屏的一个按钮控件,如图所示:
现在,我们利用 Getdata 函数,将按钮控件 LB0 的状态对应到了宏指令的变量 a
当中。
我们想实现用按钮 LB0 来控制 LB1 的功能,还需要把变量 a 的状态对应到 LB1
当中。将变量的状态对应到实际控件地址的过程,称作变量导出。如何来实现变量导出呢?这就要用到导出函数: Setdata 。
格式 (和 Getdata 非常相似):
Setdata ([ 导出来源变量名 ] , ''[ 设备 ]'' , [ 地址类型 ] , [ 地址 ] , [ 个数 ])
例如: Setdata( “ bfh ” , “ Mistubishi FX3U ” , M , 0 , 1)
含义: 把变量 bfh 里的值导出到 FX3U PLC 的 M0 里面,数量为 1 个。
Setdata 函数,我们同样可以在函数库当中向导生成,如下所示:
这样,我们的宏指令程序 -- 按钮 LB0 控制小灯 LB1
就编写完了。我们还需要对它进行编译,以及设定执行条件,如下所示:
宏指令的执行方式由以下几种:周期执行(无条件执行)、开机执行、窗口执行、控件执行、触发式执行等等。本例子我们采用 周期执行 的方式,执行周期为0 毫秒(不间断执行)。
到现在为止,我们用了一个最简单的例子-- 按钮控制灯,来简单说明了宏指令的几个关键点 -- 变量; Getdata 、 Setdata
函数;以及宏指令的编译与执行。大家可以利用 EB8000 或者 EBpro
软件,自行新建工程离线模拟一遍。
Powered by TCPDF ()
版权声明:本文标题:【精品详解】威纶通触摸屏宏指令应用(一) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1706172672a502893.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论