您好,欢迎访问泰安宏盛自动化科技有限公司!
20年专注工控自动化研发制造 系统设计\制作\安装一条龙服务
全国咨询热线:18605386049
当前位置: 首页 > 技术资料 > 程序案例

威纶通触摸屏宏指令,调用宏指令分类函数,详解与实操

作者:小编 时间:2022-12-16 15:12:01 点击:

前面小节我们介绍了下图中的数学运算,

字符串处理,数据转换,数据操作分类函数,

这小节我们继续了解宏控制分类下的函数,

通过编写程序来实践。

0784082bf9f48041b68.jpg

宏在编写好后,可以供元件调用,也可以供其他宏调用。

威纶提供3个宏操作的函数。

1.DELAY。

主要用于在宏指令执行过程当中延时执行的功能。

例如DELAY(1000),表示延时1000ms后,再执行后面的宏指令。

macro_command main()

int value=0,n=0

int i=0

for i=0 to 3 step 1

RAND(value)

n=value%255

//延时500ms再执行后面的SetData(n, "Local HMI", LW, 0, 1)

DELAY(500)

SetData(n, "Local HMI", LW, 0, 1)

next

end macro_command

2. ASYNC_TRIG_MACRO。

函数用于在一个宏指令中,使用异步的方法调用其他宏指令。

例如我们编写好了一个宏,ID为0,名称为macro_0

我们就可以通过宏ID,或宏名称调用宏。

ASYNC_TRIG_MACRO(0)

ASYNC_TRIG_MACRO("macro_0")

3. SYNC_TRIG_MACRO。

跟上边的函数类似,我们可以使用同步方式调用一个宏。

在使用上是相同的,也可以传递宏ID,或宏名称。

如下

macro_command main()

SYNC_TRIG_MACRO(0)

SYNC_TRIG_MACRO("macro_1")

end macro_command

同步可以理解为函数必须等被调用的宏执行完才往下继续执行。

而异步不会关心被调用的宏是否执行完,仅触发一次调用就继续执行后面的代码。

这里我们可以编写一个例程来使用宏指令相关的函数,同时查看同步,异步的区别。

首先编写两个宏指令,实现对LW0,LW1寄存器数值的修改,用于被调用其他宏调用。

代码如下

第一个宏ID为0,名称为 macro_0,实现了对地址LW0的随机修改。

macro_command main()

int value=0

int i=0

for i=0 to 255 step 10

value = value+10

SetData(value, "Local HMI", LW, 0, 1)

DELAY(100)

next

end macro_command

第二个宏ID为1,名称为 macro_1,实现了对地址LW1的随机修改。

macro_command main()

int value=0

int i=0

for i=0 to 255 step 10

value = value+10

SetData(value, "Local HMI", LW, 1, 1)

DELAY(100)

next

end macro_command

然后再编写两个宏,对前面编写好的宏进行同步与异步调用。

第三个宏,实现对第一个,第二个宏的异步调用。

可以通过宏ID或宏名称调用。

macro_command main()

ASYNC_TRIG_MACRO(0)

ASYNC_TRIG_MACRO("macro_1")

end macro_command

第四个宏,实现对第一个,第二个宏的同步调用。

macro_command main()

SYNC_TRIG_MACRO(0)

SYNC_TRIG_MACRO("macro_1")

end macro_command

然后是添加元件,来显示宏执行的效果。

如下图,我们添加了一个棒图元件,一个表针元件。

同时设置了其读写地址为LW0和LW1,以及数值范围为0-255.

再添加两个位状态设置元件,调用宏3,宏4.



QQ在线咨询
联系电话
17658151177
售后服务
17658151177