JAKA SRCI 用户手册
名词解释
名词 |
说明 |
|---|---|
SRCI |
Standard Robot Command Interface,标准机器人指令接口。 |
EDK |
Easy Development Kit,西门子提供的SRCI协议解析器。 |
RI |
Robot Interface,其状态一般用来表示SRCI通讯是否建立。 |
RA |
Robot Arm,机器人本体。 |
RC |
Robot Controller,机器人控制器。 |
TCP |
Tool Center Point,工具中心点。 |
TCS |
Tool Coordinate System,工具坐标系。 |
UCS |
User Coordinate System,用户坐标系。 |
WCS |
World Coordinate System,世界坐标系。 |
WCP |
Wrist Center Point,用于配置机器人本体肩肘腕姿态参数。 |
M/O |
Mandatory/Optional,SRCI手册要求的必须和可选功能。 |
前言
SRCI是由PROFINET International开发和维护的开放标准协议。
SRCI运行在基于PROFINET工业以太网的通信协议上,因此SRCI的部署和使用需要PROFINET。
SRCI将机器人应用程序的完整集成工作(包括编程)转移到PLC中完成。
SRCI本质上提供了一个接口,允许用户直接在PLC中对机器人进行编程和控制。
SRCI标准化了数据包和PLC库的使用,使用户能够在不同机器人之间自由快速地切换,而无需重新学习、重新编程和重新部署。
注意
SRCI支持的功能和参数范围取决于解释器取得的认证类型(有限发布或广泛发布)。JAKA解释器已通过广泛发布认证,支持“Profile Core”包含的全部参数和功能。请仔细阅读以下内容,并特别注意风险项。
软硬件支持
JAKA 部分
机器人硬件:全系通用(开启PROFINET支持)
需要将PROFINET的GSDML文件版本更新至GSDML-V2.41-JAKA-JAKARobot-20231017.xml
机器人控制器:v3.3.13及以上版本(***控制器必须为X64版本*)。
App:v3.3.7及以上
西门子PLC部分
西门子SIMATIC S7-1500 PLC及以上,例如:西门子1516-3 PN/DP。
PLC要支持PROFINET功能
版本说明
SRCI定义了三种功能组,这三个组内包含了所有接口功能:
Profile Core |
Profile Extended |
Profile Optional |
|---|---|---|
包含接口的核心功能 / 包含基础指令 |
包含所有核心配置文件中未定义的强制指令 |
包含所有可选功能 |
备注
节卡将主要支持有限制的 Core。
缩减范围的Core
以下是缩减范围的Core支持的功能:
整个Core的实现依赖于Core功能中部分基础指令的实现,这类基础指令可以理解为支持Core运行的前置指令,并不需要客户单独使用,所以不在此处列出。
部分指令的支持程度各异,会单独说明。
ChangeSpeedOverrideEnableRobotGroupContinueGroupInterruptGroupJogGroupResetGroupStopMoveAxesAbsoluteMoveDirectAbsoluteMoveLinearAbsoluteReadActualPositionReadToolDataReadFrameDataReadLoadDataReadRobotDefaultDynamicsReadRobotReferenceDynamicsReadRobotSWLimitsWriteToolDataWriteFrameDataWriteLoadDataWriteRobotDefaultDynamicsWriteRobotReferenceDynamicsWriteRobotSWLimits
限制
在使用SRCI命令之前,请仔细阅读这些限制:
使用MoveLinearAbsolute命令时,如果目标点的ConfigMode与当前点不一致,目标点可能不可达,机器人将被取消使能。
当使用WriteRobotSWLimits指令时,将切换手动/自动模式。尝试将其设置为外部T1模式。
LoadData[0]是默认值,不能通过WriteLoadData设置。如果应用程序上的默认负载不为零,[LoadData0]的数据将无法同步。
不支持的函数:
CreateServerLog
ReadServerLog
CreateClientLog
ReadClientLog
UserData函数的一部分:DelayTime、InterpreterCycleTime、Accelerating、ConstantVelocity、IsBlending
风险项
使用JAKA安全IO
请配合使用JAKA安全功能以保障操作人员安全。JAKA提供以下外部安全IO功能:
附加急停
附加保护性停止
缩减模式(可以设置相应的末端速度、机器人功率等)
指令说明
符号解释:
√ 代表运行SRCI时,此参数的定义和表现与SRCI标准一致。 × 代表暂不支持。 ! 代表有条件的支持。
ChangeSpeedOverride
ChangeSpeedOverride修改除GroupJog和FreeDrive外的所有运动指令的运行速率。
指令支持在运动过程中修改,新的运行速率会立即生效。
RI初始化后,运行速率自动设置为5%。
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
Override |
REAL |
[%] |
M |
√ |
EnableRobot
节卡机器人允许单独操作Power On/Off(机械臂上下电)和Enable/Disable(机械臂上下使能),这个和其他普通工业机器人有所不同。
Enable之前必须要Power On;Power Off之前必须要Disable。
Enable(上使能)表示机器人可以接收运动指令。
仅支持operationmode=4(外部自动)的情况。
一般情况下,使用EnableRobot指令后只需5s便可使能机器人进行操作。
但在发生碰撞或急停后再次发送该指令时,使能过程可能延长至20s。机器人执行Enable(使能)前必须先完成Power On(上电)。通常上电由AddOn程序完成;急停后机器人可能处于掉电状态,而AddOn仍在运行,因此再次发送Enable指令时,机器人会先执行Power On(约15s),随后执行Enable(约5s)。
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
HoldToRun |
BOOL |
|
M |
√ |
StepMode |
USINT |
|
M |
! 仅支持0和2 |
ManualStep |
BOOL |
|
O |
× |
响应参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
Enabled |
BOOL |
|
M |
√ |
GroupContinue
该函数会让状态为 "Interrupted"的运动指令继续执行,在运动指令中断的情况下恢复运动。
GroupInterrupt
该函数会中断所有正在执行的运动指令并停止全部关节,但不会清除已规划的路径,可通过GroupContinue恢复运动。
JAKA机器人支持在GroupInterrupt状态下进行Jog操作,此时系统会自动切换到第二序列。
GroupStop的优先级大于GroupInterrupt,调用时将终止GroupInterrupt。
GroupJog
GroupJog模式共有JogFrame、JogTool和JogAxes,节卡均支持。
GroupReset
使用groupreset将清除ReadMessages读取的信息,包括错误、警告等信息。
主要使用场景是:
控制器错误,如pstop(保护性停止)
AddOn的SRCI功能运行异常时
GroupStop
清除当前活跃序列的运动指令,并清空运动指令缓存。
MoveAxesAbsolute
该函数控制机器人沿未定义路径运动到指定的绝对轴位置。
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
JointPosition |
RobotJointPosition |
|
M |
!不支持外部轴 |
VelocityRate |
REAL |
[%] |
M |
√ |
AccelerationRate |
REAL |
[%] |
M |
√ |
DecelerationRate |
REAL |
[%] |
O |
× |
JerkRate |
REAL |
[%] |
O |
× |
ToolNo |
USINT |
|
M |
支持0-15,默认0为法兰坐标系 |
AbortingMode |
USINT |
|
M |
√ |
BlendingMode |
USINT |
|
M |
!参考单独的blending说明 |
BlendingParameter |
ARRAY[0..1] of REAL |
|
M |
√ |
MoveDirectAbsolute
通过给定的笛卡尔位置计算出一条最快到达目标位置(关节位置)的路径,目标位置根据ConfigMode的ConfigParameters计算。
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
Position |
RobotCartesian Position |
|
M |
!不支持外部轴 |
VelocityRate |
REAL |
[%] |
M |
√ |
AccelerationRate |
REAL |
[%] |
M |
√ |
DecelerationRate |
REAL |
[%] |
O |
× |
JerkRate |
REAL |
|
O |
× |
ToolNo |
USINT |
|
M |
支持0-15,默认0为法兰坐标系, -1表示当前 |
FrameNo |
USINT |
|
M |
支持0-15,默认0为世界坐标系, -1表示当前 |
AbortingMode |
USINT |
|
M |
√ |
BlendingMode |
USINT |
|
M |
!参考单独的blending说明 |
ConfigMode |
ConfigParameters |
|
M |
!参考单独的构型说明 |
TurnMode |
USINT |
|
M |
! 仅支持2 |
MoveLinearAbsolute
该函数给出到达基于指定坐标系的实际笛卡尔位置的插补直线运动路径,通过ConfigMode的ConfigParameters可以明确目标位置。
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
Position |
RobotCartesian Position |
|
M |
!不支持外部轴 |
VelocityRate |
REAL |
[%] |
M |
√ |
AccelerationRate |
REAL |
[%] |
M |
√ |
DecelerationRate |
REAL |
[%] |
O |
× |
JerkRate |
REAL |
|
O |
× |
ToolNo |
USINT |
|
M |
支持0-15,默认0为法兰坐标系 |
FrameNo |
USINT |
|
M |
支持0-15,默认0为世界坐标系 |
AbortingMode |
USINT |
|
M |
√ |
BlendingMode |
USINT |
|
M |
!参考单独的blending说明 |
ConfigMode |
ConfigParameters |
|
M |
!参考单独的构型说明 |
TurnMode |
USINT |
|
M |
! 仅支持2 |
ReadActualPosition
读取基于指定坐标系的当前(TCP)位置。
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
ToolNo |
INT |
|
M |
! 支持0-15,-1表示当前 |
FrameNo |
INT |
|
M |
! 支持0-15,-1表示当前 |
响应参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
Position |
RobotPosition |
|
M |
√ |
ReadFrameData
读取基于FrameNumber的用户坐标系设置。
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
FrameNo |
INT |
|
M |
! 支持0-15,-1表示当前 |
ReadLoadData
读取基于LoadNo的负载数据。
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
LoadNo |
INT |
|
M |
! 支持1-15,-1表示当前 |
响应参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
LoadData |
LoadData |
|
M |
!支持X、Y、Z和Mass的读取 |
ReadRobotDefaultDynamics
读取机器人默认动力学参数
响应参数
返回DefaultDynamics,结构如下:
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
VelocityRate |
REAL |
[%] |
M |
√ |
AccelerationRate |
REAL |
[%] |
M |
√ |
DecelerationRate |
REAL |
[%] |
O |
×,返回-1 |
JerkRate |
REAL |
[%] |
O |
×,返回-1 |
ReadRobotReferenceDynamics
读取机器人参考动力学参数
响应参数
返回ReferenceDynamics,结构如下
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
VelocityReference |
REAL |
[mm/s] |
M |
√ |
AccelerationReference |
REAL |
[mm/s2] |
M |
√ |
DecelerationReference |
REAL |
[mm/s2] |
O |
× |
JerkReference |
REAL |
[mm/s3] |
O |
× |
ReadRobotSWLimits
读取机器人关节正负软限位
响应参数
返回DefaultDynamics,结构如下
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
J1LowerLimit, J1UpperLimit / ~ / J6LowerLimit, J6UpperLimit |
REAL |
[mm/s] |
M |
√ |
E1LowerLimit, E1UpperLimit / ~ / E6LowerLimit, E6UpperLimit |
REAL |
[mm/s] |
M |
× |
ReadToolData
读取基于ToolNumber的工具坐标系设置
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
ToolNo |
USINT |
|
M |
!仅支持1~15 |
响应参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
ToolData |
ToolData |
|
M |
√ |
WriteFrameData
基于FrameNo写入用户坐标系数据
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
FrameNo |
USINT |
|
M |
!仅支持1~15 |
FrameData |
FrameData |
|
M |
√ |
referenceFrame不能指向已设置其他referenceFrame(非0)的用户坐标系。
WriteLoadData
基于LoadNo写入负载数据
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
LoadNo |
USINT |
|
M |
!仅支持1~15 |
LoadData |
LoadData |
|
M |
!仅支持X、Y、Z和Mass的写入 |
WriteRobotDefaultDynamics
写入机器人默认动力学参数
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
VelocityRate |
REAL |
[%] |
M |
√ |
AccelerationRate |
REAL |
[%] |
M |
√ |
DecelerationRate |
REAL |
[%] |
O |
× |
JerkRate |
REAL |
[%] |
O |
× |
WriteRobotReferenceDynamics
写入机器人参考动力学参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
VelocityRate |
REAL |
[%] |
M |
√ |
AccelerationRate |
REAL |
[%] |
M |
√ |
DecelerationRate |
REAL |
[%] |
O |
× |
JerkRate |
REAL |
[%] |
O |
× |
WriteToolData
基于ToolNo写入工具坐标系数据
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
ToolNo |
USINT |
|
M |
!仅支持1~15 |
ToolData |
ToolData |
|
M |
√ |
WriteRobotSWLimits
该函数用于写入机器人的正、负软限位。
指令参数
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
J1下限,J1上限 / ~ / J6下限,J6上限 |
REAL |
[mm/s] |
M |
√ |
E1下限、E1上限 / ~ / E6下限、E6上限 |
REAL |
[mm/s] |
M |
× |
部署步骤
申请授权
有关SIMATIC PLC和TIA许可证、TIA演示、SIMATIC PLC和TIA手册,请联系西门子当地销售团队。
有关JAKA手册和JAKA GSDML文件,请联系JAKA当地销售团队。
准备连接
请打开控制器的PROFINET连接;
重启控制器;
将控制源切换到外部通信控制。
PLC准备
SD卡初始化(PLC在下载程序到新的SD卡时,需要先复位存储卡的存储区域,再下载,否则可能会出现需要密码的情况);
导入JAKA提供的GSDML文件;
准备PROFINET组态;
设定PROFINET通讯周期(8ms);
设定循环中断时间(8ms);
设置SRCI数据的时候需要保持数据的起始地址和RobTask的起始地址一致,否则会出现无法初始化的情况;
故障排查
一般排查顺序
检查机器人控制器版本和SRCI AddOn版本是否对应;
检查AddOn是否运行;
检查机器人和PLC的PROFINET是否建立通讯(PLC功能是否使用了正确的JAKA的GSDML文件);
检查PLC的PROFINET数据帧是否配置;
如果依然不行,联系JAKA售后支持(或发邮件至SRCI.Support@jaka.com, 附上AddOn导出文件)。
SRCI通讯建立失败的排查顺序为:
确认JAKA端PROFINET是否正常运行并与PLC连接;
确认PLC端配置信息是否有误;
如果经常断连,则检查交换机是否符合PROFINET要求,或者不经过交换机,将PLC和控制柜进行直连;
如果PROFINET已正常连接,则为SRCI的通讯问题;
如果需要HMI模拟,请继续Windows控制面板设置中的“设置PG/PC界面”。
在“应用程序的接入点”下,选择“S7ONLINE(步骤7)”。
在“使用的接口参数分配”下,找到并选择“您的网络适配器>.TCPIP.1”。
根据您使用的连接的WiFi网卡或有线以太网网卡,您的网络适配器会有所不同。
要验证所需的选择是否已保存并正在使用,请查找所选网络适配器旁边的Active标记。
如需更多详细信息,请联系西门子。
下发指令后机器人不动:
检查overridespeed设置;
检查defaultDynamic和referenceDynamic中的Velocity相关设置;
检查运动指令中的速度和加速度设置;
检查是否处于Interrupted状态。
附录
JAKA机械臂SEW说明
参数 |
数据类型 |
单位 |
M/O |
备注 |
|---|---|---|---|---|
Shoulder |
USINT |
|
M(需支持默认0,使用设置) |
支持0-使用配置和1-不改变移动时配置 |
Elbow |
USINT |
|
M |
同上 |
Wrist |
USINT |
|
M |
同上 |
协作机器人构型一般有别于工业机器人,特别是4-5-6轴不会相交于一点,也就是没有工业机器人传统的WCP(wrist center point)。一般用4-5轴或者5-6轴交点代替。
shoulder
elbow
wrist w = sin(axis5)
JAKA路径过渡(Blending)说明
多运动段转接方式如下:
目前支持的转接场景:
关节转关节
关节转直线
直线转直线
直线转关节
要实现转接功能,需要在usersetting.ini中设置如下配置参数(默认不用修改):
MOVEJ_MOVEL_BLEND = 1
MOVEJ_MOVEJ_BLEND = 1
当前支持的BlendingMode:0(Exact Stop)和4(MaxCornerDeviation)