电工学习网

 找回密码
 立即注册
查看: 1210|回复: 0
打印 上一主题 下一主题

西门子与ABB机器人传输负数及小数

[复制链接]
跳转到指定楼层
楼主
发表于 2021-12-13 17:54:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  在最近项目需要用到ABB机器人和西门子plc进行数据传输,ABB机器人控制柜上自身带有一个16输入16输出的IO板子,简单的bool量通讯,直接用通过IO接线就可以实现。想要更加方便的传输数据,就可以用到PROFINET通讯。在abb信号传输数据类型支持Digital Input\Output及Analog Input\Output,还有Group Input\Output.
项目上需要的传输数据是±360°内的任意角度值,然后精度需要小数点两位。为了实现这一功能,采用了两个数据类型,一个bool量用数值正负的判断,两个数据类型是Group用于传输角度数据。把传输角度数据除以100,用于实现小数精度。
下面的是ABB机器人中的程序,GI600是组输入信号名称,然后Reg600是机器人中num类型的信号名称,IN100是个bool变量数据。Reg601则是机器人本身可以用到数据。
     Reg600:=GI600;
        IF IN100=0 THEN
            Reg601:=reg600/100;
        ELSE
            Reg601:=-reg600/100;
        ENDIF
同样的方法,西门子plc侧的数据也要经过处理,才能用于传输,把正数用单独的bool量的0表示,负数则赋值成1。然后把角度数值放大100倍,转换成整数。
依次类推,好多情况在不支持负数及小数传输的数据类型下,都可以运用此原理进行转换。
希望对接触做PLC和ABB机器人的项目工控人能够提供到一点帮助,当我自己也是想好久,因为查了好久的资料也没有找到直接的解决方法。在大家的故事中,也学习到了大家分享的经验,对一些平时不懂,或者未接触到的,有的一个新的认知。
来源:西门子工业技术论坛

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-2-9 07:40

Powered by © 2011-2022 www.shop-samurai.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表