您现在所在的是:

人机界面

回帖:3个,阅读:433 [上一页] [1] [下一页]
7672
w71412659
文章数:1455
年度积分:53
历史总积分:7672
注册时间:2013/5/8
发站内信
2018论坛魅力之星
发表于:2014/1/11 8:54:18
#0楼
附件 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可以引用我的不行呢?
10分悬赏
兽人永不为奴,除非包吃包住!
7672
w71412659
文章数:1455
年度积分:53
历史总积分:7672
注册时间:2013/5/8
发站内信
2018论坛魅力之星
发表于:2014/1/11 10:35:46
#1楼
到现在我都没有解决这个问题。但是我有一个初步的解决办法,可以部分实现功能,但是还是不知道这里到底错在哪里。

我的处理方法是,输出不再使用文本域,改用I/O域,I/O域用输出,对应的变量用数组,例如TMP2[20],脚本中就直接赋值为:TMP[ix]=9

此种方式测试有效。但是此种方法不适用于字符串。我需要输出字符串还要再想办法。
兽人永不为奴,除非包吃包住!
40361
tigermu 版主
文章数:14904
年度积分:1319
历史总积分:40361
注册时间:2004/8/12
发站内信
2018论坛优秀版主
2018春节活动(二)
2017论坛优秀版主
2017国庆活动(一)
2016论坛优秀版主
2016国庆活动(一)
2015论坛优秀版主
西门子logo体验(三)
英威腾PLC体验(三)
2015春节活动
2014论坛优秀版主
2013论坛优秀版主
2012论坛优秀版主
2010年度论坛贡献奖
发表于:2014/1/13 4:39:59
#2楼
脚本就是这个地方容易出问题,我的建议是楼主直接使用例子中的变量名而不是你自己定义的输入域名试试,也许是字符串的处理有问题。
清泉石上,明月松间。
7672
w71412659
文章数:1455
年度积分:53
历史总积分:7672
注册时间:2013/5/8
发站内信
2018论坛魅力之星
发表于:2014/1/13 8:03:58
#3楼
回复 #2楼 tigermu
我试过,脚本里面居然打不出来中文!不知道又是哪根筋不对了。这个问题我已经不纠结了,我在PROTAL里边试过,脚本没问题
兽人永不为奴,除非包吃包住!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003