关于MCGS的!DataGetFloat指令问题请教 点击:98 | 回复:2



DrMai

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:10帖 | 62回
  • 年度积分:15
  • 历史总积分:233
  • 注册:2013年5月30日
发表于:2024-12-13 09:37:40
楼主

企业微信截图_20241213092701.png如图上编写的脚本程序,由于测试把上部分屏蔽了,现在的问题是上图中!DataGetFloat()指令无法正确读取寄存器的值,但是!DataSetFloat()指令却可以正常写入值到寄存器,图中SetObjName是字符串类型的,里面的值为LT004,SetObjName + "_Param_PID_MaxValue"与"LT004_Param_PID_MinValue"是等价的,下段!DataGetFloat("LT004_Param_PID_MaxValue", Test)读取到的值一直是0,但实际PLC的值是50.2,Test关联的数值输入框中修改Test的值会被!DataGetFloat("LT004_Param_PID_MaxValue", Test)读取到的0所覆盖,但是通过赋值指令Test = LT004_Param_PID_MaxValue是可以正常的把50.2读取到Test里的,并且PLC端修改该值也会及时变化。所以目前情况是通过!DataSetFloat(SetObjName + "_Param_PID_MaxValue", LT_PID_MaxValue_Temp)可以正常写入值,但是!DataGetFloat(SetObjName + "_Param_PID_MaxValue", LT_PID_MaxValue_Temp)却无法正常读取到值,各位大神你们有这样使用的情况吗?是我指令错了吗还是什么问题呢?



楼主最近还看过

lihongxing339

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:13
  • 历史总积分:15
  • 注册:2009年4月05日
发表于:2024-12-23 11:25:02
1楼

SetObjName加双引号试试

回复本条

    
  • DrMai楼主

    经测试,应该是目标变量的值在触摸屏中没有实际使用过,然后触摸屏的数据并不是将所有添加到变量表中的值都会读取,而是只更新读取当前页面所显示的空间所关联的变量,我通过在循环策略里,让那些变量循环读取更新,这个问题就解决了,但是这是很笨的方法了。

    2025-01-01 11:06:56回复


热门招聘
相关主题

官方公众号

智造工程师