有一个宏,做成了一定的线性转换。
在其他同一个工程里面有其他宏需要重复这个转换。可否有外部调用的功能呢?我看过同一个宏里面定义了子宏之后才可以重复调用。
但是就仅限于本宏的调用。
回答:
答案是可以的。
在我们创建一个宏之后,在宏编辑界面会默认会有一个主函数。
格式如下:
macro_command main()
end macro_command
这就是一个完整的宏指令。
在主函数内可以编写代码实现相应的功能。
如果如果要实子函数的形式编写代码,也可以编写子函数。
但在注意子函数编写时摆放的位置。
例如下面在一个宏里编写了两个子函数,其中add或以实正确调用,add1不被识别。
这是注意点1.
注意点2是子函数参数不可为short类型,得Int类型。
sub int add(int a,int b)
return a+b
end sub
macro_command main()
int c=0,a=1,b=2
c=add(a,b)
c=add1(a,b)
SetData(c, "Local HMI", LW, 0, 1)
end macro_command
sub int add1(int a,int b)
return a+b
end sub
当然在一个宏指令里编写的子函数是不可以被其他宏调用了。
若有某些特定的函数常常使用却无法从威纶通内建函数库搜寻到时,而这些函数又要实现函数共享,
我们就可以自行定义所需的函数并保存起来。当下次需要再定义相同的函数时,可由 “宏指令库” 呼叫出已
保存的函数,方便函数编辑。另外,”宏指令库” 也大幅提升了我们自定义函数之可移植性。
这是威纶官网对用户自定义函数的介绍。
我们要添加自定义的宏指令,可以在正常打开宏指令管理窗口时,点击宏指令库,打开宏指令库管理窗口。
威纶通触摸屏宏可否调用宏
在宏指令库管理窗口里就可以添加一个全局的子函数供其他宏指令调用。
如我们编写了一个全局的子函数
sub short subtract(short a,short b)
short rtn=0
rtn=a-b
return rtn
end sub
那么在其他宏里面就可以调用此子函数。
sub int add(int a,int b)
return a+b
end sub
macro_command main()
int c=0,a=1,b=2
c=add(a,b)
//
short e=2,f=1
c= subtract(e, f)
SetData(c, "Local HMI", LW, 0, 1)
end macro_command
在编写宏指令添加函数里,通过向导也是可以勾选宏指令库来使用的。
如下图。
威纶通触摸屏宏可否调用宏
以上就是对问题的回答。
关于宏指令的使用,我也录制了视频教程,可以参考学习。
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|