打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
机器人通过总线实时输出位置给PLC

转载请先后台留言,大家一起支持原创,推动机器人使用和发展

本公众号对各类ABB机器人应用,仿真,毕业设计提供技术支持,详细后台留言

本公众号诚挚希望与各机器人培训机构,机器人使用单元合作,提供技术支持,详细后台留言


市面唯一一本讲解ABB工业机器人二次开发的书籍,作者倾情呈现

1. PLC希望实时得到机器人当前位置(XYZ,ABC),如何实现?

2. 由于传输数据较大,建议通过总线进行传输。

3. 此处举例机器人通过PROFINET总线(机器人作为Device),实时向PLC发送当前位置(此处PLC以CODESYS为例)

4. 机器人创建若干组信号(此处每个信号使用32位,即4byte),如下图

5. 机器人可以通过定时中断(例如0.2s),或者通过多任务在后台读取当前位置并将发送到对应组输出上。

6. 由于得到的位置数据为num型(带符号的小数),为避免传输问题,可以先统一将数据*1000再取整。

7. 由于ABB机器人组输出只能存放非负整数,故我们将个数据以DINT(带符号整数,32位)形式打包并转化为DWORD(不带符号整数,32位)形式进行发送

8. Setdata指令的实现方式参见  通过总线发送实数及负整数

9. 代码如下

VAR intnum intno1;    PROC init1() IDelete intno1; CONNECT intno1 WITH get_pos; ITimer 0.2,intno1; ENDPROC    PROC main() init1; WHILE TRUE DO          Mainroutine;        ENDWHILE ENDPROC TRAP get_pos VAR robtarget ptmp:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; VAR num rx; VAR num ry; VAR num rz; ptmp:=crobt();

以下内容包括机器人代码以及完整CODESYS配置PROFINET通讯及数据处理步骤

        rx:=eulerzyx(\X,ptmp.rot);        ry:=eulerzyx(\Y,ptmp.rot);        rz:=eulerzyx(\Z,ptmp.rot);        setdata\DINT,g_pox_x,round(1000*ptmp.trans.x);        setdata\DINT,g_pox_y,round(1000*ptmp.trans.y);        setdata\DINT,g_pox_z,round(1000*ptmp.trans.z);
setdata\DINT,g_pox_rx,round(1000*rx); setdata\DINT,g_pox_rY,round(1000*ry); setdata\DINT,g_pox_rZ,round(1000*rz); ENDTRAP

10. 此处举例使用CODESYS V3.5 SP9

11. 在设备库中添加ABB机器人GSDML文件

12. 右击 device,添加对应总线和ABB机器人从站模块

13. 在PLC程序中创建若干变量

Currspeed:REAL;    PosX:REAL;    PosY:REAL;    PosZ:REAL;    PosRZ:REAL;    PosRY:REAL; PosRX:REAL;    

14. 对输入数据进行处理

CurrSpeed:=DWORD_TO_REAL(%ID0)/10;PosX:=DWORD_TO_DINT(%ID1)/1000.0;PosY:=DWORD_TO_DINT(%ID2)/1000.0;PosZ:=DWORD_TO_DINT(%ID3)/1000.0;PosRX:=DWORD_TO_DINT(%ID4)/1000.0;PosRY:=DWORD_TO_DINT(%ID5)/1000.0;PosRZ:=DWORD_TO_DINT(%ID6)/1000.0;

15. 打开

并将程序下载,启动运行

16. 此时可以看到总线通讯正常

17. 机器人运行程序后,在PLC侧可以实时看到如下数据变化

此时对应机器人位置:

18. 为直观显示,可以在CODESYS中创建HMI

19. 拖入相应控件,并将变量进行关联

20. 启动PLC后,可以在HMI上实时看到机器人当前位置。

web网页实时获取ABB机器人位置

ABB机器人炸裂黑科技

如何离线配置EtherNet I/O模块(混搭模块配置)

ABB机器人新示教器创建工具工件坐标系

自定义外部轴教程—变位机

福尼斯焊机Ethernet/IP通讯配置

ABB机器人之有意思的编程合集

强迫症患者的福音--程序格式化

Python控制ABB机器人运动

ABB机器人与Python通讯

ABB机器人与Halcon通讯

ABB机器人Modbus/TCP 通讯

ABB机器人EGM外部引导选项介绍

ABB机器人总线配置合集

ABB机器人通过总线发送浮点数

上位机获取机器人运行总时间

ABB机器人速度设置

获取机器人单轴位置速度扭矩

如何使用WorldZone功能创建HOME位信号输出

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
西门子PLC的数据类型及数据转换
SCL与STL的区别是什么?16个SCL常见问题及解答
ABB工业机器人-socket接受字节数组转DINT
ABB基础知识13:ABB机器人通信(建议收藏)
机器人冲压自动化生产线设计简析~
新松6轴机器人打磨轴承盖方法研究
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服