MCGS自动注销脚本问题 点击:3106 | 回复:11



gk2017

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 75回
  • 年度积分:0
  • 历史总积分:168
  • 注册:2018年11月08日
发表于:2019-04-30 11:24:57
楼主
求助帖30分-已结帖

自己编写了一个分钟为单位的登录无操作(20分钟自动注销脚本,循环策略中加入脚本的方式,该方法不限制任何画面,只要登录无操作即可自动退出登录。),测试该脚本时,发现问题是,有的时候能够自动注销,有的时候弹出是否退出登录的对话框,并卡在该画面上,程序没有自动按确认键。所以觉得特别奇怪,是不是自己的脚本有问题,或者我在策略循环属性对话框中设置的循环时间为1000ms,该值是否影响退出登录对话框?请路过高手给与解答,不胜感激!以下为循环策略脚本内容:

当前时间=!TimeI2Str(!GetLastMouseActionTime(),"%X")'获取鼠标的最后动作时间

设定时间=!TimeSpanGetminutes(!TimeGetSpan(!TimeGetCurrentTime(),!GetLastMouseActionTime()))'计算鼠标最后的活动时间与当前时间的差值

时间 = $Time 

if 设定时间 >=20 then

   ret1=!strComp("负责人",!GetCurrentUser())

   ret2=!strComp("操作员",!GetCurrentUser())

       if ret1=0 or ret2=0 then'判定当前的用户

           !SendKeys("{ENTER}")

           !LogOff() 

       endif

   ret1=!strComp("负责人",!GetCurrentUser())

   ret2=!strComp("操作员",!GetCurrentUser())

endif




实时数据库中建立五个变量:“ret1”开关型、

                                            “ret2”开关型、

                                            “时间”字符型、

                                            “设定时间”数值型 

                                            “当前时间”字符型


1分不嫌少!



ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 848回
  • 年度积分:69
  • 历史总积分:8584
  • 注册:2017年1月12日
发表于:2019-04-30 14:24:48
1楼

ret1=!strComp("负责人",!GetCurrentUser())

ret2=!strComp("操作员",!GetCurrentUser())

if ret1=0 or ret2=0 then  '判定当前的用户

    if 设定时间 >=20 then

           !SendKeys("{ENTER}")

           !LogOff() 

     endif

endif


gk2017

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 75回
  • 年度积分:0
  • 历史总积分:168
  • 注册:2018年11月08日
发表于:2019-04-30 17:08:34
2楼


回复内容:

对: ozoner ret1=!strComp("负责人",!GetCur... 内容的回复!

-------------------------

删掉这两行多余的,但是还是原来的现象,高手帮帮忙!

ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 848回
  • 年度积分:69
  • 历史总积分:8584
  • 注册:2017年1月12日
发表于:2019-04-30 18:01:36
3楼

@gk2017:

既然是多余,为何要写上?而且只看到删除那两行?没看到其他的不同吗?

实在不行把循环时间改小再试试, 我这里就是这么写的,没发现问题。

ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 848回
  • 年度积分:69
  • 历史总积分:8584
  • 注册:2017年1月12日
发表于:2019-04-30 18:07:43
4楼

你可以看看这里以前我写的一个样例,一直在使用,没发现问题。

此外特别注意,一定要下载到屏里来运行,模拟环境下运行时不是100%可靠的。曾遇到很多人说遇到这个那个的问题,搞了半天却常常是在模拟环境里,我的习惯是一定下载到屏里来测试。


http://bbs.gongkong.com/d/201808/769225_1.shtml


gk2017

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 75回
  • 年度积分:0
  • 历史总积分:168
  • 注册:2018年11月08日
发表于:2019-05-05 09:17:01
5楼


回复内容:

对: ozoner 你可以看看这里以前我写的一个样例,一直在使用,没发现问... 内容的回复!

-------------------------

我就是模拟环境下运行的测试有时正常有时不正常,触摸屏下载之后就正常,请问高手这是什么原因?

ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 848回
  • 年度积分:69
  • 历史总积分:8584
  • 注册:2017年1月12日
发表于:2019-05-05 15:17:17
6楼


回复内容:

对: gk2017 回复内容:对: ozoner  你可以看看这里以前我写... 内容的回复!

-------------------------

几乎所有的模拟软件都会有bug的,尤其是那些直接要用到硬件功能的函数部分,如定时器,通讯及接口的函数,编译后在屏里是靠硬件来实现的,而在模拟环境下则完全是靠软件来模拟硬件的功能,即便是大牌西门子PLC模拟软件也无法做到完全模拟不出错,一样有很多bug.  软件的东西都是这样啦,windows 系统还不也是三天两头的发布更新,不停的修复bug, 是软件都避免不了。

用模拟器来调试组态界面,系统逻辑及运算处理还是很好的,也非常方便。但仅此而已,不能完全依赖,可能的话还是要尽量直接用硬件来运行调试。  

gk2017

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 75回
  • 年度积分:0
  • 历史总积分:168
  • 注册:2018年11月08日
发表于:2019-05-06 09:14:21
7楼


回复内容:

对: ozoner 回复内容:对: gk2017  回复内容:对: ozo... 内容的回复!

-------------------------

感谢高手指点,并且感谢您的耐心解答!

Smile-lyc

  • [管理员]
  • 精华:114帖
  • 求助:50帖
  • 帖子:2793帖 | 22283回
  • 年度积分:311
  • 历史总积分:144042
  • 注册:2006年8月04日
发表于:2019-06-21 15:01:58
8楼

感谢诸位大师积极答疑,同时也希望求助楼主在得到满意答案以后或自己已经找到问题解决方案以后,跟自己帖子分享经验,如果是积分悬赏求助,请及时结贴发放积分奖励。

waitalone2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 53回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2014年5月12日
发表于:2019-07-01 23:15:31
9楼
谢谢楼主辛苦分享!辛苦了



waitalone2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 53回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2014年5月12日
发表于:2019-07-01 23:18:55
10楼
谢谢楼主辛苦分享!辛苦了



fengxiaolangzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 536回
  • 年度积分:0
  • 历史总积分:490
  • 注册:2014年1月07日
发表于:2019-09-12 17:01:40
11楼

谢谢楼主辛苦分享!辛苦了


热门招聘
相关主题

官方公众号

智造工程师