回复:SCL坐标数据无法传送过来

lu_zhao_long

  • 帖子

    513
  • 精华

    9
  • 被关注

    33

论坛等级:侠圣

注册时间:2004-09-17

钻石 钻石 如何晋级?

发布于 2025-08-22 16:41:32

1楼

看你的 SCL 程序中两次使用了 (IF "堆垛机Z目标位置" = 0.7) 和 (IF "堆垛机Z当前位置" = 0.7) 这样的语句。

因为 "堆垛机Z目标位置" 和 "堆垛机Z当前位置" 是浮点数,在计算机中只有极少部分小数能够使用有限位数的二进制完整表达出来,其它绝大部分小数对于二进制来说就是“无限小数”而无法完整表达出来,只能是近似的数!

所以,你不能像对待整数那样使用 “=” 来做浮点数的逻辑判断的!像你这样使用的逻辑判断条件基本上是永远不成立的。因此,IF 块内的程序也是不会执行的。


因为我不懂你的工艺,所以下面的建议只供你参考。若不符合,请忽略!

你把这些浮点数比较条件放大100 倍,并取整后再比较。比如:

IF ROUND("堆垛机Z目标位置" * 100) = 70 THEN

……

IF  ROUND("堆垛机Z当前位置" * 100) = 70 AND "计数" = 4 THEN

……

深陷于此,我是来“喝水”的! lu_zhao_long@139.com
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15228条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。