关于WebAccess使用全局脚本注意事项 点击:1342 | 回复:5



PLC酷客

    
  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2013-09-23 16:23:30
楼主

关于WebAccess使用全局脚本注意事项

 

关于WebAccess使用全局脚本注意事项

WEBACCESS的全局脚本在使用中有一个很不合理的地方,我对此进行了测试,确实存在问题。现在我把问题描述一下,打比方我们在程序里调用了两个全局脚本,分别是A.scr和B.scr。

 


a, b脚本的内容分别如下图:

a为实际I/O点,bc为常数点,abc初始值都为0。
第一种情况:a的值能上来,通讯正常,那么给b赋值20,给c赋值30,AB两脚本运行正常。
第二种情况:a通讯失败,值为*,那么b被赋值为20,这时候c仍然是0!!!这种情况下,A脚本正常执行, B脚本不执行。

结论:
       一旦全局脚本中某一句执行失败,那么该脚本随后的语句仍然能够执行直到脚本结束,但是该全局脚本后面的所有全局脚本将不再执行。

解决方法:
1.将最容易出现通讯错误的脚本排在全局脚本列表的最后面。
2.如果每个全局脚本代码的长度都不是很长的话,建议合并成一个脚本。
3.这个问题RD也在努力,静待……



楼主最近还看过



老土豆

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 40回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年10月24日
发表于:2015-06-08 18:31:17
1楼

你好,A、B都为I/O点,A为只读地址段,B为读写地址段,我在脚本里写if{A>=460 } then{ setval B=6211 },然后我再添加到全局脚本里运行,结果没反应,求大神指教,我的邮箱是gfxu@kenyon.com,谢谢!

李东泽

  • [版主]
  • 精华:7帖
  • 求助:25帖
  • 帖子:1209帖 | 6375回
  • 年度积分:216
  • 历史总积分:44409
  • 注册:2010年3月25日
发表于:2016-01-08 06:49:10
2楼

感谢楼主的分享,学习了

sileizhihen

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 473回
  • 年度积分:0
  • 历史总积分:2657
  • 注册:2011年7月11日
发表于:2016-01-16 11:03:32
3楼


引用 李东泽 的回复内容: 感谢楼主的分享,学习了


国家工业化

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 93回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2005年4月08日
发表于:2016-01-16 22:11:38
4楼

好的东西,谢谢分享,我也好好学习一下

gyfgyf

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2014年7月03日
发表于:2016-05-12 16:36:05
5楼

这个有办法解决的,只要用if语句判断IO点的通讯状态即可。

写成:

if{[GETVAL a.QCODE]==0}then{

SETVAL a=10}

这样就可以在通讯失败的情况下正常运行脚本了


热门招聘
相关主题

官方公众号

智造工程师