PCI-1245SSCARAControl報告人:鄧兆翠報告日期:2013年11月1日PCI-1245S開發目的及4軸Robot功能介紹PCI-1245S支持的功能介紹PCI-1245S驅動結構PCI-1245S的API和屬性介紹目錄PCI-1245S開發目的PCI-1245S是为实现4轴SCARARobot而写的。4轴的SCARARobot是基于PCI-1245板卡实现Robot控制功能的,除了保留有CommonMotionPCI-1245大部分的单轴功能外,还添加了专门用于Robot控制的功能。(注意:没有了原来的Group功能)PCI-1245大部分的单轴功能专门用于Robot控制的功能PCI-1245S4軸Robot功能介紹4軸Robot功能介紹4個軸關節關聯運動1、2、4軸負責XY平面內運動,3軸負責Z向運動支持3維空間內運動,支持Line、Direct、Helix支持2維空間Line、Direct、Arc和角度運動支持複合Path運動任意一點的座標用XYZ空間座標+表示姿態的值R描述受自身硬件的約束,有些點不能走到,并有手臂相撞的危險PCI-1245S支持的功能運動功能Single-axismotionRobotPathmotionRobotFunction(Group)JogMoveMPGMoveT&S-curvespeedprofileProg.AccandDecPTPMotionPosition/SpeedoverrideVelocityMotionHome(16modes)1table:600endpointsDirectMotionLineMotionArcMotionSpeedOverrideAddDirectAddLineAddArcStart/StopAngelMotionPause&ResumePCI-1245S支持的功能ApplicationFunctionGantryVelocitylookaheadVelocitylookahead(Refertofunctioncall,acm_gpmovepath)TangentialFollowingE-GearE-CAMErrorcheckErrorstatus,Watchdog●CAMDOPositionLatch●SimultaneouslyStart/StopMotionDAQInterruptAxesstop/GroupstopAxis/GroupVHstartAxis/GroupVHendAxiscompareAxiserrorAxislatch●TriggerFunctionSingleCompareUpto4channels●TableCompareUpto2channelsLinearCompare(Tablesize:?points)PCI1245S驱动结构PCI-1245S的API和屬性介紹TypeMethod/EventDeviceDeviceMethodAcm_DevOpenAcm_DevCloseAcm_DevLoadConfigAcm_GetPropertyAcm_SetPropertyAcm_GetLastErrorAcm_DevReadEEPROM_ExAcm_DevWriteEEPROM_ExAcm_CheckMotionEventAcm_EnableMotionEventAcm_GetDSPFrmWareDwnLoadRateAcm_DevDownLoadDSPFrmWare_STP1Acm_DevDownLoadDSPFrmWare_STP2Acm_DevDownLoadDSPFrmWare_STP3Acm_DownLoadCPLD_ST1Acm_DownLoadCPLD_ST2Acm_GetCPLDDownLoadRate(一)Device相關的APIPCI-1245S的API和屬性介紹TypeMethod/EventAxisSYSTEMAcm_AxOpenAcm_AxCloseAcm_AxResetErrorMotionI/OAcm_AxSetSvOnAcm_AxGetMotionIOMotionStatusAcm_AxGetMotionStatusAcm_AxGetStateStopAcm_AxStopDecAcm_AxStopEmgVelocityMotionAcm_AxMoveVelAcm_AxChangeVelAcm_AxChangeVelByRate可根据倍率改变正在进行的动作的运行速度。Acm_AxChangeVelEx在运动过程中可改变运行速度,加速度和减速度。Acm_AxChangeVelExByRate在运动过程中可根据倍率改变运行速度的同时指定新的加速度和减速度。Acm_AxGetCmdVelocityPoint-to-PointMotionAcm_AxMoveRelAcm_AxMoveAbsAcm_AxChangePosHomeAcm_AxHomePosition/CounterAcm_AxSetCmdPositionAcm_AxGetCmdPositionAcm_AxSetActualPositionAcm_AxGetActualPosition(二)singleAxis相關的APIPCI-1245S的API和屬性介紹(二)singleAxis相關的API(續)TypeMethod/EventAxisCompareAcm_AxSetCmpDataAcm_AxGetCmpDataLatchAcm_AxGetLatchDataAcm_AxTriggerLatchAcm_AxResetLatchAcm_AxGetLatchFlagAux/GenOutputAcm_AxDoSetBitAcm_AxDoGetBitAcm_AxDiGetBitExt-DriveAcm_AxSetExtDrivePCI-1245S的API和屬性介紹(三)Robot相關的APITypeMethod/EventRobotSYSTEMAcm_RbOpen打开Robot,需先OpenAxisAcm_RbClose关闭RobotAcm_RbResetError重置错误MotionStatusAcm_RbGetState获取当前Robot的状态Acm_RbSetActPosition设定各轴初始绝对位置。positionAcm_RbGetCmdPosition取得终点位置在空间坐标系里XYZ理论座標值Acm_RbGetActualPosition取得终点位置在空间坐标系里实际座標值Acm_RbGetArmCmdPosition获取某个手臂的终点所在的XYZ理论坐标值。Acm_RbGetArmActualPosition获取某个手臂的终点所在的XYZ实际坐标值。MotionAcm_RbMoveAbs通过各轴给定的角度进行从当前点到指定点的移动。单位:deg。Acm_RbMoveRelAcm_RbMoveDirectAbs通过终点所在空间位置进行从当前点到指定的移动。单位:4轴(mm,mm,mm,deg);6轴(mm,mm,mm,deg,deg,deg)Acm_RbMoveDirectRelAcm_RbMoveLineAbs将终点从当前点到指定位置进行直线移动。单位:4轴(mm,mm,mm,deg);6轴(mm,mm,mm,deg,deg,deg)Acm_RbMoveLineRelAcm_RbMoveArcAbs将终点从当前点到指定位置通过指定的圆心位置进行圆弧移动。目标点设定:单位:4轴(mm,mm,mm,deg);6轴(mm,mm,mm,deg,deg,deg);圆心:4轴(mm,mm,mm),6轴(mm,mm,mm)Acm_RbMoveArcRelAcm_RbMoveArcAbs_3P将终点从当前点到指定位置通过指定的参考位置进行圆弧移动。目标点设定:单位:4轴(mm,mm,mm,deg);6轴(mm,mm,mm,deg,deg,deg);圆心:4轴(mm,mm,mm),6轴(mm,mm,mm)Acm_RbMoveArcRel_3PPCI-1245S的API和屬性介紹(三)Robot相關的API(續)TypeMethod/EventRobotAcm_RbAddPath可将robot要执行的轨迹添加到pathbuffer中,以使Robot执行连续的移动。RobotPathAcm_RbResetPath重置Robotpath的pathbuffer。Acm_RbGetPathStatus获取robotpathbuffer中的状态。Acm_RbMovePath开始运动Robotpathbuffer中的path。VelocityAcm_RbChangeVel改变当前Robotmotion的速度Acm_RbChangeVelByRate根据比率改变当前Robotmotion的速度Acm_RbGetCmdVel获取当前robotmotion的速度MotionStopAcm_RbStopDec减速停止当前Robot运动Acm_RbStopEmg紧急停止当前Robot运动Acm_RbStopDecExRobotPause&ResumeAcm_RbPauseMotionAcm_RbResumeMotionPCI-1245S的API和屬性介紹(四)新增Robot相關的屬性Arm3LengthArm1LengthArm2LengthCFG_RbLengthArm1数据类型:F64设定Arm1的臂长单位:mmPropertyID:1200CFG_RbLengthArm2数据类型:F64设定Arm2的臂长单位:mmPropertyID:1201CFG_RbLengthArm3数据类型:F64设定Arm3的臂长单位:mmPropertyID:1202PCI-1245S的API和屬性介紹(四)新增Robot相關的屬性PAR_RbVelLow数据类型:F64PropertyID:1000设定Robot运动的初始速度。角度移动时单位:ppu/s,Line/Arc:mm/sPAR_RbVelHigh数据类型:F64PropertyID:1001设定Robot运动的运动速度。角度移动时单位:ppu/s,Line/Arc:mm/sPAR_RbAcc数据类型:F64PropertyID:1002设定Robot运动的加速度。角度移动时单位:ppu/s,Line/Arc:mm/sPAR_RbDec数据类型:F64PropertyID:1003设定Robot运动的减速度。角度移动时单位:ppu/s,Line/Arc:mm/sPAR_RbJerk数据类型:F64PropertyID:1004设定Robot运动是使用T型还是S型加减速曲线。0:T型1:S型PAR_RbRefPlane数据类型:U32PropertyID:1005设定圆弧插补的参考平面0:XY平面1:YZ平面2:XZ平面CFG_RbSFEnable数据类型:U32PropertyID:1204启用/禁用速度前瞻功能。不支持S形速度曲线。在这种模式中,不使用Acm_GpAddPath中的速度参数,仅使用群组的速度设置。PCI1245E不支持此功能。值说明:0:禁用1:启用U32Acm_RbOpen(HANDDeviceHandle,PHANDpRbHandle)打开Robot,對Robot進行操作的第一步。Note:Robot會一次打開4個軸并自動添加到Robot中。不需要像之前的Group一樣,先AxisOpen,然後AddAxis。U32Acm_RbClose(PHANDpRbHandle)关闭RobotNote:RbClose仅关闭了Robot群组,原本Robot群组中的轴并没有关闭。这些轴仍可以进行单轴控制。軸一旦添加到Robot中,就不能再做單軸控制,並且不能中途關閉某個軸。只能在關閉Robot之後,再控制和關閉單軸。NameTypeInorOutDescriptionDevi