Gripper TCP

PMPP中的Gripper中的Mass,TCP数据会自动根据选择的tooldata变量名设置到机器人控制器程序中。此处只会设置对应TCP变量的值,并不会自动修改RAPID程序中实际使用的TCP。
日志文件夹

Gripper I/O signal

PMPP是通过监控控制器中对应的信号来判断是否需要attach或detach物料的。
The Gripper Activator settings in PMPP are only used in simulation and emulation, but the setting must be followed by the virtual or real controller’s Rapid codes. Or else, the items will not be attached and detached in PMPP. The signals set in Gripper Activator has no impact in real robot signal values, because the rapid program use group signal goVacBlowX.

Pick:

TriggL\Conc,RelTool(PickTarget.RobTgt,0,0,-ItmSrcData{Index}.OffsZ),MaxSpeed,ItmSrcData{Index}.VacuumAct2,z20,PickAct1\WObj:=WObjPick;      
TriggL\Conc,PickTarget.RobTgt,LowSpeed,ItmSrcData{Index}.SimAttach2,z5\Inpos:=ItmSrcData{Index}.TrackPoint,PickAct1\WObj:=WObjPick;

Place:

TriggL\Conc,PlaceTarget.RobTgt,LowSpeed,ItmSrcData{Index}.VacuumRev2\T2:=ItmSrcData{Index}.VacuumOff2\T3:=ItmSrcData{Index}.SimDetach2,z5\Inpos:=ItmSrcData{Index}.TrackPoint,PickAct1\WObj:=WObjPlace;

PROC SetSimulatedTriggs(num Index)
! 
! Setup all tool events for simulated mode:
! SimAttachX: Attach a nearby item to tool activator X.
! SimDetachX: Drop the item held by tool activator X.
!
TEST ItmSrcData{Index}.SourceType
CASE PICK_TYPE:
  TriggEquip ItmSrcData{Index}.SimAttach1,0,0\GOp:=goVacBlow1,1;
  TriggEquip ItmSrcData{Index}.SimAttach2,0,0\GOp:=goVacBlow2,1;
  !TriggEquip ItmSrcData{Index}.SimAttach3,0,0\GOp:=goVacBlow3,1;
  !TriggEquip ItmSrcData{Index}.SimAttach4,0,0\GOp:=goVacBlow4,1;
CASE PLACE_TYPE:
  TriggEquip ItmSrcData{Index}.SimDetach1,0,0\GOp:=goVacBlow1,2;
  TriggEquip ItmSrcData{Index}.SimDetach2,0,0\GOp:=goVacBlow2,2;
  !TriggEquip ItmSrcData{Index}.SimDetach3,0,0\GOp:=goVacBlow3,2;
  !TriggEquip ItmSrcData{Index}.SimDetach4,0,0\GOp:=goVacBlow4,2;
ENDTEST
SetSimulatedDummyTriggs(Index);
ENDPROC

日志文件夹

CNV1_giCntSim

当PMPP运行时,如果使用信号监控器监控信号,会发现该数据每3s才会更新一次,不清楚是信号监控器的原因还是虚拟控制器的原因导致的,但是通过实时查看虚拟控制器的信号变量,应该是虚拟控制器3s修改一次该值导致的。
日志文件夹

Position Generators - Vision

  1. 当Position Generators设置为Predefined时,当传送带上没有item时,cnv1_dqQIdle为1,一旦传送带上出现item时,也即意味着item数据产生了,cnv1_dqQIdle就为0。
  2. 当Position Generators设置为Vision时,传送带上没有item时,cnv1_dqQIdle为1,传送带刚开始出现item,但是没有移动到Camera时,cnv1_dqQIdle还是为1,当item移动到Camera时,cnv1_dqQIdle为0,此时才意味着RT有点位。机器人可以获取点位。
  3. 当Position Generators设置为Vision时,Trigger设置为IOSensor时,传送带上没有item时,cnv1_dqQIdle为1,item移动到iosensor时,cnv1_diPosGen会设置为1,但是此时cnv1_dqQIdle为1,只有当item移动到camera时,cnv1_dqQIdle才为0.

日志文件夹
日志文件夹
日志文件夹
日志文件夹

SourceType

item的源有两种,一种是Vision,代表item的坐标由相机视觉识别得出,一种是Predefined,代表由传送带的距离等间距触发,该距离在对应的operation中设置。SourceType的切换需要重新标定,标定会修改CNV的Base Frame值。所以标定其实不是安装传送带的位置标定的,而是按照Distance或者IO sensor的位置标定的。

#Trigger Setting 相机的触发方式有两种,一种是IOSensor, IOSensor的信号定义在Position generator中,为DI信号,每次DI为1时,都会触发Trig的c1TrigVis信号为1。一种是Distance,按传送点等距离触发。Trigger Setting的切换需要重新标定,标定会修改CNV的Base Frame值。所以标定其实不是安装传送带的位置标定的,而是按照Distance或者IO sensor的位置标定的。应该时当Source Type为Predefined时,如果改变Distance或I/O设置,需要重新标定。
日志文件夹

Calibration

  1. Source Type = Predefined, Trigger Setting = Distance: CNV的base frame按传送带的位置设置
  2. Source Type = Predefined, Trigger Setting = I/O: CNV的base frame按IO Sensor的位置设置
  3. Source Type = Vision: CNV的base frame按相机的位置设置

Conveyor WorkArea Signals

  1. Conveyor start/stop, cnv1_doStartCnv, 控制传送带启动,停止,当PMPP点击Start时,该信号会变为1,点击stop时,会变为0,如果设置了use start stop功能,单item没有被即时抓走,也会临时设置cnv1_doStartCnv为0,使传送带停下来,等待item被取走后,在启动传送带。
  2. Queue idle, cnv1_doQIdle, 当RT没有检测到item时,该信号为1,一旦PMPP设置的PositionGenerator的SourceType所对应的源检测到item时,就会设置该信号为0。例如,如果SourceType为Vision时,只有当item运行到Camera下面时,才会设置为0,但是如果SourceType为predefined时,一旦传送带上有item,就会设置为0。This signal is high when the queue for this work area is empty. The signal goes high when the last item is retrieved from the queue.
  3. Position available, cnv1_doPAvail,当item运行到机器人可以抓取的范围内时,或者说当queue队列中的点位移动到机器人可以抓取的区域内时(Enter和Exit之间),该信号为1。也就是意味着,如果该信号为1时,代表传送带上有item可以抓取,如果没有item可以抓取时,该信号为0。一旦最后一个可以被抓取的item被机器人拾取后,且没有新的item进去可抓取区域,该信号即为0。This signal is high when there is one or more items between the enter and exit limits for the work area.
  4. Position generator, cnv1_diPosGen, 该信号用于IO Sensor的输入信号,如果使用该信号,需要首先设置Position Generator的Triger Setting为IO Sensor才有效。当设置为IO sensor时,每次cnv1_diPosGen为1时,都会触发c1TrigVis信号为1。该信号不管SourceType为Vision还是Predefined都会设置c1TrigVis信号为1。但是如果Triger Setting为Distance,则会忽略该设置。即该信号只会在IO Sensor时启用。Digital input signal that tells that it is time to generate a new vision image or generate new predefined positions. This signal is ignored if a distance triggered conveyor is used.
  5. Trig, c1TrigVis,该信号为触发相机拍照使用,该信号应为CTM板上的信号,CTM板上的信号直接接到相机触发拍照信号。当触发类型为Distance时,按传送带等距离触发拍照信号,当触发类型为IO Sensor时,每次IO Sensor输入信号时,触发CTM板c1TrigVis拍照信号。
  6. Strobe,c1NewObjStrobe,该信号为虚拟信号。暂时不清楚干嘛用的。
    日志文件夹

Indexed WorkArea Signals

  1. Robot execution
  2. Queue Idle, ind1_doQIdle, 该信号为1,代表没有检测到item,或者队列里没有item坐标可以获取。
  3. Position available, ind1_doPAvail, 该信号为1,代表机器人可以抓取item。

日志文件夹

默认传送带,相机,IOSensor的位置

  1. 传送带,默认位置为[0,0,0],长宽高默认[3000,600,500],传送带自身坐标系原点位于左下角地面上的角点。坐标原点在标定时其实不是标定的传送带,而是标定的传送带上的WorkArea。如果在传送带上添加WorkArea,它的坐标在传送带自身坐标系的[0,150,500]的位置,500是传送带的高度,随高度变化而变化。当程序PMTWMAIN中已经有上一次的WObjPick和WObjPlace值时,会自动导入到RobotStudio中,并在3D视图中显示工件坐标系的坐标标记。
    日志文件夹
  2. 相机模型(非相机坐标系)的自身坐标系原点在其下端镜头圆心位置,默认位置:X坐标为传送带X轴400mm,Y坐标为传送带宽度中心位置,Z坐标为传送带表面500mm高度,公式为:[400,CNVWidth/2,CNVHeight+500]。如果使用相机,会把传送带的BaseFrame与相机坐标系的原点重合,相机坐标系的原点在相机模型自身坐标系原点下方的传送带表面上,公式为:[CameraX,CameraY,CNVHeight]。
  3. IO Sersor,默认位置为传送带自身坐标系的[400,10,502]。使用Source Type为Predified,且Trigger Setting为IO Sensor,那么会把传送带的BaseFrame与IO Sensor的X位置进行重合。公式为:[IOSensorX,150,CNVHeight]

IO Sensor机制

创建IO Sensor时,需要确保没有任何物体与其接触,这样才能在item或containor接触到IO Sensor时,触发IO Sensor的信号。

虚拟运行时item生成机制

如果需要在PP中的传送带上有item或container输出,需要创建Converyor WorkArea,因为是workArea在输出item,而不是传送带。如果只是想模拟传送带输出item,而不需要机器人抓取,此时需要注意RAPID程序可能需要修改。因为RAPID中的程序默认是抓取WorkArea 1的item,如果这条模拟不需要抓取item的Converyor Area正好是索引为1的PickWorkArea,就会导致机器人一直在等这条传送带上的item进入机器人可抓取区域,但其实是一直是等不到的,所以导致机器人停止不懂。

PROC PickPlaceSeq()
	!Pick PickWorkArea{1};
	Pick PickWorkArea{2};
	Place PlaceWorkArea{1};
	!Place PlaceWorkArea{2};
ENDPROC

Digital Twin

如果使用Ditgital Twin功能导入机器人系统传送带的基坐标,那么很大情况下,会导致VRT的item物料抓取和放置不能正常工作,此时需要仔细查看,机器人的gripper在接触item时,是否有面的接触,如果gripper拾取面和item的被拾取面有任何方向的偏差,都可能会导致吸附itemm失败。经过测试,可能拾取面偏离的距离为±30mm。经过测试,gripper的拾取面非3D模型,而是gripper的实际TCP所在位置,是一个虚拟的点位。

Signals

PERS dnum ObjectPosition:=0;

TRAP NewObjOnConvey
    ! A new object is detected; Read its position from input group signal
    ObjectPosition:=GInputDnum(c1CntFromEnc);
    RETURN ;
ENDTRAP

TRAP TrackNewObj
    ! To track a selected object, write its reference to output group signal
    SetGO c1CntToEnc,ObjectPosition;
    WaitTime 0.02;
    ! Activate the written reference
    PulseDO c1CntToEncStr;
    RETURN ;
ENDTRAP

SetDO c1PosInJobQ,1;
! Connect a trap routine to the detection of new objects on the conveyor
CONNECT NewObj WITH NewObjOnConvey;
ISignalGI c1CntFromEnc,NewObj;

日志文件夹