<< 点击显示目录 >> 主页 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;