ABB机器人Bat_shutdown服务例行程序与机器人轴校准详解

最近作者在在客户现场协助处理机器人故障的时候,遇到了一个比较令人头痛的问题,作者感觉这个问题中有几个我们去注意的要点,所以这次就写一下分享给大家。

客户之前新上了一台机器人用于机床上下料。由于订单与订单之间的周期间隔很长,有时甚至会3到4个月没有订单,这就导致机器人存在长期不开机的情况。由于机器人长期不开机,机器人轴的转数计数器就只能依靠SMB电池的支援来“生存”,那么接下来必然会发生的事就是SMB电池在未来的某一天“悄无声息”的没电了。为什么会“悄无声息”呢?前面提到了,机器人存在长期不开机的情况,不开机机器人是没法提示更换SMB电池的。

那么有的小伙伴会想,开机重新更新转数计数器不就可以了吗?是的,小伙伴们想的是对的,但在这个客户的机器人上却存在一个令人头痛的事,就是重新更新完转数计数器后机器人的点位完全不正确了。经排查,最终结论,这个项目之前调试的时候机器人的转数计数器的更新状态就是错误的。这就导致我们现在更新的虽然是正确的,但相对于之前错误的来说是不正确的,这就导致机器人点位全部改变了。而机床上下料对机器人的精度的要求又是特别高的,最好的处理方式就是重新示教核对工作站的机器人的各个点位。如果机器人的产品很多的话,这无疑是一场“灾难”。

到这里故事就讲完了,从这个故事中可以分析出导致这个问题发生的2个主要原因;

SMB电池电量耗尽导致机器人轴转数计数器数据丢失。

设备调试初期机器人轴转数计数器值更新不正确或根本就未更新转数计数器,这就使得即使后期维护时转数计数器更新是正确的,也会导致与前期的更新值对应不起来,导致之前点位失效。

对于存在机器人长期不使用的应用场景,ABB机器人其实已经给出了解决方案。执行机器人服务例行程序中的Bat_shutdown可以使处于生产空档期或在运输或库存期间的机器人关闭串行测量电路板的电池电池以节省电池电力。正常关机的功耗约为 1 mA。使用Bat_shutdown关闭电池功耗会减少到 0.3 mA。机器人重新开机时将重新开启电池。但机器人的转数计数器会丢失,需要手动更新。所以建议在使用服务例行程序 Bat_shutdown 之前,先运行机器人到其校准位置,这样在机器人重新开机后会方便人工校准恢复。

对于Bat_shutdown服务例行程序的调用步骤如下:

对于更新转数计数器,我想小伙伴们已经非常熟悉了,这里就不在赘述了。不过转数计数器更新时所还是有几个地方需要再强调温习一下。

1、机器人本体上的机械刻度问题。有些型号的机器人的有些轴零点位置的刻度确实有些让人“傻傻分不清”。其实当遇到这种情况的时候请查阅对应机器人的手册,手册里面有机器人本体上零点位置的说明。不能凭感觉,文首的例子可能就是本体刻度没有找正确造成的。

对于没有手册的小伙伴可以点击下方的下载进行下载。

 

点我下载手册光盘

 

2、转数计数器中的校准偏移值并不是验证机器人本体转数计数器更新位置与机器人轴同步位置的位置是否一致的参考。即使在更新轴转数计数器时更新位置与同步位置偏差很大,甚至偏移误差超过允许范围,偏移值不会自行更改的。有些小伙伴其实就是被这个偏移值给误导了,以为偏移值没有变,转数计数器的更新就是正确的。

其实校准偏移值只会在机器人调用校准方法或者手动微校时才会改变,但这种方法需要专业的校准知识与校准设备才可以校准,这里就不在介绍了。

这次的分享到就到这里了,如果本文对你有帮助或者启发,那就动动你发财的小手转发到朋友圈吧,让它帮助启发更多的人。

 

文章首发微信公众号自动化生产之家

 

 

 

 

 

 

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C# 中与ABB机器人通信的主要方式是使用 Socket 网络通信,通过 Ethernet 网络连接到机器人控制器,向机器人发送指令并接收机器人的反馈信息。 下面是一个简单的 C# 代码示例,用于向机器人发送指令并接收机器人的反馈信息: ``` using System.Net.Sockets; // 机器人控制器 IP 地址和端口号 string ipAddress = "192.168.125.1"; int port = 1025; // 创建 Socket 对象并连接机器人控制器 Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); clientSocket.Connect(new IPEndPoint(IPAddress.Parse(ipAddress), port)); // 发送指令 string command = "MoveJ p1, v100\ntest\n"; byte[] buffer = Encoding.ASCII.GetBytes(command); clientSocket.Send(buffer); // 接收机器人反馈信息 buffer = new byte[1024]; int count = clientSocket.Receive(buffer); string feedback = Encoding.ASCII.GetString(buffer, 0, count); // 关闭 Socket 连接 clientSocket.Shutdown(SocketShutdown.Both); clientSocket.Close(); ``` 其中,ipAddress 和 port 变量分别表示机器人控制器的 IP 地址和端口号,使用 Socket 对象连接到机器人控制器后,通过 Send() 方法向机器人发送指令,通过 Receive() 方法接收机器人反馈信息。 需要注意的是,机器人控制器接收的指令需要使用 Rapid 语言编写,并按照 Rapid 语言的语法规则进行格式化和解析。此外,机器人控制器的 IP 地址和端口号需要根据实际情况进行设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值