登录
首页 人机界面 人机界面
回帖 发帖
正文

主题:wincc flexble脚本问题2

点击:465 回复:3

附件 00.jpg
这是西门子工程师给的脚本程序段
附件 01.jpg
这是西门子工程师的画面组态
-------------------------------------华丽的分割线--------------------------------------
附件 10.jpg
这是我自己写的脚本程序段
附件 11.jpg
这是我自己的画面组态
-------------------------------------华丽的分割线--------------------------------------
重点在这里:
西门子工程师的脚本中有这么一个调用:
HmiRuntime.Screens(Screen_Name).ScreenItems("VarNameTextfeld"& ix)
也就是说,他使用了 "VarNameTextfeld"& ix 来代替 "VarNameTextfeld1"、"VarNameTextfeld2"……
但是在我的实际操作中,程序并不认可我的这种幅值方式!
在我的程序段中:
HmiRuntime.Screens("Screen1").ScreenItems("text_3").Text可以幅值我想要的东西,但是
HmiRuntime.Screens("Screen1").ScreenItems("text_" & ix).Text //ix=3
却不能返回我所需要的结果。
我试过,"text_"& ix可以返回 "text_3",但是为什么他的ScreenItems可以引用我的不行呢?
14-01-11 08:54
到现在我都没有解决这个问题。但是我有一个初步的解决办法,可以部分实现功能,但是还是不知道这里到底错在哪里。
我的处理方法是,输出不再使用文本域,改用I/O域,I/O域用输出,对应的变量用数组,例如TMP2[20],脚本中就直接赋值为:TMP[ix]=9
此种方式测试有效。但是此种方法不适用于字符串。我需要输出字符串还要再想办法。
14-01-11 10:35
脚本就是这个地方容易出问题,我的建议是楼主直接使用例子中的变量名而不是你自己定义的输入域名试试,也许是字符串的处理有问题。
14-01-13 04:39
我试过,脚本里面居然打不出来中文!不知道又是哪根筋不对了。这个问题我已经不纠结了,我在PROTAL里边试过,脚本没问题
14-01-13 08:03

工控新闻

更多新闻资讯