如何读取FANUC机器人的位置数据,用于显示在外部HMI上?

[复制链接]
查看59809 | 回复0 | 2024-6-10 17:14:23 | 显示全部楼层 |阅读模式
在实际工业自动化中,机器人作为重要一员,那么如果我们想把机器人的位置数据显示在出来,比如秀在人机界面上,那么怎么实现呢?

方法一:

还记得我们之前分享的关于数据寄存器PR的用法,其中就有关于LPOS和JPOS指令的用法。附之前文章链接:https://mp.weixin.qq.com/s?__biz=Mzg3NjE5MDUxMw==&mid=2247484196&idx=1&sn=8e98fb056b4c7f758f60457ad6adf3ad&chksm=cf374d7af840c46cce5b1426d813a20445cd3033c9685427875404c1b3cfe81e9d91fbc8ba48#rd



那么如何利用位置寄存器和数值寄存器呢,我们先创建一个TP程序,然后,编写如下程序,利用LPOS指令先将机器人的直角坐标当前位置数据存在位置寄存器PR[1]中,再利用数值寄存器将当前位置的每个轴数据转存在R中,这样R[1]-R[6]就对应X/Y/Z/W/P/R的数据。

PS: PR[1,2]是指位置数据寄存器PR[1]的Y轴数据。



这时我们会有一个疑问,按就是机器人的坐标值前面有个“±”符号,这个怎么读取呢?这时我们可以引入一个数字I/O,比如当R值大于零时,令DO为ON,对应着+;小于零时令DO为OFF,对应着-;如下图所示:



当我们采用PLC来采集机器人位置数据时,就可通过DO对应的输入信号来判定,数据最后剩上1或-1;另外还有一个问题就是机器人位置数据都是精准到小数后三位的浮点数,看显示精度要求可同步扩大10-1000倍计算。

方法二:

利用SCR_GRP指令,需要在变量表中将$SCR_GRP参数下的$M_POS_ENB打开有效状态。然后编写如下程序,下图所示:



然后,选中建立的读取位置数据程序,打开详细界面,将组掩码全部改为星号“*”,意思就是要屏蔽机器人运动轴的全部运动指令,至保留逻辑控制功能,然后将此TP程序改为后台逻辑运行。



后台逻辑:依次按键【MENU】-【设置】-【后台逻辑】打开后台逻辑设定界面,如下图所示:



在程序列表,按下方【选择】键选择刚才建立的位置数据读取程序,然后将状态改为运行,如下图所示:



剩下的就和方法一一样进行数据处理了。最终通过通讯与外部PLC或HMI链接,将数据显示出来。

下面来开一下效果视频。


video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_3464765574851084293

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则