西门子PLC通过PROFINET通信读取KUKA机械臂实时位置
1、信号关联
修改R1–System–$config.dat文件,进行信号关联,我这里配置的256个输入/输出。
2、编写读取实时位置程序
修改R1–System–sps.sub文件,这个文件是系统默认的SUBMIT解释器运行的程序文件(后台程序)。
系统变量【 $POS_ACT】:笛卡儿坐标系中当前机器人位置。
我这里读取的是笛卡尔坐标系中的机器人位置,因为位置都是浮点数REAL类型的,我这里直接放大1000倍转换为整数类型的,PLC端读取的数据再缩小1000倍即为真实的数据。
系统变量 【 $AXIS_ACT】:当前机器人位置的特殊轴,关节坐标系中各轴的角度。
3、生成代码,安装进机器人控制器
4、启动SUBMIT解释器
修改的代码没有问题的话,SUBMIT会自动启动。手动选择/启动的话需要专家及以上权限。
5、测试
当读取的是笛卡尔坐标时,当未选择工具坐标系和工具坐标系时,后台程序会停止运行;如果读取的是关节坐标,就不会出现此问题。
我采用的方法就是选择程序之后,先手动运行至BCO之后,手动启动SUBMIT解释器,然后切换为自动模式,继续运行之前的程序即可。
在变量概览显示里面添加前面关联的信号,即可查看机器人实时位置,PLC端接收的数据高低位需要反转。