Chuck.rInTolerance THEN iMediaArray[eSpinnerMedienNamen.ChuckEjectExtend1].Disable := TRUE; iMediaArray[eSpinnerMedienNamen.ChuckEjectExtend2].Disable := TRUE; iMediaArray[eSpinnerMedienNamen.ChuckUnlockExtend1].Disable := TRUE; iMediaArray[eSpinnerMedienNamen.ChuckUnlockExtend2].Disable := TRUE; END_IF iMediaArray[eSpinnerMedienNamen.ChuckVacuumOff].Disable := Chuck.rOutCurrentVelocity > 100; (*IF CMD[RobotStation] = GetCMD AND ROBOT_MAIN.TargetStation = iStation AND ROBOT_MAIN.RobotControl.bInPartOnSucker[ROBOT_MAIN.TargetPuddle] THEN ChuckVacuum.Down(TRUE); END_IF IF CMD[RobotStation] = PutCMD AND ROBOT_MAIN.TargetStation = iStation AND NOT ROBOT_MAIN.RobotControl.bInPartOnSucker[ROBOT_MAIN.TargetPuddle] THEN ChuckVacuum.Up(TRUE); END_IF*) IF ROBOT_MAIN.TargetStation = iStation THEN CASE CMD[RobotStation] OF GetCMD: IF ROBOT_MAIN.RobotControl.bInPartOnSucker[ROBOT_MAIN.TargetPuddle] THEN ChuckVacuum.Down(TRUE); END_IF PutCMD: IF NOT ROBOT_MAIN.RobotControl.bInPartOnSucker[ROBOT_MAIN.TargetPuddle] THEN ChuckVacuum.Up(TRUE); END_IF ChangeCMD: IF SpinnerVacOff THEN ChuckVacuum.Down(TRUE); END_IF IF SpinnerVacOn THEN ChuckVacuum.Up(TRUE); END_IF END_CASE END_IF IF iStationStatus.Soll.Stop THEN ChuckChange(FALSE); END_IF //IF iStation = FirstSpinner THEN //sResult := GetOffset(sTest); //END_IF (*IF TestGetCenter THEN IF GetCenter(0, TargetCenter, SEL(TargetCenter = 1, 0,5)) THEN TestGetCenter := FALSE; END_IF END_IF*)]]> 1 THEN iStationStatus.ErrorIndex := AlarmSend(iStation:=iStationStatus.iStation,MsgId := Spinner_ErrorNr.eChuckChangeChuckMissing,TRUE, eReportType.Error, sAvailableResponse.Cancel, FALSE); iStationStatus.Error := TRUE; RETURN; END_IF CheckChuck := 0; FOR i := 1 TO 3 DO IF NOT bInChuckCoding[i] THEN CheckChuck := CheckChuck +1; END_IF END_FOR IF CheckChuck > 1 THEN iStationStatus.ErrorIndex := AlarmSend(iStation:=iStationStatus.iStation,MsgId := Spinner_ErrorNr.eChuckChangeChuckMissing,TRUE, eReportType.Error, sAvailableResponse.Cancel, FALSE); iStationStatus.Error := TRUE; RETURN; END_IF Step := 10; 10: IF bInChuckAvailable[TargetChuck] THEN Step := 20; ELSE ChuckChange_Robot := TRUE; Step := 0; END_IF 20: IF iStationStatus.Ist.PrepOut THEN Step := 30; ELSE Step := Step +1; END_IF 21: iCMD := PrepOutCMD; Step := Step +1; 22: IF NOT iStationStatus.Ist.Busy THEN Step := 20; END_IF 30: IF ChuckChange(TRUE) THEN Step := 40; END_IF 40: ; END_CASE]]> eStationCMD.StartCMD THEN iMediaArray[i].bReferenceTankState := TRUE; END_IF AlarmSend(iStationStatus.iStation, SPINNER_ErrorNr.FlowMediaNotReady + i-1, FALSE, eReportType.Warning, sAvailableResponse.NoResponse, iMediaArray[i].bReferenceTankState OR NOT iMediaArray[i].MediaUsedInFlow); END_FOR]]>