wincc flexible 脚本中 调用脚本(函数类型,即带返回值的)的格式是怎么回事

书上说 <表达式> = <函数名称> 【参数1】,【参数2】,…【参数N】
这个具体的用起来是怎么回事?
举个例子,我先边个脚本 abc   定义为函数类型,参数为 gd
内容:if  gd > 0 then  
            abc = 5
           endif 
我门知道比如我在一个按钮的事件里调用abc的时候,有两个参数要填,一个是gd,一个是输出值。
但是如果我再建立另一个脚本 ert,定义为 sub。
我怎么样在sub中调用abc  把abc的返回值给变量 H2WE呢?(h2we  是与PLC进行数据交换建立的变量)
按照上面的那个格式我写的如下:
h2we空格 =空格 abc空格www             (www是另一个变量,在这里赋给gd)
但是这个格式是错误的,请问应该怎么编写?
我们知道系统函数setvalue(tag1,value)
直接调用的时候是: setalue空格www,5     (把值5给变量www)是这样的吗?

麻烦高手给我讲讲,主要是调用带返回值的简本或者函数时的格式,要给我写个例子句子,上面的那个格式我实在是没看懂,试了很多都没成功。

问题补充:
对sub的调用我知道怎么弄,但是带返回值那里,等于号处该怎么处理?

最佳答案

我不理解你到底说的是什么意思我只能根据我的理解给你回答,
函数与SUB区别是一个带有返回值而SUB不带返回值,比如你的程序
if  gd > 0 then  
            abc = 5
           endif 
这个abc是一个脚本名称然后如果GD这个变量(由于你没定义所以说是你的变量)>0则把5赋给abc也就是赋给这个脚本的返回值,然后你可以在按钮或其他事件中触发这个脚本但是触发的时候与SUB不同的是他会要求你填写返回值要赋给那个变量你说是要赋给H2WE这个变量那么那个输出值就填你的变量H2WE。当然如果说你用的是SUB那么你在END IF下面加一行 H2WE = ABC因为你现在选用的是SUB所以在第一行要定义ABC这个变量 或者你将5的值直接赋给H2WE.
DIM ABC,                                 
if  gd > 0 then                  IF GD > 0 THEN
            abc = 5                    H2WE = 5
           endif                     END IF
H2WE = ABC
对于脚本外的变量还可以用SmartTags("gd")来表示 gd就是你人机界面中的真实变量。

提问者对于答案的评价:
我明白你的意思了,也就是说,即使是在函数调用另外一个函数,也要先以被调用函数的名字定义为变量再调用是吧?我现在要出去,回来了试一试。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc218202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月29日 下午5:37
下一篇 2017年11月29日

相关推荐