代码案例

<< 点击显示目录 >>

主页  ACOPOS 6D使用手册 > mapp 6D  > 功能块 > McAcp6D  > Function blocks  > MC_BR_ZoneCreate_Acp6D  >

代码案例

 

设置Zone,限定托盘移动的区域范围

 

注意:若ACOPOS 6D POWER OFF,则会自动丢失Zone设置,需要重新设置

 

         100: (*-- 设置Fence与Zone --*)
                 InitCtrl.FB_ZoneCreate.Assembly := ADR(gAssembly6D);
                 InitCtrl.FB_ZoneCreate.Execute := TRUE;
                 InitCtrl.FB_ZoneCreate.Parameters.Name := 'All';
                 InitCtrl.FB_ZoneCreate.Parameters.BottomLeft.X := 0.0;
                 InitCtrl.FB_ZoneCreate.Parameters.BottomLeft.Y := 0.0;
                 InitCtrl.FB_ZoneCreate.Parameters.TopRight.X := 1.92;
                 InitCtrl.FB_ZoneCreate.Parameters.TopRight.Y := 1.44;
                 IF InitCtrl.FB_ZoneCreate.Done THEN
                         InitCtrl.uStep := 110;
                         InitCtrl.FB_ZoneCreate.Execute := FALSE;
                 END_IF;
                 IF InitCtrl.FB_ZoneCreate.Error THEN
                         InitCtrl.uStep := 255;
                         InitCtrl.sStatus := '100 255 ERROR';
                         InitCtrl.FB_ZoneCreate.Execute := FALSE;
                 END_IF;
                 
         110:
                 InitCtrl.FB_AsmGetZone.Enable := TRUE;
                 InitCtrl.FB_AsmGetZone.Assembly := ADR(gAssembly6D);
                 IF InitCtrl.FB_AsmGetZone.Valid THEN
                         InitCtrl.uStep := 120;
                 END_IF;
                 IF InitCtrl.FB_AsmGetZone.Error THEN
                         InitCtrl.uStep := 255;
                         InitCtrl.sStatus := '110 255 ERROR';
                         InitCtrl.FB_ZoneCreate.Execute := FALSE;
                 END_IF;
                 
         120:
                 InitCtrl.FB_ZoneBarrierCommand.Execute := TRUE;
                 InitCtrl.FB_ZoneBarrierCommand.Zone := ADR(InitCtrl.FB_AsmGetZone.Zone);
                 InitCtrl.FB_ZoneBarrierCommand.Parameters.Command := mcACP6D_BARRIER_CLOSE;
                 IF InitCtrl.FB_ZoneBarrierCommand.Done THEN
                         InitCtrl.uStep := 200;
                         InitCtrl.FB_ZoneBarrierCommand.Execute := FALSE;
                 END_IF;
                 IF InitCtrl.FB_ZoneBarrierCommand.Error THEN
                         InitCtrl.uStep := 255;
                         InitCtrl.sStatus := '120 255 ERROR';
                         InitCtrl.FB_ZoneBarrierCommand.Execute := FALSE;
                 END_IF;