2.3.1. 通信方法及数据结构
2.3.1. 通信方法及数据结构
启用联机跟踪功能时以PC为server、 机器人控制器为client进行UDP/IP通信、通信周期是5msec。 图 2.3是以C语言表示采用UDP/IP通信进行PC与机器人控制器之间收发数据的结构。发送和接收的数据大小均为64Bytes。(char型1byte、int型4bytes、double型8bytes)
struct{ char Command; char char_dummy[3]; int State; int Count; int int_dummy; double dData[6]; } |
图 2.1 UDP/IP通信的收发数据结构
图 2.3的Command是表示PC和机器人控制器之间的连接开始、连接结束、位置增量命令和机器人位置传输的变量。为了PC和机器人控制器之间正确的通信连接和数据收发应按照表2.1所示、合理设置和传输Command值。联机跟踪功能的通信启动顺序请参见2.3.2节。
表 2.1 收发数据时Command变量内容
变量名 | 数据传输方向 | ||
机器人控制器 → PC | PC → 机器人控制器 | ||
Command | 'S' | - 启用OnLTrack发送数据 - 通知联机跟踪功能开始 | - 从控制器接收'S' 命令后把 'S'返送到控制器 以通知连接 (未把'S'发送到控制器时控制器会忽略之后发 送的数据。) |
'P' | - 接到位置增量命令时发送数据 (参照State变量) - 一同发送机器人的当前位置 (参照dData变量) | - 用来发送位置增量命令 (参照dData变量) | |
'F' | - 关闭OnLTrack时发送数据 - 通知联机跟踪功能结束 | - 在关闭控制器的OnLTrack之前通过PC结束 联机跟踪功能时发送数据 - 通知联机跟踪功能结束 |
图 2.3的State变量在从机器人控制器向PC发送数据时才有意义。State=1表示开始连接、State=3表示连接结束。因此Command='S'时State=1、Command='F'时State=3。Command='P'时State为 -1或2。2表示位置增量命令已反映到机器人Motion计划、-1表示反映失败。(在机器人的异常位置(singular point)机器人的动作存在限制、有可能无法反映位置增量命令。)State变量内容见表2.2。
表 2.2 收发数据时State变量内容
变量名 | 数据传输方向 | ||
机器人控制器 → PC | PC → 机器人控制器 | ||
State | 1 | - 启用OnLTrack时发送数据 - 通知联机跟踪功能开始 | - 不使用 (reserved) |
2 | - 接收、反映位置增量命令时 | ||
-1 | - 虽然接收了位置增量命令但未能反映时 | ||
3 | - 关闭OnLTrack时发送数据 - 通知联机跟踪功能结束 |
图 2.3的Count是从PC向机器人控制器发送位置增量命令时显示是第几个位置增量命令的数字、是由用户设置的变量。从控制器向PC发送机器人的当前位置时、会如实发送之前从PC接收到的Count值。因此用户通过Count变量、每次发送数据增加一个Count、同时与从控制器接收数据时发送Count的值进行比较、即可确认之前的数据是否发送完毕。Count变量内容同表 2.3所示。
表 2.3 收发数据时Count变量内容
变量名 | 数据传输方向 | |
机器人控制器 → PC | PC → 机器人控制器 | |
Count | - 把从PC接收的值和当前机器人位置一同返送到PC | - 位置增量命令发送次数 - 在每次发送时用户可从0开始增加1次、 以确认之前控制器的数据接收情况。 |
图 2.3的dData根据发送方向具有不同的数据。从PC发送到机器人控制器时是指在5msec内机器人移动的位置增量命令、从机器人控制器发送到PC时是指机器人的当前直角坐标位置值。为了机器人的动作顺滑、应考虑加减速设置为每5msec实时发送位置增量命令。运行控制器的OnLTrack ON指令时按照Filter设置、位置增量命令被Filtering从而体现得非常柔和、但有可能发生延时。且位置增量命令会受到LIMIT POS和LIMIT VEL指令限制、需参看2.2.2节的命令文说明。机器人控制器发送到PC的机器人的当前直角坐标位置是指按照接收到的位置增量命令反映的机器人坐标系为基准的工具位置值。机器人的当前直角坐标位置值与可在TP上监控的机器人的直角坐标位置值相同。dData变量内容如表2.4。
表 2.4 收发数据时dData变量内容
变量名 | 数据传输方向 | |||
PC → 机器人控制器 | 机器人控制器 → PC | |||
dData[0]~[5] | - 5msec 内机器人可移动的位置增量命令 (增量命令坐标系因OnLTrack ON命令文的 设置而不同)
| - 反映位置增量命令的机器人坐标系的当前工具位置值
|