请教各位大神,使用MCGS嵌入版,现在我这里通过循环脚本获取位状态信号,现在的情况是图中XV001_Stat_bInOrg和XV001_Stat_bPerms这两个的状态读取不到给XV_InOrg_Temp和XV_Perm_Temp,但是XV001_Stat_bInEnd能正常读取到给XV_InEnd_Temp;不通过!DataGetInt这个指令,控件直接关联XV001_Stat_bInOrg,状态是正常的。
请教各位大神,使用MCGS嵌入版,现在我这里通过循环脚本获取位状态信号,现在的情况是图中XV001_Stat_bInOrg和XV001_Stat_bPerms这两个的状态读取不到给XV_InOrg_Temp和XV_Perm_Temp,但是XV001_Stat_bInEnd能正常读取到给XV_InEnd_Temp;不通过!DataGetInt这个指令,控件直接关联XV001_Stat_bInOrg,状态是正常的。
谢谢楼主分享
没用到这个函数,找到原因了吗?
这个是那个版本的
!DataGetInt(DatName,Value)
函数意义: 通过数据对象名读取整数数据对象的值
返 回 值: 整数
= 0,执行成功
<> 0,执行失败
= 1,类型不匹配
= 3,数据对象不存在
可以根据这个函数的返回值调试一下
谢谢各位的回复,问题找到了,是因为昆仑通触摸屏的通讯机制导致的问题,虽然变量在变量表里定义了,触摸屏程序界面中我是通过指令变址的方式进行数据读写的,由于需要读取的寄存器或线圈在当前页面中没有实际使用,所以触摸屏在调用该弹出窗口前未对指向的寄存器及线圈进行读操作,内部仍保留最后一次读取获得的数据,当窗口弹出时,!DataGetInt指令只从本地数据库中获取值,而非产生一次实质的通讯请求。解决方式是在当前页面中将那些计划需要弹窗显示的变量绑定控件,然后把控件放置在界面显示范围外,当打开该页面的会更新当前页面所有控件绑定的变量地址的值,或者通过策略工具周期读取更新不在页面直接显示的变量地址。
下载学习一下,感谢楼主分享这么好的资料!