MCGS弹窗赋值能读不能写的问题 点击:1080 | 回复:11



rlfeifei

    
  • 精华:0帖
  • 求助:19帖
  • 帖子:25帖 | 37回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2012年12月25日
发表于:2020-02-18 21:28:06
楼主

我在做一个项目,有14个阀门,阀门的操作按钮打算放入弹窗进行操作。

由于阀门比较多,所以我打算做一个公共窗口,点击哪个阀门,就把哪个阀门的一些变量赋值进去。

以下是我点击阀门的脚本:

opensubwnd(阀门操作窗口,0,0,200,160,49)  注:这是弹窗

VLV_NAME="#1排泥阀(净水器A)"  注:这是在弹窗中显示阀门名称

VLV_KZL=JA_PNV1_SDK  注:这是阀门的开关指令,等于1时开发出开指令,等于0时发出关指令

VLV_KFB=净水器A排泥阀1开反馈  注:这是阀门的开反馈信号

VLV_GFB=净水器A排泥阀1关反馈  注:这是阀门的关反馈信号

注:左边的是内部变量,右边的是PLC的物理地址。

目前测试,所有的信号都能在弹窗中读出来,但是无法写下去。


弹窗中有一个开关阀按钮,“开阀”按钮做的是VLV_KZL置1的功能,“关阀”按钮做的是VLV_KZL置0的功能。

实际测试下来,点击“开阀”按钮,VLV_KZL会置1,但是JA_PNV1_SDK没有变化;点击“关阀”按钮同样如此。

请问各位大神,我哪里边设置的不对?或者提供更好的方法?

我要实现的功能就是点击“开阀”,能让变量JA_PNV1_SDK置1,点击“关阀”,能让变量JA_PNV1_SDK置0,当然,前提就是我这个窗口是一个公共窗口,不是该阀门的专属弹窗。

工程文件如下:


正在下载,请等待……
下载附件需0积分!

1分不嫌少!


楼主最近还看过



ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-02-19 05:17:54
1楼

可能存在的问题:

1. 没找到你说的VLV_KZL=JA_PNV1_SDK脚本,是在PLC里?而且必须写成JA_PNV1_SDK=VLV_KZL才行。这个脚本都没有,JA_PNV1_SDK当然不会在你按下VLV_KZL按钮时改变。

2. 主画面里最上方那两个1和0按钮应该是调试时放上的吧,这两个按钮做的是错的,本身就是不让JA_PNV1_SDK改变要删掉。

3. 你应该是通过PLC来控制阀门的,JA_PNV1_SDK设备变量,你用的是读写方式,如果PLC程序某个地方逻辑有问题置0了,也是有可能造成JA_PNV1_SDK不因VLV_KZL而改变,所以,这个通道连接最好用只写方式,然后在屏幕里看看按下VLV_KZL按钮后,在屏幕上看看JA_PNV1_SDK的值是否会改变。非要用读写方式也可以,那就要检查你的PLC程序了,对PLC来说,这只是个输入开关量,也就是只读的,设置成读写就必须确保逻辑任何地方不要写变量进去。 这问题同样适用于你那些其他阀门的开关变量。

4. 看工程和描述的功能似乎对不上,我猜你是想每个阀门放个控制按钮,按下后弹出的个阀门控制窗口,然后根据按钮的不同,分别产生不同的开关信号送到PLC,是这样吗?觉得更好做法是在主画面里就放一个按钮,弹出控制窗口,然后再弹出的窗口里分别放置不同的阀门开关按钮来控制。一定要用公共弹窗的方式,就要有变量赋值脚本来区分,如JA_PNV1_SDK=VLV_KZL,你弹窗里没有这些脚本。


rlfeifei

  • 精华:0帖
  • 求助:19帖
  • 帖子:25帖 | 37回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2012年12月25日
发表于:2020-02-19 08:51:24
2楼


回复内容:

对: ozoner 可能存在的问题:1. 没找到你说的VLV_KZL=JA... 内容的回复!

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

右击阀门,点事件,脚本在mousedown的事件脚本里。

您说的第2点,那个确实是调试用的,我就是想测试下,我JA_PNV1_SDK改变后,VLV_NAME会不会改变,事实证明,会改变的。

您说的第3点:我目前没有连接PLC,都是仿真的,所以还不存在PLC影响JA_PNV1_SDK的可能性。

您说的第4点:是我的备选方案,如果这个问题无法解决,我只能选择您说的这种方法,但是目前还是想试试我目前的做法,这样操作人员可以想开哪个阀门的时候,直接点击该阀门图标就可以弹出操作窗口了。而且我目前的做法适用于阀门特别多的情况,如果有100个阀门的话,还是我目前的方法比较省事。

ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-02-19 09:06:03
3楼

回复内容:

对: rlfeifei 回复内容:对: ozoner  可能存在的问题:1. ... 内容的回复!

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

搞了半天只是在仿真运行,你那些变量都是要连到PLC,电脑上仿真模拟运行肯定是不灵的,一定要在真正的触摸屏里调试,而且要连上PLC。 工程里用到硬件就要用,不能靠仿真的。仿真不是真正的调试,和实际会有区别的。除了简单的逻辑和运算以及界面设计,其他从来不用什么仿真来测试,结果一定不可靠。

而且,阀门事件脚本那么写实在搞不清你的控制逻辑是啥, 没有哪个脚本是让开关量JA_PNV1_SDK改变的, 所以原来是什么就还是什么。 你的逻辑看上去感觉又像是由PLC来控制开关,不是屏幕按钮,矛盾多多。 不十分清楚到底想如何操作的。


总之,你的脚本写的看不出什么地方是让JA_PNV1_SDK改变,没有让它改变的指令,当然就不会改变。



ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-02-19 09:41:22
4楼

那两个调试的按钮要删除。

所有脚本最好是都放到一个循环脚本里,每个阀门图符用事件里分别写脚本修改起来会很是麻烦。 


应该这样做:

不管按哪个阀门的图符,都弹出阀门控制窗口,然后在弹出窗口的循环脚本里写所有阀门的处理程序,当然,也可以用循环策略脚本来做,这样更清楚和便于修改和调试。在这个程序里来判断要控制哪个阀门,然后把的开关的值赋值给相对应的阀门开关信号。应该是个很简单的程序了。 

此外,调试一定要在真机上调试。



rlfeifei

  • 精华:0帖
  • 求助:19帖
  • 帖子:25帖 | 37回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2012年12月25日
发表于:2020-02-19 14:51:48
5楼


回复内容:

对: ozoner 那两个调试的按钮要删除。所有脚本最好是都放到一个循环脚... 内容的回复!

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

用您的方法的话我没什么思路,主要是我不知道采集什么样的信号,能判断我点击了哪个阀门

ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-02-19 15:31:42
6楼


回复内容:

对: rlfeifei 回复内容:对: ozoner  那两个调试的按钮要删除... 内容的回复!

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

这不是很容易?给每个阀门编个号不就行了,如1,2,3.。。。。,点不同的阀门,得到不同的阀门编号。

ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-02-19 16:40:27
7楼

修改了你的工程,做了两个阀门样例,你点主页面上边1和2这两个阀门试试看,最上面是显示它们的状态,发你邮箱了。

我家有个小沐沐

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 96回
  • 年度积分:0
  • 历史总积分:165
  • 注册:2020年3月07日
发表于:2020-03-09 09:39:11
8楼

一起分享经验,一起进步!

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 63回
  • 年度积分:0
  • 历史总积分:240
  • 注册:2020年4月06日
发表于:2020-04-06 23:09:39
9楼

不错不错的位置,感谢楼主分享

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 63回
  • 年度积分:0
  • 历史总积分:240
  • 注册:2020年4月06日
发表于:2020-04-06 23:10:22
10楼

不错不错的位置,感谢楼主分享

手起刀不落

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 86回
  • 年度积分:0
  • 历史总积分:113
  • 注册:2012年9月23日
发表于:2020-09-30 09:52:09
11楼

学习学习,谢谢楼主


热门招聘
相关主题

官方公众号

智造工程师