Files
HundM_Fortna/=A01+UH02-KF00/Programmbausteine/100_Main/FB_Main.scl
T

8922 lines
510 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FUNCTION_BLOCK "FB_Main"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_IN_OUT
stInOutControlUnitCabinetOF1 : "UDT_MainState";
stInOutControlUnitCabinetOF2 : "UDT_MainState";
stInOutControlUnitCabinetOF3 : "UDT_MainState";
stInOutControlUnitCabinetOF4 : "UDT_MainState";
END_VAR
VAR
fbSortConv1101 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv1102 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv1201 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv1202 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv1303 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv1304 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbCarousel1110 : "FB_Conveyor"; // Kreisel
fbExitConv1103 : "FB_Conveyor"; // Kreisel
fbExitConv1104 : "FB_Conveyor"; // Kreisel
fbExitConv1203 : "FB_Conveyor"; // Kreisel
fbExitConv1204 : "FB_Conveyor"; // Kreisel
fbExitConv1301 : "FB_Conveyor"; // Kreisel
fbExitConv1302 : "FB_Conveyor"; // Kreisel
fbPinControl1101_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl1101_2 : "FB_SupervisionRasterSensor";
fbPinControl1102_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl1102_2 : "FB_SupervisionRasterSensor";
fbPinControl1201_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl1201_2 : "FB_SupervisionRasterSensor";
fbPinControl1202_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl1202_2 : "FB_SupervisionRasterSensor";
fbPinControl1303_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl1303_2 : "FB_SupervisionRasterSensor";
fbPinControl1304_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl1304_2 : "FB_SupervisionRasterSensor";
fbMonPinControl1101_1 : "FB_Monitoring";
fbMonPinControl1101_2 : "FB_Monitoring";
fbMonPinControl1102_1 : "FB_Monitoring";
fbMonPinControl1102_2 : "FB_Monitoring";
fbMonPinControl1201_1 : "FB_Monitoring";
fbMonPinControl1201_2 : "FB_Monitoring";
fbMonPinControl1202_1 : "FB_Monitoring";
fbMonPinControl1202_2 : "FB_Monitoring";
fbMonPinControl1303_1 : "FB_Monitoring";
fbMonPinControl1303_2 : "FB_Monitoring";
fbMonPinControl1304_1 : "FB_Monitoring";
fbMonPinControl1304_2 : "FB_Monitoring";
fbEncoderMonitor1101 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor1102 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor1201 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor1202 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor1303 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor1304 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderGF2200 : "FB_EncoderTR"; // Encoder
fbEncoderGF2201 : "FB_EncoderTR"; // Encoder
fbEncoderGF2202 : "FB_EncoderTR"; // Encoder
fbEncoderGF2203 : "FB_EncoderTR"; // Encoder
fbEncoderGF2204 : "FB_EncoderTR"; // Encoder
fbEncoderGF2205 : "FB_EncoderTR"; // Encoder
END_VAR
VAR RETAIN
arCognexInterface { S7_SetPoint := 'False'} : Array[1.."cNoScanner"] of "stCognexInterface"; // Cognex Barcode Reader Profinet Interface
END_VAR
VAR
stCognexInterfaceDummy : "stCognexInterface"; // Cognex Barcode Reader Profinet Interface Platzhalter
TRO200 : "FB_ILS_MTRO_Vario";
TRO201 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep";
TRO202 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep1Swi";
TRO203 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep1Swi";
TRO204 : "FB_ILS_MTRO_1Sep1Swi";
TRO205 : "FB_ILS_MTRO_1Sep1Swi";
TRO206 : "FB_ILS_MTRO_1Sep1Swi";
TRO207 : "FB_ILS_MTRO_1Sep";
TRO208 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.1.1
TRO209 : "FB_ILS_MTRO_Vario"; // Rückführung Vario
TRO210 : "FB_ILS_MTRO_1Sep"; // Rückführung 1Sep
TRO211 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.1.2
TRO212 : "FB_ILS_MTRO_Vario"; // Rückführung Vario
TRO213 : "FB_ILS_MTRO_1Sep"; // Rückführung 1Sep
TRO214 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.1.3
TRO215 : "FB_ILS_MTRO_Vario"; // Rückführung Vario
TRO216 : "FB_ILS_MTRO_1Sep"; // Rückführung 1Sep
TRO217 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.1.4
TRO218 : "FB_ILS_MTRO_Vario"; // Rückführung Vario
TRO219 : "FB_ILS_MTRO_1Sep"; // Rückführung 1Sep
TRO220 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario";
TRO221 : "FB_ILS_MTRO_1Sep";
TRO222 : "FB_ILS_MTRO_1Sep1Swi";
TRO223 : "FB_ILS_MTRO_1Sep1Swi";
TRO224 : "FB_ILS_MTRO_1Sep1Swi";
TRO225 : "FB_ILS_MTRO_1Sep1Swi";
TRO226 : "FB_ILS_MTRO_1Sep1Swi";
TRO227 : "FB_ILS_MTRO_1Sep";
TRO228 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.2.1
TRO229 : "FB_ILS_MTRO_Vario"; // Rückführung Vario
TRO230 : "FB_ILS_MTRO_1Sep"; // Rückführung 1Sep
TRO231 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.2.2
TRO232 : "FB_ILS_MTRO_Vario";
TRO233 : "FB_ILS_MTRO_1Sep";
TRO234 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.2.3
TRO235 : "FB_ILS_MTRO_Vario";
TRO236 : "FB_ILS_MTRO_1Sep";
TRO237 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.2.2
TRO238 : "FB_ILS_MTRO_Vario";
TRO239 : "FB_ILS_MTRO_1Sep";
TRO240 : "FB_ILS_MTRO_Vario";
TRO241 : "FB_ILS_MTRO_1Sep";
TRO242 : "FB_ILS_MTRO_1Sep1Swi";
TRO243 : "FB_ILS_MTRO_1Sep1Swi";
TRO244 : "FB_ILS_MTRO_1Sep1Swi";
TRO245 : "FB_ILS_MTRO_1Sep1Swi";
TRO246 : "FB_ILS_MTRO_1Sep1Swi";
TRO247 : "FB_ILS_MTRO_1Sep";
TRO248 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.3.1
TRO249 : "FB_ILS_MTRO_Vario"; // Rückführung Vario
TRO250 : "FB_ILS_MTRO_1Sep"; // Rückführung 1Sep
TRO251 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.3.2
TRO252 : "FB_ILS_MTRO_Vario";
TRO253 : "FB_ILS_MTRO_1Sep";
TRO254 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.3.3
TRO255 : "FB_ILS_MTRO_Vario";
TRO256 : "FB_ILS_MTRO_1Sep";
TRO257 : "FB_ILS_MTRO_PinStore_Auto"; // Block 1.3.4
TRO258 : "FB_ILS_MTRO_Vario";
TRO259 : "FB_ILS_MTRO_1Sep";
TRO260 : "FB_ILS_MTRO_Vario";
TRO261 : "FB_ILS_MTRO_1Sep";
TRO262 : "FB_ILS_MTRO_Vario";
TRO263 : "FB_ILS_MTRO_1Sep";
TRO264 : "FB_ILS_MTRO_Vario";
TRO265 : "FB_ILS_MTRO_1Sep";
TRO266 : "FB_ILS_MTRO_1Sep";
TRO267 : "FB_ILS_MTRO_1Sep2Swi";
TRO268 : "FB_ILS_MTRO_1Sep2Swi";
TRO269 : "FB_ILS_MTRO_1Sep";
TRO270 : "FB_ILS_MTRO_Vario";
TRO271 : "FB_ILS_MTRO_1Sep";
TRO272 : "FB_ILS_MTRO_Vario";
TRO273 : "FB_ILS_MTRO_1Sep";
TRO274 : "FB_ILS_MTRO_1Sep";
TRO275 : "FB_ILS_MTRO_1Sep";
xReInit : Bool;
rTrigReInit {InstructionName := 'R_TRIG'; LibVersion := '1.0'; S7_SetPoint := 'False'} : R_TRIG;
tOnHeartbeat {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
xSendHB : Bool;
fTrig_TRO271_TRO306 {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
fTrig_TRO273_TRO307 {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
END_VAR
VAR_TEMP
t_Automatik_OF1 : Bool;
t_Automatik_OF2 : Bool;
t_Automatik_OF3 : Bool;
t_Automatik_OF4 : Bool;
nActCar : Int;
nActNo : Int;
nNiu : DInt;
stGenerateCarrier : "stCarrier";
nCounter1 : DInt;
xResult1 : Bool;
nIdx : Int;
nIdx2 : Int;
nFound : Int;
stEmptyCarrier : "stCarrier";
stEmptyCarrierData : "stJamData";
arCarrierPlaceHolder : Array[1..1] of "stCarrier"; // Platzhalter
stJamDataPlaceHolder : "stJamData";
stHMISwitchPlaceholder : "UDT_HMI_UnloadingStation";
idx : Int;
arEmptyStorageLine_1 : Int;
arEmptyStorageLine : Array[1..1] of "stCarrier";
arDummyEventCorrectionInfo : Array[0..1] of "stEventCorrectionInfo";
arCarrierHandoverJam2109 : Array[1..1] of "stCarrier";
stJamDataHandoverJam2109 : "stJamData";
arCarrierHandoverJam2209 : Array[1..1] of "stCarrier";
stJamDataHandoverJam2209 : "stJamData";
arCarrierHandoverJam2309 : Array[1..1] of "stCarrier";
stJamDataHandoverJam2309 : "stJamData";
arCarrierHandoverJam5000 : Array[1..1] of "stCarrier";
stJamDataHandoverJam5000 : "stJamData";
arCarrierHandoverJam5001 : Array[1..1] of "stCarrier";
stJamDataHandoverJam5001 : "stJamData";
arCarrierHandoverJam4301 : Array[1..1] of "stCarrier";
stJamDataHandoverJam4301 : "stJamData";
arCarrierHandoverJam4401 : Array[1..1] of "stCarrier";
stJamDataHandoverJam4401 : "stJamData";
arCarrierHandoverJam4701 : Array[1..1] of "stCarrier";
stJamDataHandoverJam4701 : "stJamData";
arCarrierHandoverJam1801 : Array[1..1] of "stCarrier";
stJamDataHandoverJam1801 : "stJamData";
arCarrierHandoverJam1801_2 : Array[1..1] of "stCarrier";
stJamDataHandoverJam1801_2 : "stJamData";
arCarrierHandoverJam4701_2 : Array[1..1] of "stCarrier";
stJamDataHandoverJam4701_2 : "stJamData";
tmpTSHRCounter : DInt;
tmpTSHRResult : Bool;
nIdxUnloading : Int;
tmpPlaceHolderLaneStatus : Array[0..4] of String;
END_VAR
BEGIN
REGION Reinitialisieren
IF NOT #xReInit THEN
#xReInit := TRUE;
END_IF;
#rTrigReInit(CLK := #xReInit);
IF #rTrigReInit.Q THEN
#TRO200.nState := "DB_GLOB_TroState".arTroState["cMainTro200"];
#TRO201.nState := "DB_GLOB_TroState".arTroState["cMainTro201"];
#TRO202.nState := "DB_GLOB_TroState".arTroState["cMainTro202"];
#TRO203.nState := "DB_GLOB_TroState".arTroState["cMainTro203"];
#TRO204.nState := "DB_GLOB_TroState".arTroState["cMainTro204"];
#TRO205.nState := "DB_GLOB_TroState".arTroState["cMainTro205"];
#TRO206.nState := "DB_GLOB_TroState".arTroState["cMainTro206"];
#TRO207.nState := "DB_GLOB_TroState".arTroState["cMainTro207"];
#TRO209.nState := "DB_GLOB_TroState".arTroState["cMainTro209"];
#TRO210.nState := "DB_GLOB_TroState".arTroState["cMainTro210"];
// #TRO211.nState := "DB_GLOB_TroState".arTroState["cMainTro211"];
#TRO212.nState := "DB_GLOB_TroState".arTroState["cMainTro212"];
#TRO213.nState := "DB_GLOB_TroState".arTroState["cMainTro213"];
// #TRO214.nState := "DB_GLOB_TroState".arTroState["cMainTro214"];
#TRO215.nState := "DB_GLOB_TroState".arTroState["cMainTro215"];
#TRO216.nState := "DB_GLOB_TroState".arTroState["cMainTro216"];
// #TRO217.nState := "DB_GLOB_TroState".arTroState["cMainTro217"];
#TRO218.nState := "DB_GLOB_TroState".arTroState["cMainTro218"];
#TRO219.nState := "DB_GLOB_TroState".arTroState["cMainTro219"];
#TRO220.nState := "DB_GLOB_TroState".arTroState["cMainTro220"];
#TRO221.nState := "DB_GLOB_TroState".arTroState["cMainTro221"];
#TRO222.nState := "DB_GLOB_TroState".arTroState["cMainTro222"];
#TRO223.nState := "DB_GLOB_TroState".arTroState["cMainTro223"];
#TRO224.nState := "DB_GLOB_TroState".arTroState["cMainTro224"];
#TRO225.nState := "DB_GLOB_TroState".arTroState["cMainTro225"];
#TRO226.nState := "DB_GLOB_TroState".arTroState["cMainTro226"];
#TRO227.nState := "DB_GLOB_TroState".arTroState["cMainTro227"];
// #TRO228.nState := "DB_GLOB_TroState".arTroState["cMainTro228"];
#TRO229.nState := "DB_GLOB_TroState".arTroState["cMainTro229"];
#TRO230.nState := "DB_GLOB_TroState".arTroState["cMainTro230"];
// #TRO231.nState := "DB_GLOB_TroState".arTroState["cMainTro231"];
#TRO232.nState := "DB_GLOB_TroState".arTroState["cMainTro232"];
// #TRO234.nState := "DB_GLOB_TroState".arTroState["cMainTro234"];
#TRO235.nState := "DB_GLOB_TroState".arTroState["cMainTro235"];
#TRO236.nState := "DB_GLOB_TroState".arTroState["cMainTro236"];
// #TRO237.nState := "DB_GLOB_TroState".arTroState["cMainTro237"];
#TRO238.nState := "DB_GLOB_TroState".arTroState["cMainTro238"];
#TRO239.nState := "DB_GLOB_TroState".arTroState["cMainTro239"];
#TRO240.nState := "DB_GLOB_TroState".arTroState["cMainTro240"];
#TRO241.nState := "DB_GLOB_TroState".arTroState["cMainTro241"];
#TRO242.nState := "DB_GLOB_TroState".arTroState["cMainTro242"];
#TRO243.nState := "DB_GLOB_TroState".arTroState["cMainTro243"];
#TRO244.nState := "DB_GLOB_TroState".arTroState["cMainTro244"];
#TRO245.nState := "DB_GLOB_TroState".arTroState["cMainTro245"];
#TRO246.nState := "DB_GLOB_TroState".arTroState["cMainTro246"];
#TRO247.nState := "DB_GLOB_TroState".arTroState["cMainTro247"];
// #TRO248.nState := "DB_GLOB_TroState".arTroState["cMainTro248"];
#TRO249.nState := "DB_GLOB_TroState".arTroState["cMainTro249"];
#TRO250.nState := "DB_GLOB_TroState".arTroState["cMainTro250"];
// #TRO251.nState := "DB_GLOB_TroState".arTroState["cMainTro251"];
#TRO252.nState := "DB_GLOB_TroState".arTroState["cMainTro252"];
#TRO253.nState := "DB_GLOB_TroState".arTroState["cMainTro253"];
// #TRO254.nState := "DB_GLOB_TroState".arTroState["cMainTro254"];
#TRO255.nState := "DB_GLOB_TroState".arTroState["cMainTro255"];
#TRO256.nState := "DB_GLOB_TroState".arTroState["cMainTro256"];
// #TRO257.nState := "DB_GLOB_TroState".arTroState["cMainTro257"];
#TRO258.nState := "DB_GLOB_TroState".arTroState["cMainTro258"];
#TRO259.nState := "DB_GLOB_TroState".arTroState["cMainTro259"];
#TRO260.nState := "DB_GLOB_TroState".arTroState["cMainTro260"];
#TRO261.nState := "DB_GLOB_TroState".arTroState["cMainTro261"];
#TRO262.nState := "DB_GLOB_TroState".arTroState["cMainTro262"];
#TRO263.nState := "DB_GLOB_TroState".arTroState["cMainTro263"];
#TRO264.nState := "DB_GLOB_TroState".arTroState["cMainTro264"];
#TRO265.nState := "DB_GLOB_TroState".arTroState["cMainTro265"];
#TRO266.nState := "DB_GLOB_TroState".arTroState["cMainTro266"];
#TRO267.nState := "DB_GLOB_TroState".arTroState["cMainTro267"];
#TRO268.nState := "DB_GLOB_TroState".arTroState["cMainTro268"];
#TRO269.nState := "DB_GLOB_TroState".arTroState["cMainTro269"];
#TRO270.nState := "DB_GLOB_TroState".arTroState["cMainTro270"];
#TRO271.nState := "DB_GLOB_TroState".arTroState["cMainTro271"];
#TRO272.nState := "DB_GLOB_TroState".arTroState["cMainTro272"];
#TRO273.nState := "DB_GLOB_TroState".arTroState["cMainTro273"];
#TRO274.nState := "DB_GLOB_TroState".arTroState["cMainTro274"];
#TRO275.nState := "DB_GLOB_TroState".arTroState["cMainTro275"];
END_IF;
END_REGION
REGION Automatik
#t_Automatik_OF1 := "DB_InterfaceSafety".stFromSafety.stMainContactorsUH02.Q; //#stInOutControlUnitCabinetOF1.xRunning AND NOT #stInOutControlUnitCabinetOF1.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q(* AND "IBN".xAutomatikON *);
#t_Automatik_OF2 := "DB_InterfaceSafety".stFromSafety.stMainContactorsUC021.Q; //#stInOutControlUnitCabinetOF2.xRunning AND NOT #stInOutControlUnitCabinetOF2.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q(* AND "IBN".xAutomatikON *);
#t_Automatik_OF3 := "DB_InterfaceSafety".stFromSafety.stMainContactorsUC022.Q; //#stInOutControlUnitCabinetOF3.xRunning AND NOT #stInOutControlUnitCabinetOF3.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q(* AND "IBN".xAutomatikON *);
#t_Automatik_OF4 := "DB_InterfaceSafety".stFromSafety.stMainContactorsUC023.Q; //#stInOutControlUnitCabinetOF4.xRunning AND NOT #stInOutControlUnitCabinetOF4.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q(* AND "IBN".xAutomatikON *);
END_REGION
REGION Conveyor
REGION Pin-Sorter
REGION Conveyor 1101
#fbSortConv1101.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv1101.Settings.tStartingTime := T#50ms;
#fbSortConv1101.Settings.xGridActive := FALSE;
#fbSortConv1101.Settings.sMotorProtectName := 'FC0140';
#fbSortConv1101(xInEnabled :=
"SF0120" AND "SF0122" AND
NOT #fbPinControl1101_1.xOutErrorRasterSensor AND
NOT #fbPinControl1101_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor1101.xOutError AND
NOT #TRO208.xOutUnloadingError AND
NOT #TRO211.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF2,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF2.xRestart AND NOT #TRO208.xOutConvReqSort AND
NOT #TRO211.xOutConvReqSort AND NOT #TRO210.xOutCarouselReq AND
NOT #TRO213.xOutCarouselReq AND NOT #TRO202.xOutCarouselReq2,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0140",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0140",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
stInOutInterfaceHMI := "DB_Interface_HMI".#stConveyors.stSort.stCS1101);
REGION Überwachung Pins 1
#fbPinControl1101_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1101_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1101_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1101_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1101_1(stInSenRaster := "DB_Inputs".Sensors["cInBG3061"],
xInErrorQuit := "SF0121" OR "SF0123" OR "SF0117",
xInMotorRun := #fbSortConv1101.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1101_1.stSettings.nErrorType := 1;
#fbMonPinControl1101_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1101_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1101_1.stSettings.tDelay := T#1s;
#fbMonPinControl1101_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1101',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3061"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF2,
xInQuitError := #stInOutControlUnitCabinetOF2.xQuitError,
xInSignal := NOT #fbPinControl1101_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl1101_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1101_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1101_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1101_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1101_2(stInSenRaster := "DB_Inputs".Sensors["cInBG3001"],
xInErrorQuit := "SF0121" OR "SF0123" OR "SF0117",
xInMotorRun := #fbSortConv1101.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1101_2.stSettings.nErrorType := 1;
#fbMonPinControl1101_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1101_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1101_2.stSettings.tDelay := T#1s;
#fbMonPinControl1101_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1101',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3001"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF2,
xInQuitError := #stInOutControlUnitCabinetOF2.xQuitError,
xInSignal := NOT #fbPinControl1101_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor1101(sInConveyor := 'KR-M1101',
sInEncoder := 'GF2200',
nInEncoderValue := "GF2200_PosAct",
nInEncoderMax := "cEncoderGF2200",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv1101.xOutConveyorFullSpeed,
xInQuit := "SF0121" OR "SF0123" OR "SF0117" OR "IBN".xQuitGlob,
xInActivate := TRUE,
stInOutControlUnitCabinet:=#stInOutControlUnitCabinetOF2);
END_REGION
END_REGION
REGION Conveyor 1102
#fbSortConv1102.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv1102.Settings.tStartingTime := T#50ms;
#fbSortConv1102.Settings.xGridActive := FALSE;
#fbSortConv1102.Settings.sMotorProtectName := 'FC0141';
#fbSortConv1102(xInEnabled :=
"SF0124" AND "SF0126" AND
NOT #fbPinControl1102_1.xOutErrorRasterSensor AND
NOT #fbPinControl1102_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor1102.xOutError AND
NOT #TRO214.xOutUnloadingError AND
NOT #TRO217.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF2,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF2.xRestart AND NOT #TRO214.xOutConvReqSort AND
NOT #TRO217.xOutConvReqSort AND NOT #TRO216.xOutCarouselReq AND
NOT #TRO219.xOutCarouselReq AND NOT #TRO202.xOutCarouselReq1 AND NOT #TRO202.xOutCarouselReq2 AND NOT #TRO201.xOutCarouselReq,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0141",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0141",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS1102);
REGION Überwachung Pins 1
#fbPinControl1102_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1102_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1102_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1102_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1102_1(stInSenRaster := "DB_Inputs".Sensors["cInBG3121"],
xInErrorQuit := "SF0125" OR "SF0127" OR "SF0117",
xInMotorRun := #fbSortConv1102.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1102_1.stSettings.nErrorType := 1;
#fbMonPinControl1102_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1102_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1102_1.stSettings.tDelay := T#1s;
#fbMonPinControl1102_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1102',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3121"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF2,
xInQuitError := #stInOutControlUnitCabinetOF2.xQuitError,
xInSignal := NOT #fbPinControl1102_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl1102_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1102_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1102_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1102_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1102_2(stInSenRaster := "DB_Inputs".Sensors["cInBG3181"],
xInErrorQuit := "SF0125" OR "SF0127" OR "SF0117",
xInMotorRun := #fbSortConv1102.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1102_2.stSettings.nErrorType := 1;
#fbMonPinControl1102_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1102_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1102_2.stSettings.tDelay := T#1s;
#fbMonPinControl1102_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1102',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3181"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF2,
xInQuitError := #stInOutControlUnitCabinetOF2.xQuitError,
xInSignal := NOT #fbPinControl1102_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor1102(sInConveyor := 'KR-M1102',
sInEncoder := 'GF2201',
nInEncoderValue := "GF2201_PosAct",
nInEncoderMax := "cEncoderGF2201",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv1102.xOutConveyorFullSpeed,
xInQuit := "SF0125" OR "SF0127" OR "SF0117" OR "IBN".xQuitGlob,
xInActivate := TRUE,
stInOutControlUnitCabinet:= #stInOutControlUnitCabinetOF2);
END_REGION
END_REGION
REGION Conveyor 1201
#fbSortConv1201.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv1201.Settings.tStartingTime := T#50ms;
#fbSortConv1201.Settings.xGridActive := FALSE;
#fbSortConv1201.Settings.sMotorProtectName := 'FC0062';
#fbSortConv1201(xInEnabled :=
"SF0050" AND "SF0052" AND
NOT #fbPinControl1201_1.xOutErrorRasterSensor AND
NOT #fbPinControl1201_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor1201.xOutError AND
NOT #TRO228.xOutUnloadingError AND
NOT #TRO231.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF1,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF1.xRestart AND NOT #TRO228.xOutConvReqSort AND
NOT #TRO231.xOutConvReqSort AND NOT #TRO230.xOutCarouselReq AND
NOT #TRO233.xOutCarouselReq AND NOT #TRO222.xOutCarouselReq2,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0062",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0062",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS1201);
REGION Überwachung Pins 1
#fbPinControl1201_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1201_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1201_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1201_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1201_1(stInSenRaster := "DB_Inputs".Sensors["cInBG3481"],
xInErrorQuit := "SF0051",
xInMotorRun := #fbSortConv1201.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1201_1.stSettings.nErrorType := 1;
#fbMonPinControl1201_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1201_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1201_1.stSettings.tDelay := T#1s;
#fbMonPinControl1201_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1201',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3481"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF1,
xInQuitError := #stInOutControlUnitCabinetOF1.xQuitError,
xInSignal := NOT #fbPinControl1201_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl1201_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1201_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1201_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1201_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1201_2(stInSenRaster := "DB_Inputs".Sensors["cInBG3541"],
xInErrorQuit := "SF0053",
xInMotorRun := #fbSortConv1201.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1201_2.stSettings.nErrorType := 1;
#fbMonPinControl1201_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1201_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1201_2.stSettings.tDelay := T#1s;
#fbMonPinControl1201_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1201',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3541"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF1,
xInQuitError := #stInOutControlUnitCabinetOF1.xQuitError,
xInSignal := NOT #fbPinControl1201_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor1201(sInConveyor := 'KR-M1201',
sInEncoder := 'GF2202',
nInEncoderValue := "GF2202_PosAct",
nInEncoderMax := "cEncoderGF2202",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv1201.xOutConveyorFullSpeed,
xInQuit := "SF0051" OR "SF0053" OR "IBN".xQuitGlob,
xInActivate := TRUE,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1);
END_REGION
END_REGION
REGION Conveyor 1202
#fbSortConv1202.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv1202.Settings.tStartingTime := T#50ms;
#fbSortConv1202.Settings.xGridActive := FALSE;
#fbSortConv1202.Settings.sMotorProtectName := 'FC0063';
#fbSortConv1202(xInEnabled :=
"SF0054" AND "SF0056" AND
NOT #fbPinControl1202_1.xOutErrorRasterSensor AND
NOT #fbPinControl1202_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor1202.xOutError AND
NOT #TRO234.xOutUnloadingError AND
NOT #TRO237.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF1,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF1.xRestart AND NOT #TRO234.xOutConvReqSort AND
NOT #TRO237.xOutConvReqSort AND NOT #TRO236.xOutCarouselReq AND NOT #TRO222.xOutCarouselReq1 AND
NOT #TRO239.xOutCarouselReq AND NOT #TRO221.xOutCarouselReq,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0063",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0063",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS1202);
REGION Überwachung Pins 1
#fbPinControl1202_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1202_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1202_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1202_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1202_1(stInSenRaster := "DB_Inputs".Sensors["cInBG3601"],
xInErrorQuit := "SF0055",
xInMotorRun := #fbSortConv1202.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1202_1.stSettings.nErrorType := 1;
#fbMonPinControl1202_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1202_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1202_1.stSettings.tDelay := T#1s;
#fbMonPinControl1202_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1202',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3601"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF1,
xInQuitError := #stInOutControlUnitCabinetOF1.xQuitError,
xInSignal := NOT #fbPinControl1202_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl1202_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1202_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1202_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1202_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1202_2(stInSenRaster := "DB_Inputs".Sensors["cInBG3661"],
xInErrorQuit := "SF0057",
xInMotorRun := #fbSortConv1202.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1202_2.stSettings.nErrorType := 1;
#fbMonPinControl1202_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1202_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1202_2.stSettings.tDelay := T#1s;
#fbMonPinControl1202_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1202',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3661"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF1,
xInQuitError := #stInOutControlUnitCabinetOF1.xQuitError,
xInSignal := NOT #fbPinControl1202_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor1202(sInConveyor := 'KR-M1202',
sInEncoder := 'GF2203',
nInEncoderValue := "GF2203_PosAct",
nInEncoderMax := "cEncoderGF2203",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv1202.xOutConveyorFullSpeed,
xInQuit := "SF0055" OR "SF0057" OR "IBN".xQuitGlob,
xInActivate := TRUE,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1);
END_REGION
END_REGION
REGION Conveyor 1303
#fbSortConv1303.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv1303.Settings.tStartingTime := T#50ms;
#fbSortConv1303.Settings.xGridActive := FALSE;
#fbSortConv1303.Settings.sMotorProtectName := 'FC0260';
#fbSortConv1303(xInEnabled :=
"SF0240" AND "SF0242" AND
NOT #fbPinControl1303_1.xOutErrorRasterSensor AND
NOT #fbPinControl1303_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor1303.xOutError AND
NOT #TRO248.xOutUnloadingError AND
NOT #TRO251.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF4,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF4.xRestart AND NOT #TRO248.xOutConvReqSort AND
NOT #TRO251.xOutConvReqSort AND NOT #TRO250.xOutCarouselReq AND
NOT #TRO253.xOutCarouselReq AND NOT #TRO242.xOutCarouselReq1,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0260",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0260",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS1303);
REGION Überwachung Pins 1
#fbPinControl1303_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1303_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1303_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1303_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1303_1(stInSenRaster := "DB_Inputs".Sensors["cInBG4261"],
xInErrorQuit := "SF0243",
xInMotorRun := #fbSortConv1303.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1303_1.stSettings.nErrorType := 1;
#fbMonPinControl1303_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1303_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1303_1.stSettings.tDelay := T#1s;
#fbMonPinControl1303_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1303',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG4261"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF4,
xInQuitError := #stInOutControlUnitCabinetOF4.xQuitError,
xInSignal := NOT #fbPinControl1303_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl1303_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1303_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1303_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1303_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1303_2(stInSenRaster := "DB_Inputs".Sensors["cInBG4201"],
xInErrorQuit := "SF0241",
xInMotorRun := #fbSortConv1303.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1303_2.stSettings.nErrorType := 1;
#fbMonPinControl1303_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1303_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1303_2.stSettings.tDelay := T#1s;
#fbMonPinControl1303_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1303',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG4201"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF4,
xInQuitError := #stInOutControlUnitCabinetOF4.xQuitError,
xInSignal := NOT #fbPinControl1303_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor1303(sInConveyor := 'KR-M1303',
sInEncoder := 'GF2204',
nInEncoderValue := "GF2204_PosAct",
nInEncoderMax := "cEncoderGF2204",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv1303.xOutConveyorFullSpeed,
xInQuit := "SF0241" OR "SF0243" OR "IBN".xQuitGlob,
xInActivate := TRUE,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4);
END_REGION
END_REGION
REGION Conveyor 1304
#fbSortConv1304.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv1304.Settings.tStartingTime := T#50ms;
#fbSortConv1304.Settings.xGridActive := FALSE;
#fbSortConv1304.Settings.sMotorProtectName := 'FC0261';
#fbSortConv1304(xInEnabled :=
"SF0244" AND "SF0246" AND
NOT #fbPinControl1304_1.xOutErrorRasterSensor AND
NOT #fbPinControl1304_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor1304.xOutError AND
NOT #TRO254.xOutUnloadingError AND
NOT #TRO257.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF4,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF4.xRestart AND NOT #TRO254.xOutConvReqSort AND
NOT #TRO257.xOutConvReqSort AND NOT #TRO256.xOutCarouselReq AND
NOT #TRO259.xOutCarouselReq AND NOT #TRO241.xOutCarouselReq AND NOT #TRO242.xOutCarouselReq2,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0261",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0261",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS1304);
REGION Überwachung Pins 1
#fbPinControl1304_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1304_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1304_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1304_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1304_1(stInSenRaster := "DB_Inputs".Sensors["cInBG4321"],
xInErrorQuit := "SF0245",
xInMotorRun := #fbSortConv1304.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1304_1.stSettings.nErrorType := 1;
#fbMonPinControl1304_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1304_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1304_1.stSettings.tDelay := T#1s;
#fbMonPinControl1304_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1304',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG4321"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF4,
xInQuitError := #stInOutControlUnitCabinetOF4.xQuitError,
xInSignal := NOT #fbPinControl1304_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl1304_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl1304_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl1304_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1304_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl1304_2(stInSenRaster := "DB_Inputs".Sensors["cInBG4381"],
xInErrorQuit := "SF0247",
xInMotorRun := #fbSortConv1304.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl1304_2.stSettings.nErrorType := 1;
#fbMonPinControl1304_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl1304_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl1304_2.stSettings.tDelay := T#1s;
#fbMonPinControl1304_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M1304',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG4381"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF4,
xInQuitError := #stInOutControlUnitCabinetOF4.xQuitError,
xInSignal := NOT #fbPinControl1304_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor1304(sInConveyor := 'KR-M1304',
sInEncoder := 'GF2205',
nInEncoderValue := "GF2205_PosAct",
nInEncoderMax := "cEncoderGF2205",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv1304.xOutConveyorFullSpeed,
xInQuit := "SF0245" OR "SF0247" OR "IBN".xQuitGlob,
xInActivate := TRUE,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4);
END_REGION
END_REGION
END_REGION
REGION Kreisel
REGION Conveyor 1110
#fbCarousel1110.Settings.tEnergySafeTime := T#90s;
#fbCarousel1110.Settings.tStartingTime := T#50ms;
#fbCarousel1110.Settings.xGridActive := TRUE;
#fbCarousel1110.Settings.sMotorProtectName := 'FC0075';
#fbCarousel1110.Settings.sGridSenName := 'BG4510';
#fbCarousel1110(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *)#stInOutControlUnitCabinetOF1.xRestart OR
#TRO261.xOutCarouselReq OR
#TRO263.xOutCarouselReq OR
#TRO265.xOutCarouselReq OR
#TRO266.xOutCarouselReq OR
#TRO267.xOutCarouselReq1 OR #TRO267.xOutCarouselReq2 OR
#TRO268.xOutCarouselReq1 OR #TRO268.xOutCarouselReq2 OR
#TRO269.xOutCarouselReq OR
#TRO274.xOutCarouselReq OR
#TRO275.xOutCarouselReq,
xInEnabled := "SF0080" AND "SF0082",
xInGridSen := "DB_Inputs".Sensors["cInBG4510"].xDirectSensor,
xInGridQuit := "SF0083",
xInAutomaticMode := #t_Automatik_OF1,
xInMotorProtectionMonitoring := "FC0075",
xOutPowerContactor => "MA0075",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stCarousel.stCarEntr1);
END_REGION
REGION "Exit" Conv 1103
#fbExitConv1103.Settings.tEnergySafeTime := T#90s;
#fbExitConv1103.Settings.tStartingTime := T#50ms;
#fbExitConv1103.Settings.xGridActive := TRUE;
#fbExitConv1103.Settings.sMotorProtectName := 'FC0060';
#fbExitConv1103.Settings.sGridSenName := 'BG3306';
#fbExitConv1103(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *)#stInOutControlUnitCabinetOF1.xRestart OR
#TRO208.xOutConvReqExit OR #TRO211.xOutConvReqExit OR
#TRO203.xOutCarouselReq1 OR #TRO203.xOutCarouselReq2 OR
#TRO204.xOutCarouselReq1 OR #TRO204.xOutCarouselReq2 OR
#TRO206.xOutCarouselReq1,
xInEnabled := "SF0040" AND "SF0042",
xInGridSen := "DB_Inputs".Sensors["cInBG3306"].xDirectSensor,
xInGridQuit := "SF0041" OR "SF0043",
xInAutomaticMode := #t_Automatik_OF1,
xInMotorProtectionMonitoring := "FC0060",
xOutPowerContactor => "MA0060",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stCarousel.stCar1103Exit);
END_REGION
REGION "Exit" Conv 1104
#fbExitConv1104.Settings.tEnergySafeTime := T#90s;
#fbExitConv1104.Settings.tStartingTime := T#50ms;
#fbExitConv1104.Settings.xGridActive := TRUE;
#fbExitConv1104.Settings.sMotorProtectName := 'FC0061';
#fbExitConv1104.Settings.sGridSenName := 'BG3433';
#fbExitConv1104(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *)#stInOutControlUnitCabinetOF1.xRestart OR
#TRO214.xOutConvReqExit OR #TRO217.xOutConvReqExit OR
#TRO205.xOutCarouselReq1 OR #TRO205.xOutCarouselReq2 OR
#TRO206.xOutCarouselReq1 OR #TRO206.xOutCarouselReq2 OR
#TRO204.xOutCarouselReq2 OR #TRO207.xOutCarouselReq,
xInEnabled := "SF0044" AND "SF0046",
xInGridSen := "DB_Inputs".Sensors["cInBG3433"].xDirectSensor,
xInGridQuit := "SF0055" OR "SF0057",
xInAutomaticMode := #t_Automatik_OF1,
xInMotorProtectionMonitoring := "FC0061",
xOutPowerContactor => "MA0061",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stCarousel.stCar1104Exit);
END_REGION
REGION "Exit" Conv 1203
#fbExitConv1203.Settings.tEnergySafeTime := T#90s;
#fbExitConv1203.Settings.tStartingTime := T#50ms;
#fbExitConv1203.Settings.xGridActive := TRUE;
#fbExitConv1203.Settings.sMotorProtectName := 'FC0200';
#fbExitConv1203.Settings.sGridSenName := 'BG3786';
#fbExitConv1203(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *)#stInOutControlUnitCabinetOF3.xRestart OR
#TRO228.xOutConvReqExit OR #TRO231.xOutConvReqExit OR
#TRO223.xOutCarouselReq1 OR #TRO223.xOutCarouselReq2 OR
#TRO224.xOutCarouselReq1 OR #TRO224.xOutCarouselReq2 OR
#TRO226.xOutCarouselReq1,
xInEnabled := "SF0180" AND "SF0182",
xInGridSen := "DB_Inputs".Sensors["cInBG3786"].xDirectSensor,
xInGridQuit := "SF0181" OR "SF0183",
xInAutomaticMode := #t_Automatik_OF3,
xInMotorProtectionMonitoring := "FC0200",
xOutPowerContactor => "MA0200",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF3,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stCarousel.stCar1203Exit);
END_REGION
REGION "Exit" Conv 1204
#fbExitConv1204.Settings.tEnergySafeTime := T#90s;
#fbExitConv1204.Settings.tStartingTime := T#50ms;
#fbExitConv1204.Settings.xGridActive := TRUE;
#fbExitConv1204.Settings.sMotorProtectName := 'FC0201';
#fbExitConv1204.Settings.sGridSenName := 'BG3911';
#fbExitConv1204(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *)#stInOutControlUnitCabinetOF3.xRestart OR
#TRO234.xOutConvReqExit OR #TRO237.xOutConvReqExit OR
#TRO225.xOutCarouselReq1 OR #TRO225.xOutCarouselReq2 OR
#TRO226.xOutCarouselReq1 OR #TRO226.xOutCarouselReq2 OR
#TRO224.xOutCarouselReq2 OR
#TRO227.xOutCarouselReq,
xInEnabled := "SF0184" AND "SF0186",
xInGridSen := "DB_Inputs".Sensors["cInBG3911"].xDirectSensor,
xInGridQuit := "SF0185" OR "SF0187",
xInAutomaticMode := #t_Automatik_OF3,
xInMotorProtectionMonitoring := "FC0201",
xOutPowerContactor => "MA0201",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF3,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stCarousel.stCar1204Exit);
END_REGION
REGION "Exit" Conv 1301
#fbExitConv1301.Settings.tEnergySafeTime := T#90s;
#fbExitConv1301.Settings.tStartingTime := T#50ms;
#fbExitConv1301.Settings.xGridActive := TRUE;
#fbExitConv1301.Settings.sMotorProtectName := 'FC0202';
#fbExitConv1301.Settings.sGridSenName := 'BG4026';
#fbExitConv1301(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *)#stInOutControlUnitCabinetOF3.xRestart OR
#TRO248.xOutConvReqExit OR #TRO251.xOutConvReqExit OR
#TRO243.xOutCarouselReq1 OR #TRO243.xOutCarouselReq2 OR
#TRO244.xOutCarouselReq1 OR #TRO244.xOutCarouselReq2 OR
#TRO246.xOutCarouselReq2,
xInEnabled := "SF0190" AND "SF0192",
xInGridSen := "DB_Inputs".Sensors["cInBG4026"].xDirectSensor,
xInGridQuit := "SF0191" OR "SF0193",
xInAutomaticMode := #t_Automatik_OF3,
xInMotorProtectionMonitoring := "FC0202",
xOutPowerContactor => "MA0202",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF3,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stCarousel.stCar1301Exit);
END_REGION
REGION "Exit" Conv 1302
#fbExitConv1302.Settings.tEnergySafeTime := T#90s;
#fbExitConv1302.Settings.tStartingTime := T#50ms;
#fbExitConv1302.Settings.xGridActive := TRUE;
#fbExitConv1302.Settings.sMotorProtectName := 'FC0203';
#fbExitConv1302.Settings.sGridSenName := 'BG4150';
#fbExitConv1302(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *)#stInOutControlUnitCabinetOF3.xRestart OR
#TRO254.xOutConvReqExit OR #TRO257.xOutConvReqExit OR
#TRO245.xOutCarouselReq1 OR #TRO245.xOutCarouselReq2 OR
#TRO246.xOutCarouselReq1 OR #TRO246.xOutCarouselReq2 OR
#TRO244.xOutCarouselReq1 OR #TRO247.xOutCarouselReq,
xInEnabled := "SF0194" AND "SF0196",
xInGridSen := "DB_Inputs".Sensors["cInBG4150"].xDirectSensor,
xInGridQuit := "SF0195" OR "SF0197",
xInAutomaticMode := #t_Automatik_OF3,
xInMotorProtectionMonitoring := "FC0203",
xOutPowerContactor => "MA0203",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF3,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stCarousel.stCar1302Exit);
END_REGION
END_REGION
END_REGION ;
REGION Encoder
REGION GF2200
#fbEncoderGF2200(nInPosAct := "GF2200_PosAct",
xInPresetAdjQuit := "GF2200_PresetAdjQuit",
nInEncoderMax := "cEncoderGF2200",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG3061"],
nInPitch := 250); //Konstante
"GF2200_PresetAdjSet" := #fbEncoderGF2200.xOutPresetAdjSet;
"GF2200_PresetAdjValue" := #fbEncoderGF2200.nOutPresetAdjSetValue;
END_REGION
REGION GF2201
#fbEncoderGF2201(nInPosAct := "GF2201_PosAct",
xInPresetAdjQuit := "GF2201_PresetAdjQuit",
nInEncoderMax := "cEncoderGF2201",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG3121"],
nInPitch := 250); //Konstante
"GF2201_PresetAdjSet" := #fbEncoderGF2201.xOutPresetAdjSet;
"GF2201_PresetAdjValue" := #fbEncoderGF2201.nOutPresetAdjSetValue;
END_REGION
REGION GF2202
#fbEncoderGF2202(nInPosAct := "GF2202_PosAct",
xInPresetAdjQuit := "GF2202_PresetAdjQuit",
nInEncoderMax := "cEncoderGF2202",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG3541"],
nInPitch := 250); //Konstante
"GF2202_PresetAdjSet" := #fbEncoderGF2202.xOutPresetAdjSet;
"GF2202_PresetAdjValue" := #fbEncoderGF2202.nOutPresetAdjSetValue;
END_REGION
REGION GF2203
#fbEncoderGF2203(nInPosAct := "GF2203_PosAct",
xInPresetAdjQuit := "GF2203_PresetAdjQuit",
nInEncoderMax := "cEncoderGF2203",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG3601"],
nInPitch := 250); //Konstante
"GF2203_PresetAdjSet" := #fbEncoderGF2203.xOutPresetAdjSet;
"GF2203_PresetAdjValue" := #fbEncoderGF2203.nOutPresetAdjSetValue;
END_REGION
REGION GF2204
#fbEncoderGF2204(nInPosAct := "GF2204_PosAct",
xInPresetAdjQuit := "GF2204_PresetAdjQuit",
nInEncoderMax := "cEncoderGF2204",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG4261"],
nInPitch := 250); //Konstante
"GF2204_PresetAdjSet" := #fbEncoderGF2204.xOutPresetAdjSet;
"GF2204_PresetAdjValue" := #fbEncoderGF2204.nOutPresetAdjSetValue;
END_REGION
REGION GF2205
#fbEncoderGF2205(nInPosAct := "GF2205_PosAct",
xInPresetAdjQuit := "GF2205_PresetAdjQuit",
nInEncoderMax := "cEncoderGF2205",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG4321"],
nInPitch := 250); //Konstante
"GF2205_PresetAdjSet" := #fbEncoderGF2205.xOutPresetAdjSet;
"GF2205_PresetAdjValue" := #fbEncoderGF2205.nOutPresetAdjSetValue;
END_REGION
END_REGION
REGION SECTION 1.1
REGION BLOCK 1.1.1 (TRO 208)
REGION Encoder Settings
#TRO208.stInEncoderParameter.nPosActDif := #fbEncoderGF2200.nOutPosActDif;
#TRO208.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2200.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO208.stInSettings.nDestGeneral := "cDest11100";
#TRO208.stInSettings.nConvStations := "cHooksSorterMaxPin111"; //Konstante todo
#TRO208.stInSettings.nStationsMax := "cStationsMax111"; // Konstante todo
#TRO208.stInSettings.nStorageThreshold := "cNoPositionsBlock1"; //Konstante todo
#TRO208.stInSettings.nNoOfLines := 19;
END_REGION
REGION Pin Query / "Zappler"
#TRO208.stInSensorReference := "DB_Inputs".Sensors["cInBG3001"];
END_REGION
REGION Barcode Reader In (BX2104)
#TRO208.stInBarcodeReader.Settings.nStation := 111; // todo Konstante
#TRO208.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO208.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO208.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2104"].xInCamTriggerReady := "bx2104-TriggerReady";
#arCognexInterface["cScannerBX2104"].xInCamTriggerAck := "bx2104-TriggerAck";
#arCognexInterface["cScannerBX2104"].xInCamResultsAvailable := "bx2104-Results Available";
#arCognexInterface["cScannerBX2104"].xInCamGeneralFault := "bx2104-General Fault";
#arCognexInterface["cScannerBX2104"].hwInCamInspectionResults := "=A01+UH02-BX2104~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO208.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3000"];
#TRO208.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO208.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO208.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := 4;//"cStorage111ExitJam1";
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3270"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam2";
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3271"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam3";
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3272"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam4";
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3273"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam5";
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3274"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam6";
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3275"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam7";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3276"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam8";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3277"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam9";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3280"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam10";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3281"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam11";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3282"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam12";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3283"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam13";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3284"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam14";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3285"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam15";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3286"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam16";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3287"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam17";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3290"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam18";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3291"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO208.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam19";
#TRO208.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO208.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3292"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO208.xInQuitLocal := "SF0121" OR "SF0117";
#TRO208.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3030"];
#TRO208.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3031"];
#TRO208.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3032"];
#TRO208.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3033"];
#TRO208.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3034"];
#TRO208.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3035"];
#TRO208.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3036"];
#TRO208.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3037"];
#TRO208.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3040"];
#TRO208.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3041"];
#TRO208.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3042"];
#TRO208.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3043"];
#TRO208.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3044"];
#TRO208.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3045"];
#TRO208.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3046"];
#TRO208.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3047"];
#TRO208.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3050"];
#TRO208.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG3051"];
#TRO208.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG3052"];
END_REGION
REGION Aufruf: TRO208
#TRO208.stInPriorityManager.xReleaseOk := TRUE;
#TRO208(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget111,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO208,
xInConveyorRunIn := #fbSortConv1101.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1103.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage1.1.1".arLine,
arInOutJamEntr := "DB_JamArea1101".stJam1101_2.arCarrier,
stInOutJamEntr := "DB_JamArea1101".stJam1101_2.stData,
arInOutJamExit := "DB_JamArea1103".stJam1103_1.arCarrier,
stInOutJamExit := "DB_JamArea1103".stJam1103_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO208,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[1],
xOutSeparatorPin => "MB3000",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO208"],
stCognexInterfacePin := #arCognexInterface["cScannerBX2104"],
stConveyorStations:= "DB_ConveyorStations".stConveyorStations111);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO208.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO208.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1101".stJam1101_2.arCarrier[1]);
END_REGION ;
REGION Barcode Reader Out (BX2104)
"bx2104-TriggerEnable" := #arCognexInterface["cScannerBX2104"].xOutCamTriggerEnable;
"bx2104-Trigger" := #arCognexInterface["cScannerBX2104"].xOutCamTrigger;
"bx2104-ResultsAck" := #arCognexInterface["cScannerBX2104"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3270" := #TRO208.arOutSeparatorStore[1];
"MB3271" := #TRO208.arOutSeparatorStore[2];
"MB3272" := #TRO208.arOutSeparatorStore[3];
"MB3273" := #TRO208.arOutSeparatorStore[4];
"MB3274" := #TRO208.arOutSeparatorStore[5];
"MB3275" := #TRO208.arOutSeparatorStore[6];
"MB3276" := #TRO208.arOutSeparatorStore[7];
"MB3277" := #TRO208.arOutSeparatorStore[8];
"MB3280" := #TRO208.arOutSeparatorStore[9];
"MB3281" := #TRO208.arOutSeparatorStore[10];
"MB3282" := #TRO208.arOutSeparatorStore[11];
"MB3283" := #TRO208.arOutSeparatorStore[12];
"MB3284" := #TRO208.arOutSeparatorStore[13];
"MB3285" := #TRO208.arOutSeparatorStore[14];
"MB3286" := #TRO208.arOutSeparatorStore[15];
"MB3287" := #TRO208.arOutSeparatorStore[16];
"MB3290" := #TRO208.arOutSeparatorStore[17];
"MB3291" := #TRO208.arOutSeparatorStore[18];
"MB3292" := #TRO208.arOutSeparatorStore[19];
END_REGION
REGION Unloading Stations Out
"MB3030" := #TRO208.arOutSwitch[1];
"MB3031" := #TRO208.arOutSwitch[2];
"MB3032" := #TRO208.arOutSwitch[3];
"MB3033" := #TRO208.arOutSwitch[4];
"MB3034" := #TRO208.arOutSwitch[5];
"MB3035" := #TRO208.arOutSwitch[6];
"MB3036" := #TRO208.arOutSwitch[7];
"MB3037" := #TRO208.arOutSwitch[8];
"MB3040" := #TRO208.arOutSwitch[9];
"MB3041" := #TRO208.arOutSwitch[10];
"MB3042" := #TRO208.arOutSwitch[11];
"MB3043" := #TRO208.arOutSwitch[12];
"MB3044" := #TRO208.arOutSwitch[13];
"MB3045" := #TRO208.arOutSwitch[14];
"MB3046" := #TRO208.arOutSwitch[15];
"MB3047" := #TRO208.arOutSwitch[16];
"MB3050" := #TRO208.arOutSwitch[17];
"MB3051" := #TRO208.arOutSwitch[18];
"MB3052" := #TRO208.arOutSwitch[19];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 19 DO
IF #TRO208.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO208.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest11100" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.1.2 (TRO 211)
REGION Encoder Settings
#TRO211.stInEncoderParameter.nPosActDif := #fbEncoderGF2200.nOutPosActDif;
#TRO211.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2200.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO211.stInSettings.nDestGeneral := "cDest11200";
#TRO211.stInSettings.nConvStations := "cHooksSorterMaxPin112"; //Konstante todo
#TRO211.stInSettings.nStationsMax := "cStationsMax112"; // Konstante todo
#TRO211.stInSettings.nStorageThreshold := "cNoPositionsBlock1"; //Konstante todo
#TRO211.stInSettings.nNoOfLines := 17;
END_REGION
REGION Pin Query / "Zappler"
#TRO211.stInSensorReference := "DB_Inputs".Sensors["cInBG3061"];
END_REGION
REGION Barcode Reader IN (BX2105)
#TRO211.stInBarcodeReader.Settings.nStation := 212; // todo Konstante
#TRO211.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO211.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO211.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2105"].xInCamTriggerReady := "bx2105-TriggerReady";
#arCognexInterface["cScannerBX2105"].xInCamTriggerAck := "bx2105-TriggerAck";
#arCognexInterface["cScannerBX2105"].xInCamResultsAvailable := "bx2105-Results Available";
#arCognexInterface["cScannerBX2105"].xInCamGeneralFault := "bx2105-General Fault";
#arCognexInterface["cScannerBX2105"].hwInCamInspectionResults := "=A01+UH02-BX2105~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO211.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3060"];
#TRO211.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO211.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO211.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam1";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3330"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam2";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3331"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam3";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3332"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam4";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3333"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam5";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3334"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam6";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3335"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam7";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3336"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam8";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3337"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam9";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3340"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam10";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3341"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam11";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3342"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam12";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3343"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam13";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3344"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam14";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3345"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam15";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3346"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam16";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3347"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO211.arInSep[#nActNo].stSettings.nJamLength := "cStorage112ExitJam17";
#TRO211.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3350"];
#TRO211.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO211.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO211.xInQuitLocal := "SF0123" OR "SF0117";
#TRO211.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3090"];
#TRO211.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3091"];
#TRO211.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3092"];
#TRO211.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3093"];
#TRO211.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3094"];
#TRO211.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3095"];
#TRO211.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3096"];
#TRO211.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3097"];
#TRO211.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3100"];
#TRO211.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3101"];
#TRO211.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3102"];
#TRO211.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3103"];
#TRO211.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3104"];
#TRO211.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3105"];
#TRO211.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3106"];
#TRO211.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3107"];
#TRO211.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3110"];
END_REGION ;
REGION Aufruf: TRO211
#TRO211.stInPriorityManager.xReleaseOk := True;
#TRO211(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget112,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO211,
xInConveyorRunIn := #fbSortConv1101.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1103.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage1.1.2".arLine,
arInOutJamEntr := "DB_JamArea1101".stJam1101_1.arCarrier,
stInOutJamEntr := "DB_JamArea1101".stJam1101_1.stData,
arInOutJamExit := "DB_JamArea1103".stJam1103_2.arCarrier,
stInOutJamExit := "DB_JamArea1103".stJam1103_2.stData,
arInOutJamBypass := "DB_JamArea1101".stJam1101_2.arCarrier,
stInOutJamBypass := "DB_JamArea1101".stJam1101_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO211,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[2],
stCognexInterfacePin := #arCognexInterface["cScannerBX2105"],
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainT
xOutSeparatorPin => "MB3060",
stConveyorStations:="DB_ConveyorStations".stConveyorStations112);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO211.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO211.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1101".stJam1101_1.arCarrier[1]);
END_REGION ;
REGION Barcode Reader Out (BX2105)
"bx2105-TriggerEnable" := #arCognexInterface["cScannerBX2105"].xOutCamTriggerEnable;
"bx2105-Trigger" := #arCognexInterface["cScannerBX2105"].xOutCamTrigger;
"bx2105-ResultsAck" := #arCognexInterface["cScannerBX2105"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3330" := #TRO211.arOutSeparatorStore[1];
"MB3331" := #TRO211.arOutSeparatorStore[2];
"MB3332" := #TRO211.arOutSeparatorStore[3];
"MB3333" := #TRO211.arOutSeparatorStore[4];
"MB3334" := #TRO211.arOutSeparatorStore[5];
"MB3335" := #TRO211.arOutSeparatorStore[6];
"MB3336" := #TRO211.arOutSeparatorStore[7];
"MB3337" := #TRO211.arOutSeparatorStore[8];
"MB3340" := #TRO211.arOutSeparatorStore[9];
"MB3341" := #TRO211.arOutSeparatorStore[10];
"MB3342" := #TRO211.arOutSeparatorStore[11];
"MB3343" := #TRO211.arOutSeparatorStore[12];
"MB3344" := #TRO211.arOutSeparatorStore[13];
"MB3345" := #TRO211.arOutSeparatorStore[14];
"MB3346" := #TRO211.arOutSeparatorStore[15];
"MB3347" := #TRO211.arOutSeparatorStore[16];
"MB3350" := #TRO211.arOutSeparatorStore[17];
END_REGION
REGION Unloading Stations Out
"MB3090" := #TRO211.arOutSwitch[1];
"MB3091" := #TRO211.arOutSwitch[2];
"MB3092" := #TRO211.arOutSwitch[3];
"MB3093" := #TRO211.arOutSwitch[4];
"MB3094" := #TRO211.arOutSwitch[5];
"MB3095" := #TRO211.arOutSwitch[6];
"MB3096" := #TRO211.arOutSwitch[7];
"MB3097" := #TRO211.arOutSwitch[8];
"MB3100" := #TRO211.arOutSwitch[9];
"MB3101" := #TRO211.arOutSwitch[10];
"MB3102" := #TRO211.arOutSwitch[11];
"MB3103" := #TRO211.arOutSwitch[12];
"MB3104" := #TRO211.arOutSwitch[13];
"MB3105" := #TRO211.arOutSwitch[14];
"MB3106" := #TRO211.arOutSwitch[15];
"MB3107" := #TRO211.arOutSwitch[16];
"MB3110" := #TRO211.arOutSwitch[17];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 17 DO
IF #TRO211.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO211.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest11200" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.1.3 (TRO 214)
REGION Encoder Settings
#TRO214.stInEncoderParameter.nPosActDif := #fbEncoderGF2201.nOutPosActDif;
#TRO214.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2201.nPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO214.stInSettings.nDestGeneral := "cDest11300";
#TRO214.stInSettings.nConvStations := "cHooksSorterMaxPin113"; //Konstante todo
#TRO214.stInSettings.nStationsMax := "cStationsMax113"; // Konstante todo
#TRO214.stInSettings.nStorageThreshold := "cNoPositionsBlock1"; //Konstante todo
#TRO214.stInSettings.nNoOfLines := 21;
END_REGION
REGION Pin Query / "Zappler"
#TRO214.stInSensorReference := "DB_Inputs".Sensors["cInBG3121"];
END_REGION
REGION Barcode Reader In (BX2106)
#TRO214.stInBarcodeReader.Settings.nStation := 113; // todo Konstante
#TRO214.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO214.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO214.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2106"].xInCamTriggerReady := "bx2106-TriggerReady";
#arCognexInterface["cScannerBX2106"].xInCamTriggerAck := "bx2106-TriggerAck";
#arCognexInterface["cScannerBX2106"].xInCamResultsAvailable := "bx2106-Results Available";
#arCognexInterface["cScannerBX2106"].xInCamGeneralFault := "bx2106-General Fault";
#arCognexInterface["cScannerBX2106"].hwInCamInspectionResults := "=A01+UH02-BX2106~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO214.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3120"];
#TRO214.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO214.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO214.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam1";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3390"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam2";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3391"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam3";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3392"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam4";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3393"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam5";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3394"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam6";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3395"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam7";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3396"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam8";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3397"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam9";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3400"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam10";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3401"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam11";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3402"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam12";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3403"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam13";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3404"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam14";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3405"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam15";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3406"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam16";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3407"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam17";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3410"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam18";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3411"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam19";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3412"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 20
#nActNo := 20;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam10";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3413"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 21
#nActNo := 21;
#TRO214.arInSep[#nActNo].stSettings.nJamLength := "cStorage113ExitJam11";
#TRO214.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3414"];
#TRO214.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO214.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION Aufruf: TRO214
#TRO214.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO214(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget113,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO214,
xInConveyorRunIn := #fbSortConv1102.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1104.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage1.1.3".arLine,
arInOutJamEntr := "DB_JamArea1102".stJam1102_2.arCarrier,
stInOutJamEntr := "DB_JamArea1102".stJam1102_2.stData,
arInOutJamExit := "DB_JamArea1104".stJam1104_2.arCarrier,
stInOutJamExit := "DB_JamArea1104".stJam1104_2.stData,
arInOutJamBypass := "DB_JamArea1102".stJam1102_3.arCarrier,
stInOutJamBypass := "DB_JamArea1102".stJam1102_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO214,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[3],
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO214"],
xOutSeparatorPin => "MB3120",
stCognexInterfacePin := #arCognexInterface["cScannerBX2106"],
stConveyorStations:="DB_ConveyorStations".stConveyorStations113);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO214.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO214.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1102".stJam1102_2.arCarrier[1]);
END_REGION
REGION UnloadingStations Settings
#TRO214.xInQuitLocal := "SF0125" OR "SF0117";
#TRO214.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3150"];
#TRO214.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3151"];
#TRO214.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3152"];
#TRO214.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3153"];
#TRO214.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3154"];
#TRO214.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3155"];
#TRO214.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3156"];
#TRO214.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3157"];
#TRO214.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3160"];
#TRO214.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3161"];
#TRO214.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3162"];
#TRO214.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3163"];
#TRO214.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3164"];
#TRO214.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3165"];
#TRO214.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3166"];
#TRO214.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3167"];
#TRO214.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3170"];
#TRO214.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG3171"];
#TRO214.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG3172"];
#TRO214.arInJamSensor[20] := "DB_Inputs".Sensors["cInBG3173"];
#TRO214.arInJamSensor[21] := "DB_Inputs".Sensors["cInBG3174"];
END_REGION ;
REGION Barcode Reader Out (BX2106)
"bx2106-TriggerEnable" := #arCognexInterface["cScannerBX2106"].xOutCamTriggerEnable;
"bx2106-Trigger" := #arCognexInterface["cScannerBX2106"].xOutCamTrigger;
"bx2106-ResultsAck" := #arCognexInterface["cScannerBX2106"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3390" := #TRO214.arOutSeparatorStore[1];
"MB3391" := #TRO214.arOutSeparatorStore[2];
"MB3392" := #TRO214.arOutSeparatorStore[3];
"MB3393" := #TRO214.arOutSeparatorStore[4];
"MB3394" := #TRO214.arOutSeparatorStore[5];
"MB3395" := #TRO214.arOutSeparatorStore[6];
"MB3396" := #TRO214.arOutSeparatorStore[7];
"MB3397" := #TRO214.arOutSeparatorStore[8];
"MB3400" := #TRO214.arOutSeparatorStore[9];
"MB3401" := #TRO214.arOutSeparatorStore[10];
"MB3402" := #TRO214.arOutSeparatorStore[11];
"MB3403" := #TRO214.arOutSeparatorStore[12];
"MB3404" := #TRO214.arOutSeparatorStore[13];
"MB3405" := #TRO214.arOutSeparatorStore[14];
"MB3406" := #TRO214.arOutSeparatorStore[15];
"MB3407" := #TRO214.arOutSeparatorStore[16];
"MB3410" := #TRO214.arOutSeparatorStore[17];
"MB3411" := #TRO214.arOutSeparatorStore[18];
"MB3412" := #TRO214.arOutSeparatorStore[19];
"MB3413" := #TRO214.arOutSeparatorStore[20];
"MB3414" := #TRO214.arOutSeparatorStore[21];
END_REGION
REGION Unlaoding Stations Out
"MB3150" := #TRO214.arOutSwitch[1];
"MB3151" := #TRO214.arOutSwitch[2];
"MB3152" := #TRO214.arOutSwitch[3];
"MB3153" := #TRO214.arOutSwitch[4];
"MB3154" := #TRO214.arOutSwitch[5];
"MB3155" := #TRO214.arOutSwitch[6];
"MB3156" := #TRO214.arOutSwitch[7];
"MB3157" := #TRO214.arOutSwitch[8];
"MB3160" := #TRO214.arOutSwitch[9];
"MB3161" := #TRO214.arOutSwitch[10];
"MB3162" := #TRO214.arOutSwitch[11];
"MB3163" := #TRO214.arOutSwitch[12];
"MB3164" := #TRO214.arOutSwitch[13];
"MB3165" := #TRO214.arOutSwitch[14];
"MB3166" := #TRO214.arOutSwitch[15];
"MB3167" := #TRO214.arOutSwitch[16];
"MB3170" := #TRO214.arOutSwitch[17];
"MB3171" := #TRO214.arOutSwitch[18];
"MB3172" := #TRO214.arOutSwitch[19];
"MB3173" := #TRO214.arOutSwitch[20];
"MB3174" := #TRO214.arOutSwitch[21];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 21 DO
IF #TRO214.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO214.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest11300" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.1.4 (TRO 217)
REGION Encoder Settings
#TRO217.stInEncoderParameter.nPosActDif := #fbEncoderGF2201.nOutPosActDif;
#TRO217.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2201.nPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO217.stInSettings.nDestGeneral := "cDest11400";
#TRO217.stInSettings.nConvStations := "cHooksSorterMaxPin114"; //Konstante todo
#TRO217.stInSettings.nStationsMax := "cStationsMax114"; // Konstante todo
#TRO217.stInSettings.nStorageThreshold := "cNoPositionsBlock1"; //Konstante todo
#TRO217.stInSettings.nNoOfLines := 13;
END_REGION
REGION Pin Query / "Zappler"
#TRO217.stInSensorReference := "DB_Inputs".Sensors["cInBG3181"];
END_REGION
REGION Barcode Reader In (BX2107)
#TRO217.stInBarcodeReader.Settings.nStation := 114; // todo Konstante
#TRO217.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO217.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO217.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2107"].xInCamTriggerReady := "bx2107-TriggerReady";
#arCognexInterface["cScannerBX2107"].xInCamTriggerAck := "bx2107-TriggerAck";
#arCognexInterface["cScannerBX2107"].xInCamResultsAvailable := "bx2107-Results Available";
#arCognexInterface["cScannerBX2107"].xInCamGeneralFault := "bx2107-General Fault";
#arCognexInterface["cScannerBX2107"].hwInCamInspectionResults := "=A01+UH02-BX2107~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO217.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3180"];
#TRO217.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO217.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO217.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam1";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3450"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam2";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3451"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam3";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3452"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam4";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3453"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam5";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3454"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam6";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3455"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam7";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3456"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam8";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3457"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam9";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3460"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam10";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3461"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam11";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3462"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam12";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3463"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO217.arInSep[#nActNo].stSettings.nJamLength := "cStorage114ExitJam13";
#TRO217.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3464"];
#TRO217.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO217.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO217.xInQuitLocal := "SF0127" OR "SF0117";
#TRO217.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3210"];
#TRO217.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3211"];
#TRO217.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3212"];
#TRO217.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3213"];
#TRO217.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3214"];
#TRO217.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3215"];
#TRO217.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3216"];
#TRO217.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3217"];
#TRO217.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3220"];
#TRO217.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3221"];
#TRO217.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3222"];
#TRO217.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3223"];
#TRO217.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3224"];
END_REGION
REGION Aufruf: TRO217
#TRO217.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO217(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget114,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO217,
xInConveyorRunIn := #fbSortConv1102.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1104.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage1.1.4".arLine,
xOutSeparatorPin => "MB3180",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO217"],
arInOutJamEntr := "DB_JamArea1102".stJam1102_3.arCarrier,
stInOutJamEntr := "DB_JamArea1102".stJam1102_3.stData,
arInOutJamExit := "DB_JamArea1104".stJam1104_1.arCarrier,
stInOutJamExit := "DB_JamArea1104".stJam1104_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO217,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[4],
stCognexInterfacePin := #arCognexInterface["cScannerBX2107"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations114);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO217.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO217.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1102".stJam1102_3.arCarrier[1]);
END_REGION
REGION Barcode Reader Out (BX2107)
"bx2107-TriggerEnable" := #arCognexInterface["cScannerBX2107"].xOutCamTriggerEnable;
"bx2107-Trigger" := #arCognexInterface["cScannerBX2107"].xOutCamTrigger;
"bx2107-ResultsAck" := #arCognexInterface["cScannerBX2107"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3450" := #TRO217.arOutSeparatorStore[1];
"MB3451" := #TRO217.arOutSeparatorStore[2];
"MB3452" := #TRO217.arOutSeparatorStore[3];
"MB3453" := #TRO217.arOutSeparatorStore[4];
"MB3454" := #TRO217.arOutSeparatorStore[5];
"MB3455" := #TRO217.arOutSeparatorStore[6];
"MB3456" := #TRO217.arOutSeparatorStore[7];
"MB3457" := #TRO217.arOutSeparatorStore[8];
"MB3460" := #TRO217.arOutSeparatorStore[9];
"MB3461" := #TRO217.arOutSeparatorStore[10];
"MB3462" := #TRO217.arOutSeparatorStore[11];
"MB3463" := #TRO217.arOutSeparatorStore[12];
"MB3464" := #TRO217.arOutSeparatorStore[13];
END_REGION
REGION Unloading Stations Out
"MB3210" := #TRO217.arOutSwitch[1];
"MB3211" := #TRO217.arOutSwitch[2];
"MB3212" := #TRO217.arOutSwitch[3];
"MB3213" := #TRO217.arOutSwitch[4];
"MB3214" := #TRO217.arOutSwitch[5];
"MB3215" := #TRO217.arOutSwitch[6];
"MB3216" := #TRO217.arOutSwitch[7];
"MB3217" := #TRO217.arOutSwitch[8];
"MB3220" := #TRO217.arOutSwitch[9];
"MB3221" := #TRO217.arOutSwitch[10];
"MB3222" := #TRO217.arOutSwitch[11];
"MB3223" := #TRO217.arOutSwitch[12];
"MB3224" := #TRO217.arOutSwitch[13];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 13 DO
IF #TRO217.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO217.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest11400" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
END_REGION
REGION SECTION 1.2
REGION BLOCK 1.2.1 (TRO228)
REGION Encoder Settings
#TRO228.stInEncoderParameter.nPosActDif := #fbEncoderGF2202.nOutPosActDif;
#TRO228.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2202.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO228.stInSettings.nDestGeneral := "cDest12100";
#TRO228.stInSettings.nConvStations := "cHooksSorterMaxPin121"; //Konstante todo
#TRO228.stInSettings.nStationsMax := "cStationsMax121"; // Konstante todo
#TRO228.stInSettings.nStorageThreshold := "cNoPositionsBlock2"; //Konstante todo
#TRO228.stInSettings.nNoOfLines := 19;
END_REGION
REGION Pin Query / "Zappler"
#TRO228.stInSensorReference := "DB_Inputs".Sensors["cInBG3481"];
END_REGION
REGION Barcode Reader (BX2122)
#TRO228.stInBarcodeReader.Settings.nStation := 121; // todo Konstante
#TRO228.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO228.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO228.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2122"].xInCamTriggerReady := "bx2122-TriggerReady";
#arCognexInterface["cScannerBX2122"].xInCamTriggerAck := "bx2122-TriggerAck";
#arCognexInterface["cScannerBX2122"].xInCamResultsAvailable := "bx2122-Results Available";
#arCognexInterface["cScannerBX2122"].xInCamGeneralFault := "bx2122-General Fault";
#arCognexInterface["cScannerBX2122"].hwInCamInspectionResults := "=A01+UH02-BX2122~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO228.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3480"];
#TRO228.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO228.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO228.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam1";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3750"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam2";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3751"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam3";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3752"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam4";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3753"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam5";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3754"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam6";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3755"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam7";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3756"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam8";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3757"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam9";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3760"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam10";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3761"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam11";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3762"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam12";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3763"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam13";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3764"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam14";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3765"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam15";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3766"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam16";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3767"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam17";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3770"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam18";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3771"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO228.arInSep[#nActNo].stSettings.nJamLength := "cStorage121ExitJam19";
#TRO228.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3772"];
#TRO228.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO228.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO228.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION Unloading Station Settings
#TRO228.xInQuitLocal := "SF0051";
#TRO228.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3510"];
#TRO228.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3511"];
#TRO228.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3512"];
#TRO228.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3513"];
#TRO228.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3514"];
#TRO228.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3515"];
#TRO228.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3516"];
#TRO228.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3517"];
#TRO228.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3520"];
#TRO228.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3521"];
#TRO228.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3522"];
#TRO228.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3523"];
#TRO228.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3524"];
#TRO228.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3525"];
#TRO228.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3526"];
#TRO228.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3527"];
#TRO228.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3530"];
#TRO228.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG3531"];
#TRO228.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG3532"];
END_REGION
REGION Aufruf: TRO228
#TRO228.stInPriorityManager.xReleaseOk := TRUE;
#TRO228(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
nInTestTarget := "IBN".nTestTarget121,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO228,
xInConveyorRunIn := #fbSortConv1201.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1203.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
arInOutStorageLines := "DB_Storage1.2.1".arLine,
arInOutJamEntr := "DB_JamArea1201".stJam1201_2.arCarrier,
stInOutJamEntr := "DB_JamArea1201".stJam1201_2.stData,
arInOutJamExit := "DB_JamArea1203".stJam1203_1.arCarrier,
stInOutJamExit := "DB_JamArea1203".stJam1203_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO228,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[5],
xOutSeparatorPin => "MB3480",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX2122"],
stConveyorStations:="DB_ConveyorStations".stConveyorStations121);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO228.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO228.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1201".stJam1201_2.arCarrier[1]);
END_REGION
REGION Barcode Reader OUT
"bx2122-TriggerEnable" := #arCognexInterface["cScannerBX2122"].xOutCamTriggerEnable;
"bx2122-Trigger" := #arCognexInterface["cScannerBX2122"].xOutCamTrigger;
"bx2122-ResultsAck" := #arCognexInterface["cScannerBX2122"].xOutCamResultsAck;
END_REGION
REGION Separator Store OUT
"MB3750" := #TRO228.arOutSeparatorStore[1];
"MB3751" := #TRO228.arOutSeparatorStore[2];
"MB3752" := #TRO228.arOutSeparatorStore[3];
"MB3753" := #TRO228.arOutSeparatorStore[4];
"MB3754" := #TRO228.arOutSeparatorStore[5];
"MB3755" := #TRO228.arOutSeparatorStore[6];
"MB3756" := #TRO228.arOutSeparatorStore[7];
"MB3757" := #TRO228.arOutSeparatorStore[8];
"MB3760" := #TRO228.arOutSeparatorStore[9];
"MB3761" := #TRO228.arOutSeparatorStore[10];
"MB3762" := #TRO228.arOutSeparatorStore[11];
"MB3763" := #TRO228.arOutSeparatorStore[12];
"MB3764" := #TRO228.arOutSeparatorStore[13];
"MB3765" := #TRO228.arOutSeparatorStore[14];
"MB3766" := #TRO228.arOutSeparatorStore[15];
"MB3767" := #TRO228.arOutSeparatorStore[16];
"MB3770" := #TRO228.arOutSeparatorStore[17];
"MB3771" := #TRO228.arOutSeparatorStore[18];
"MB3772" := #TRO228.arOutSeparatorStore[19];
END_REGION
REGION Unloading Stations Out
"MB3510" := #TRO228.arOutSwitch[1];
"MB3511" := #TRO228.arOutSwitch[2];
"MB3512" := #TRO228.arOutSwitch[3];
"MB3513" := #TRO228.arOutSwitch[4];
"MB3514" := #TRO228.arOutSwitch[5];
"MB3515" := #TRO228.arOutSwitch[6];
"MB3516" := #TRO228.arOutSwitch[7];
"MB3517" := #TRO228.arOutSwitch[8];
"MB3520" := #TRO228.arOutSwitch[9];
"MB3521" := #TRO228.arOutSwitch[10];
"MB3522" := #TRO228.arOutSwitch[11];
"MB3523" := #TRO228.arOutSwitch[12];
"MB3524" := #TRO228.arOutSwitch[13];
"MB3525" := #TRO228.arOutSwitch[14];
"MB3526" := #TRO228.arOutSwitch[15];
"MB3527" := #TRO228.arOutSwitch[16];
"MB3530" := #TRO228.arOutSwitch[17];
"MB3531" := #TRO228.arOutSwitch[18];
"MB3532" := #TRO228.arOutSwitch[19];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 19 DO
IF #TRO228.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO228.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest12100" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.2.2 (TRO231)
REGION Encoder Settings
#TRO231.stInEncoderParameter.nPosActDif := #fbEncoderGF2202.nOutPosActDif;
#TRO231.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2202.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO231.stInSettings.nDestGeneral := "cDest12200";
#TRO231.stInSettings.nConvStations := "cHooksSorterMaxPin122"; //Konstante todo
#TRO231.stInSettings.nStationsMax := "cStationsMax122"; // Konstante todo
#TRO231.stInSettings.nStorageThreshold := "cNoPositionsBlock2"; //Konstante todo
#TRO231.stInSettings.nNoOfLines := 17;
END_REGION
REGION Pin Query / "Zappler"
#TRO231.stInSensorReference := "DB_Inputs".Sensors["cInBG3541"];
END_REGION
REGION Barcode Reader (BX2123)
#TRO231.stInBarcodeReader.Settings.nStation := 122; // todo Konstante
#TRO231.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO231.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO231.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2123"].xInCamTriggerReady := "bx2123-TriggerReady";
#arCognexInterface["cScannerBX2123"].xInCamTriggerAck := "bx2123-TriggerAck";
#arCognexInterface["cScannerBX2123"].xInCamResultsAvailable := "bx2123-Results Available";
#arCognexInterface["cScannerBX2123"].xInCamGeneralFault := "bx2123-General Fault";
#arCognexInterface["cScannerBX2123"].hwInCamInspectionResults := "=A01+UH02-BX2123~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO231.stInSeparatorPin.stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO231.stInSeparatorPin.stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO231.stInSeparatorPin.stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO231.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3540"];
#TRO231.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO231.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO231.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam1";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3810"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam2";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3811"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam3";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3812"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam4";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3813"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam5";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3814"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam6";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3815"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam7";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3816"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam8";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3817"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam9";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3820"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam10";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3821"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam11";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3822"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam12";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3823"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam13";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3824"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam14";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3825"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam15";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3826"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam16";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3827"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO231.arInSep[#nActNo].stSettings.nJamLength := "cStorage122ExitJam17";
#TRO231.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3830"];
#TRO231.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO231.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO231.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO231.xInQuitLocal := "SF0053";
#TRO231.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3570"];
#TRO231.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3571"];
#TRO231.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3572"];
#TRO231.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3573"];
#TRO231.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3574"];
#TRO231.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3575"];
#TRO231.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3576"];
#TRO231.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3577"];
#TRO231.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3580"];
#TRO231.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3581"];
#TRO231.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3582"];
#TRO231.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3583"];
#TRO231.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3584"];
#TRO231.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3585"];
#TRO231.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3586"];
#TRO231.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3587"];
#TRO231.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3590"];
END_REGION
REGION Aufruf: TRO231
#TRO231.stInPriorityManager.xReleaseOk := TRUE;
#TRO231(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
nInTestTarget := "IBN".nTestTarget122,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO231,
xInConveyorRunIn := #fbSortConv1201.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1203.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
arInOutStorageLines := "DB_Storage1.2.2".arLine,
arInOutJamEntr := "DB_JamArea1201".stJam1201_1.arCarrier,
stInOutJamEntr := "DB_JamArea1201".stJam1201_1.stData,
arInOutJamExit := "DB_JamArea1203".stJam1203_2.arCarrier,
stInOutJamExit := "DB_JamArea1203".stJam1203_2.stData,
arInOutJamBypass := "DB_JamArea1201".stJam1201_2.arCarrier,
stInOutJamBypass := "DB_JamArea1201".stJam1201_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO231,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[6],
xOutSeparatorPin => "MB3540",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX2123"],
stConveyorStations:="DB_ConveyorStations".stConveyorStations122);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO231.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO231.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1201".stJam1201_1.arCarrier[1]);
END_REGION
REGION Barcode-Reader OUT
"bx2123-TriggerEnable" := #arCognexInterface["cScannerBX2123"].xOutCamTriggerEnable;
"bx2123-Trigger" := #arCognexInterface["cScannerBX2123"].xOutCamTrigger;
"bx2123-ResultsAck" := #arCognexInterface["cScannerBX2123"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3810" := #TRO231.arOutSeparatorStore[1];
"MB3811" := #TRO231.arOutSeparatorStore[2];
"MB3812" := #TRO231.arOutSeparatorStore[3];
"MB3813" := #TRO231.arOutSeparatorStore[4];
"MB3814" := #TRO231.arOutSeparatorStore[5];
"MB3815" := #TRO231.arOutSeparatorStore[6];
"MB3816" := #TRO231.arOutSeparatorStore[7];
"MB3817" := #TRO231.arOutSeparatorStore[8];
"MB3820" := #TRO231.arOutSeparatorStore[9];
"MB3821" := #TRO231.arOutSeparatorStore[10];
"MB3822" := #TRO231.arOutSeparatorStore[11];
"MB3823" := #TRO231.arOutSeparatorStore[12];
"MB3824" := #TRO231.arOutSeparatorStore[13];
"MB3825" := #TRO231.arOutSeparatorStore[14];
"MB3826" := #TRO231.arOutSeparatorStore[15];
"MB3827" := #TRO231.arOutSeparatorStore[16];
"MB3830" := #TRO231.arOutSeparatorStore[17];
END_REGION
REGION Unloading Stations Out
"MB3570" := #TRO231.arOutSwitch[1];
"MB3571" := #TRO231.arOutSwitch[2];
"MB3572" := #TRO231.arOutSwitch[3];
"MB3573" := #TRO231.arOutSwitch[4];
"MB3574" := #TRO231.arOutSwitch[5];
"MB3575" := #TRO231.arOutSwitch[6];
"MB3576" := #TRO231.arOutSwitch[7];
"MB3577" := #TRO231.arOutSwitch[8];
"MB3580" := #TRO231.arOutSwitch[9];
"MB3581" := #TRO231.arOutSwitch[10];
"MB3582" := #TRO231.arOutSwitch[11];
"MB3583" := #TRO231.arOutSwitch[12];
"MB3584" := #TRO231.arOutSwitch[13];
"MB3585" := #TRO231.arOutSwitch[14];
"MB3586" := #TRO231.arOutSwitch[15];
"MB3587" := #TRO231.arOutSwitch[16];
"MB3590" := #TRO231.arOutSwitch[17];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 17 DO
IF #TRO231.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO231.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest12200" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.2.3 (TRO234)
REGION Encoder Settings
#TRO234.stInEncoderParameter.nPosActDif := #fbEncoderGF2203.nOutPosActDif;
#TRO234.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2203.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO234.stInSettings.nDestGeneral := "cDest12300";
#TRO234.stInSettings.nConvStations := "cHooksSorterMaxPin123"; //Konstante todo
#TRO234.stInSettings.nStationsMax := "cStationsMax123"; // Konstante todo
#TRO234.stInSettings.nStorageThreshold := "cNoPositionsBlock2"; //Konstante todo
#TRO234.stInSettings.nNoOfLines := 21;
END_REGION
REGION Pin Query / "Zappler"
#TRO234.stInSensorReference := "DB_Inputs".Sensors["cInBG3601"];
END_REGION
REGION Barcode Reader (BX2124)
#TRO234.stInBarcodeReader.Settings.nStation := 123; // todo Konstante
#TRO234.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO234.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO234.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2124"].xInCamTriggerReady := "bx2124-TriggerReady";
#arCognexInterface["cScannerBX2124"].xInCamTriggerAck := "bx2124-TriggerAck";
#arCognexInterface["cScannerBX2124"].xInCamResultsAvailable := "bx2124-Results Available";
#arCognexInterface["cScannerBX2124"].xInCamGeneralFault := "bx2124-General Fault";
#arCognexInterface["cScannerBX2124"].hwInCamInspectionResults := "=A01+UH02-BX2124~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO234.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3600"];
#TRO234.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO234.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO234.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam1";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3870"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam2";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3871"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam3";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3872"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam4";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3873"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam5";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3874"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam6";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3875"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam7";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3876"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam8";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3877"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam9";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3880"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam10";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3881"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam11";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3882"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam12";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3883"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam13";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3884"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam14";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3885"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam15";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3886"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam16";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3887"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam17";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3890"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam18";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3891"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam19";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3892"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 20
#nActNo := 20;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam10";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3893"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 21
#nActNo := 21;
#TRO234.arInSep[#nActNo].stSettings.nJamLength := "cStorage123ExitJam11";
#TRO234.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3894"];
#TRO234.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO234.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO234.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO234.xInQuitLocal := "SF0055";
#TRO234.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3630"];
#TRO234.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3631"];
#TRO234.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3632"];
#TRO234.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3633"];
#TRO234.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3634"];
#TRO234.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3635"];
#TRO234.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3636"];
#TRO234.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3637"];
#TRO234.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3640"];
#TRO234.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3641"];
#TRO234.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3642"];
#TRO234.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3643"];
#TRO234.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3644"];
#TRO234.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3645"];
#TRO234.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3646"];
#TRO234.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3647"];
#TRO234.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3650"];
#TRO234.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG3651"];
#TRO234.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG3652"];
#TRO234.arInJamSensor[20] := "DB_Inputs".Sensors["cInBG3653"];
#TRO234.arInJamSensor[21] := "DB_Inputs".Sensors["cInBG3654"];
END_REGION
REGION Aufruf: TRO234
#TRO234.stInPriorityManager.xReleaseOk := TRUE;
#TRO234(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
nInTestTarget := "IBN".nTestTarget123,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO234,
xInConveyorRunIn := #fbSortConv1202.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1204.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
arInOutStorageLines := "DB_Storage1.2.3".arLine,
arInOutJamEntr := "DB_JamArea1202".stJam1202_2.arCarrier,
stInOutJamEntr := "DB_JamArea1202".stJam1202_2.stData,
arInOutJamExit := "DB_JamArea1204".stJam1204_2.arCarrier,
stInOutJamExit := "DB_JamArea1204".stJam1204_2.stData,
arInOutJamBypass := "DB_JamArea1202".stJam1202_3.arCarrier,
stInOutJamBypass := "DB_JamArea1202".stJam1202_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO234,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[7],
xOutSeparatorPin => "MB3600",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX2124"],
stConveyorStations:="DB_ConveyorStations".stConveyorStations123);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO234.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO234.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1202".stJam1202_3.arCarrier[1]);
END_REGION
REGION Barcode Reader OUT (BX2124)
"bx2124-TriggerEnable" := #arCognexInterface["cScannerBX2124"].xOutCamTriggerEnable;
"bx2124-Trigger" := #arCognexInterface["cScannerBX2124"].xOutCamTrigger;
"bx2124-ResultsAck" := #arCognexInterface["cScannerBX2124"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3870" := #TRO234.arOutSeparatorStore[1];
"MB3871" := #TRO234.arOutSeparatorStore[2];
"MB3872" := #TRO234.arOutSeparatorStore[3];
"MB3873" := #TRO234.arOutSeparatorStore[4];
"MB3874" := #TRO234.arOutSeparatorStore[5];
"MB3875" := #TRO234.arOutSeparatorStore[6];
"MB3876" := #TRO234.arOutSeparatorStore[7];
"MB3877" := #TRO234.arOutSeparatorStore[8];
"MB3880" := #TRO234.arOutSeparatorStore[9];
"MB3881" := #TRO234.arOutSeparatorStore[10];
"MB3882" := #TRO234.arOutSeparatorStore[11];
"MB3883" := #TRO234.arOutSeparatorStore[12];
"MB3884" := #TRO234.arOutSeparatorStore[13];
"MB3885" := #TRO234.arOutSeparatorStore[14];
"MB3886" := #TRO234.arOutSeparatorStore[15];
"MB3887" := #TRO234.arOutSeparatorStore[16];
"MB3890" := #TRO234.arOutSeparatorStore[17];
"MB3891" := #TRO234.arOutSeparatorStore[18];
"MB3892" := #TRO234.arOutSeparatorStore[19];
"MB3893" := #TRO234.arOutSeparatorStore[20];
"MB3894" := #TRO234.arOutSeparatorStore[21];
END_REGION
REGION Unloading Stations Out
"MB3630" := #TRO234.arOutSwitch[1];
"MB3631" := #TRO234.arOutSwitch[2];
"MB3632" := #TRO234.arOutSwitch[3];
"MB3633" := #TRO234.arOutSwitch[4];
"MB3634" := #TRO234.arOutSwitch[5];
"MB3635" := #TRO234.arOutSwitch[6];
"MB3636" := #TRO234.arOutSwitch[7];
"MB3637" := #TRO234.arOutSwitch[8];
"MB3640" := #TRO234.arOutSwitch[9];
"MB3641" := #TRO234.arOutSwitch[10];
"MB3642" := #TRO234.arOutSwitch[11];
"MB3643" := #TRO234.arOutSwitch[12];
"MB3644" := #TRO234.arOutSwitch[13];
"MB3645" := #TRO234.arOutSwitch[14];
"MB3646" := #TRO234.arOutSwitch[15];
"MB3647" := #TRO234.arOutSwitch[16];
"MB3650" := #TRO234.arOutSwitch[17];
"MB3651" := #TRO234.arOutSwitch[18];
"MB3652" := #TRO234.arOutSwitch[19];
"MB3653" := #TRO234.arOutSwitch[20];
"MB3654" := #TRO234.arOutSwitch[21];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 21 DO
IF #TRO234.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO234.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest12300" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.2.4 (TRO237)
REGION Encoder Settings
#TRO237.stInEncoderParameter.nPosActDif := #fbEncoderGF2203.nOutPosActDif;
#TRO237.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2203.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO237.stInSettings.nDestGeneral := "cDest12400";
#TRO237.stInSettings.nConvStations := "cHooksSorterMaxPin124"; //Konstante todo
#TRO237.stInSettings.nStationsMax := "cStationsMax124"; // Konstante todo
#TRO237.stInSettings.nStorageThreshold := "cNoPositionsBlock2"; //Konstante todo
#TRO237.stInSettings.nNoOfLines := 13;
END_REGION
REGION Pin Query / "Zappler"
#TRO237.stInSensorReference := "DB_Inputs".Sensors["cInBG3661"];
END_REGION
REGION Barcode Reader (BX2125)
#TRO237.stInBarcodeReader.Settings.nStation := 124; // todo Konstante
#TRO237.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO237.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO237.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2125"].xInCamTriggerReady := "bx2125-TriggerReady";
#arCognexInterface["cScannerBX2125"].xInCamTriggerAck := "bx2125-TriggerAck";
#arCognexInterface["cScannerBX2125"].xInCamResultsAvailable := "bx2125-Results Available";
#arCognexInterface["cScannerBX2125"].xInCamGeneralFault := "bx2125-General Fault";
#arCognexInterface["cScannerBX2125"].hwInCamInspectionResults := "=A01+UH02-BX2125~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO237.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3660"];
#TRO237.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO237.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO237.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam1";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3930"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam2";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3931"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam3";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3932"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam4";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3933"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam5";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3934"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam6";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3935"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam7";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3936"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam8";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3937"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam9";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3940"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam10";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3941"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam11";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3942"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam12";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3943"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO237.arInSep[#nActNo].stSettings.nJamLength := "cStorage124ExitJam13";
#TRO237.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3944"];
#TRO237.arInSep[#nActNo].stSettings.tHandlingTime := T#300ms;
#TRO237.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO237.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO237.xInQuitLocal := "SF0057";
#TRO237.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3690"];
#TRO237.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3691"];
#TRO237.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3692"];
#TRO237.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3693"];
#TRO237.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3694"];
#TRO237.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3695"];
#TRO237.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3696"];
#TRO237.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3697"];
#TRO237.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3700"];
#TRO237.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3701"];
#TRO237.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3702"];
#TRO237.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3703"];
#TRO237.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3704"];
END_REGION
REGION Aufruf: TRO237
#TRO237.stInPriorityManager.xReleaseOk := TRUE;
#TRO237(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
nInTestTarget := "IBN".nTestTarget124,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO237,
xInConveyorRunIn := #fbSortConv1202.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1204.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
arInOutStorageLines := "DB_Storage1.2.4".arLine,
arInOutJamEntr := "DB_JamArea1202".stJam1202_3.arCarrier,
stInOutJamEntr := "DB_JamArea1202".stJam1202_3.stData,
arInOutJamExit := "DB_JamArea1204".stJam1204_1.arCarrier,
stInOutJamExit := "DB_JamArea1204".stJam1204_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO237,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[8],
xOutSeparatorPin => "MB3660",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX2125"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations124);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO237.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO237.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1202".stJam1202_3.arCarrier[1]);
END_REGION
REGION Barcode Reader OUT (BX2125)
"bx2125-TriggerEnable" := #arCognexInterface["cScannerBX2125"].xOutCamTriggerEnable;
"bx2125-Trigger" := #arCognexInterface["cScannerBX2125"].xOutCamTrigger;
"bx2125-ResultsAck" := #arCognexInterface["cScannerBX2125"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3930" := #TRO237.arOutSeparatorStore[1];
"MB3931" := #TRO237.arOutSeparatorStore[2];
"MB3932" := #TRO237.arOutSeparatorStore[3];
"MB3933" := #TRO237.arOutSeparatorStore[4];
"MB3934" := #TRO237.arOutSeparatorStore[5];
"MB3935" := #TRO237.arOutSeparatorStore[6];
"MB3936" := #TRO237.arOutSeparatorStore[7];
"MB3937" := #TRO237.arOutSeparatorStore[8];
"MB3940" := #TRO237.arOutSeparatorStore[9];
"MB3941" := #TRO237.arOutSeparatorStore[10];
"MB3942" := #TRO237.arOutSeparatorStore[11];
"MB3943" := #TRO237.arOutSeparatorStore[12];
"MB3944" := #TRO237.arOutSeparatorStore[13];
END_REGION
REGION Unloading Stations Out
"MB3690" := #TRO237.arOutSwitch[1];
"MB3691" := #TRO237.arOutSwitch[2];
"MB3692" := #TRO237.arOutSwitch[3];
"MB3693" := #TRO237.arOutSwitch[4];
"MB3694" := #TRO237.arOutSwitch[5];
"MB3695" := #TRO237.arOutSwitch[6];
"MB3696" := #TRO237.arOutSwitch[7];
"MB3697" := #TRO237.arOutSwitch[8];
"MB3700" := #TRO237.arOutSwitch[9];
"MB3701" := #TRO237.arOutSwitch[10];
"MB3702" := #TRO237.arOutSwitch[11];
"MB3703" := #TRO237.arOutSwitch[12];
"MB3704" := #TRO237.arOutSwitch[13];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 13 DO
IF #TRO237.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO237.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest12400" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
END_REGION
REGION SECTION 1.3
REGION BLOCK 1.3.1 (TRO 248)
REGION Encoder Settings
#TRO248.stInEncoderParameter.nPosActDif := #fbEncoderGF2204.nOutPosActDif;
#TRO248.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2204.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO248.stInSettings.nDestGeneral := "cDest13100";
#TRO248.stInSettings.nConvStations := "cHooksSorterMaxPin131"; //Konstante todo
#TRO248.stInSettings.nStationsMax := "cStationsMax131"; // Konstante todo
#TRO248.stInSettings.nStorageThreshold := "cNoPositionsBlock3"; //Konstante todo
#TRO248.stInSettings.nNoOfLines := 19;
END_REGION
REGION Pin Query / "Zappler"
#TRO248.stInSensorReference := "DB_Inputs".Sensors["cInBG4201"];
END_REGION
REGION Barcode Reader In (BX2131)
#TRO248.stInBarcodeReader.Settings.nStation := 131; // todo Konstante
#TRO248.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO248.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO248.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2131"].xInCamTriggerReady := "bx2131-TriggerReady";
#arCognexInterface["cScannerBX2131"].xInCamTriggerAck := "bx2131-TriggerAck";
#arCognexInterface["cScannerBX2131"].xInCamResultsAvailable := "bx2131-Results Available";
#arCognexInterface["cScannerBX2131"].xInCamGeneralFault := "bx2131-General Fault";
#arCognexInterface["cScannerBX2131"].hwInCamInspectionResults := "=A01+UC023-BX2131~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO248.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG4200"];
#TRO248.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO248.stInSeparatorPin.stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := 4;//"cStorage131ExitJam1";
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3990"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam2";
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3991"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam3";
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3992"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam4";
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3993"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam5";
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3994"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam6";
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3995"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam7";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3996"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam8";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3997"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam9";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4000"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam10";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4001"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam11";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4002"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam12";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4003"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam13";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4004"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam14";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4005"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam15";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4006"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam16";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4007"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam17";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4010"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam18";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4011"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO248.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO248.arInSep[#nActNo].stSettings.nJamLength := "cStorage131ExitJam19";
#TRO248.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO248.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO248.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4012"];
#TRO248.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO248.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO248.xInQuitLocal := "SF0241" OR "SF0237";
#TRO248.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG4230"];
#TRO248.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG4231"];
#TRO248.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG4232"];
#TRO248.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG4233"];
#TRO248.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG4234"];
#TRO248.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG4235"];
#TRO248.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG4236"];
#TRO248.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG4237"];
#TRO248.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG4240"];
#TRO248.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG4241"];
#TRO248.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG4242"];
#TRO248.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG4243"];
#TRO248.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG4244"];
#TRO248.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG4245"];
#TRO248.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG4246"];
#TRO248.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG4247"];
#TRO248.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG4250"];
#TRO248.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG4251"];
#TRO248.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG4252"];
END_REGION
REGION Aufruf: TRO248
#TRO248.stInPriorityManager.xReleaseOk := TRUE;
#TRO248(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
nInTestTarget := "IBN".nTestTarget131,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO248,
xInConveyorRunIn := #fbSortConv1303.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1301.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
arInOutStorageLines := "DB_Storage1.3.1".arLine,
arInOutJamEntr := "DB_JamArea1303".stJam1303_2.arCarrier,
stInOutJamEntr := "DB_JamArea1303".stJam1303_2.stData,
arInOutJamExit := "DB_JamArea1301".stJam1301_1.arCarrier,
stInOutJamExit := "DB_JamArea1301".stJam1301_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO248,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[9],
xOutSeparatorPin => "MB4200",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO248"],
stCognexInterfacePin := #arCognexInterface["cScannerBX2131"],
stConveyorStations:="DB_ConveyorStations".stConveyorStations131);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO248.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO248.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1303".stJam1303_2.arCarrier[1]);
END_REGION ;
REGION Barcode Reader Out (BX2131)
"bx2131-TriggerEnable" := #arCognexInterface["cScannerBX2131"].xOutCamTriggerEnable;
"bx2131-Trigger" := #arCognexInterface["cScannerBX2131"].xOutCamTrigger;
"bx2131-ResultsAck" := #arCognexInterface["cScannerBX2131"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3990" := #TRO248.arOutSeparatorStore[1];
"MB3991" := #TRO248.arOutSeparatorStore[2];
"MB3992" := #TRO248.arOutSeparatorStore[3];
"MB3993" := #TRO248.arOutSeparatorStore[4];
"MB3994" := #TRO248.arOutSeparatorStore[5];
"MB3995" := #TRO248.arOutSeparatorStore[6];
"MB3996" := #TRO248.arOutSeparatorStore[7];
"MB3997" := #TRO248.arOutSeparatorStore[8];
"MB4000" := #TRO248.arOutSeparatorStore[9];
"MB4001" := #TRO248.arOutSeparatorStore[10];
"MB4002" := #TRO248.arOutSeparatorStore[11];
"MB4003" := #TRO248.arOutSeparatorStore[12];
"MB4004" := #TRO248.arOutSeparatorStore[13];
"MB4005" := #TRO248.arOutSeparatorStore[14];
"MB4006" := #TRO248.arOutSeparatorStore[15];
"MB4007" := #TRO248.arOutSeparatorStore[16];
"MB4010" := #TRO248.arOutSeparatorStore[17];
"MB4011" := #TRO248.arOutSeparatorStore[18];
"MB4012" := #TRO248.arOutSeparatorStore[19];
END_REGION
REGION Unloading Stations Out
"MB4230" := #TRO248.arOutSwitch[1];
"MB4231" := #TRO248.arOutSwitch[2];
"MB4232" := #TRO248.arOutSwitch[3];
"MB4233" := #TRO248.arOutSwitch[4];
"MB4234" := #TRO248.arOutSwitch[5];
"MB4235" := #TRO248.arOutSwitch[6];
"MB4236" := #TRO248.arOutSwitch[7];
"MB4237" := #TRO248.arOutSwitch[8];
"MB4240" := #TRO248.arOutSwitch[9];
"MB4241" := #TRO248.arOutSwitch[10];
"MB4242" := #TRO248.arOutSwitch[11];
"MB4243" := #TRO248.arOutSwitch[12];
"MB4244" := #TRO248.arOutSwitch[13];
"MB4245" := #TRO248.arOutSwitch[14];
"MB4246" := #TRO248.arOutSwitch[15];
"MB4247" := #TRO248.arOutSwitch[16];
"MB4250" := #TRO248.arOutSwitch[17];
"MB4251" := #TRO248.arOutSwitch[18];
"MB4252" := #TRO248.arOutSwitch[19];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 19 DO
IF #TRO248.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO248.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest13100" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.3.2 (TRO 251)
REGION Encoder Settings
#TRO251.stInEncoderParameter.nPosActDif := #fbEncoderGF2204.nOutPosActDif;
#TRO251.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2204.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO251.stInSettings.nDestGeneral := "cDest13200";
#TRO251.stInSettings.nConvStations := "cHooksSorterMaxPin132"; //Konstante todo
#TRO251.stInSettings.nStationsMax := "cStationsMax132"; // Konstante todo
#TRO251.stInSettings.nStorageThreshold := "cNoPositionsBlock3"; //Konstante todo
#TRO251.stInSettings.nNoOfLines := 17;
END_REGION
REGION Pin Query / "Zappler"
#TRO251.stInSensorReference := "DB_Inputs".Sensors["cInBG4261"];
END_REGION
REGION Barcode Reader IN (BX2132)
#TRO251.stInBarcodeReader.Settings.nStation := 132; // todo Konstante
#TRO251.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO251.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO251.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2132"].xInCamTriggerReady := "bx2132-TriggerReady";
#arCognexInterface["cScannerBX2132"].xInCamTriggerAck := "bx2132-TriggerAck";
#arCognexInterface["cScannerBX2132"].xInCamResultsAvailable := "bx2132-Results Available";
#arCognexInterface["cScannerBX2132"].xInCamGeneralFault := "bx2132-General Fault";
#arCognexInterface["cScannerBX2132"].hwInCamInspectionResults := "=A01+UC023-BX2132~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO251.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG4260"];
#TRO251.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO251.stInSeparatorPin.stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam1";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4050"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam2";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4051"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam3";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4052"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam4";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4053"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam5";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4054"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam6";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4055"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam7";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4056"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam8";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4057"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam9";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4060"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam10";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4061"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam11";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4062"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam12";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4063"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam13";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4064"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam14";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4065"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam15";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4066"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam16";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4067"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO251.arInSep[#nActNo].stSettings.nJamLength := "cStorage132ExitJam17";
#TRO251.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4070"];
#TRO251.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO251.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO251.xInQuitLocal := "SF0243" OR "SF0237";
#TRO251.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG4290"];
#TRO251.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG4291"];
#TRO251.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG4292"];
#TRO251.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG4293"];
#TRO251.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG4294"];
#TRO251.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG4295"];
#TRO251.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG4296"];
#TRO251.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG4297"];
#TRO251.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG4300"];
#TRO251.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG4301"];
#TRO251.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG4302"];
#TRO251.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG4303"];
#TRO251.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG4304"];
#TRO251.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG4305"];
#TRO251.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG4306"];
#TRO251.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG4307"];
#TRO251.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG4310"];
END_REGION ;
REGION Aufruf: TRO251
#TRO251.stInPriorityManager.xReleaseOk := True;
#TRO251(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
nInTestTarget := "IBN".nTestTarget132,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO251,
xInConveyorRunIn := #fbSortConv1303.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1301.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
arInOutStorageLines := "DB_Storage1.3.2".arLine,
arInOutJamEntr := "DB_JamArea1303".stJam1303_1.arCarrier,
stInOutJamEntr := "DB_JamArea1303".stJam1303_1.stData,
arInOutJamExit := "DB_JamArea1301".stJam1301_2.arCarrier,
stInOutJamExit := "DB_JamArea1301".stJam1301_2.stData,
arInOutJamBypass := "DB_JamArea1303".stJam1303_2.arCarrier,
stInOutJamBypass := "DB_JamArea1303".stJam1303_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO251,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[10],
stCognexInterfacePin := #arCognexInterface["cScannerBX2132"],
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO251"],
xOutSeparatorPin => "MB4260",
stConveyorStations:="DB_ConveyorStations".stConveyorStations132);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO251.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO251.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1303".stJam1303_1.arCarrier[1]);
END_REGION ;
REGION Barcode Reader Out (BX2132)
"bx2132-TriggerEnable" := #arCognexInterface["cScannerBX2132"].xOutCamTriggerEnable;
"bx2132-Trigger" := #arCognexInterface["cScannerBX2132"].xOutCamTrigger;
"bx2132-ResultsAck" := #arCognexInterface["cScannerBX2132"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB4050" := #TRO251.arOutSeparatorStore[1];
"MB4051" := #TRO251.arOutSeparatorStore[2];
"MB4052" := #TRO251.arOutSeparatorStore[3];
"MB4053" := #TRO251.arOutSeparatorStore[4];
"MB4054" := #TRO251.arOutSeparatorStore[5];
"MB4055" := #TRO251.arOutSeparatorStore[6];
"MB4056" := #TRO251.arOutSeparatorStore[7];
"MB4057" := #TRO251.arOutSeparatorStore[8];
"MB4060" := #TRO251.arOutSeparatorStore[9];
"MB4061" := #TRO251.arOutSeparatorStore[10];
"MB4062" := #TRO251.arOutSeparatorStore[11];
"MB4063" := #TRO251.arOutSeparatorStore[12];
"MB4064" := #TRO251.arOutSeparatorStore[13];
"MB4065" := #TRO251.arOutSeparatorStore[14];
"MB4066" := #TRO251.arOutSeparatorStore[15];
"MB4067" := #TRO251.arOutSeparatorStore[16];
"MB4070" := #TRO251.arOutSeparatorStore[17];
END_REGION
REGION Unloading Stations Out
"MB4290" := #TRO251.arOutSwitch[1];
"MB4291" := #TRO251.arOutSwitch[2];
"MB4292" := #TRO251.arOutSwitch[3];
"MB4293" := #TRO251.arOutSwitch[4];
"MB4294" := #TRO251.arOutSwitch[5];
"MB4295" := #TRO251.arOutSwitch[6];
"MB4296" := #TRO251.arOutSwitch[7];
"MB4297" := #TRO251.arOutSwitch[8];
"MB4300" := #TRO251.arOutSwitch[9];
"MB4301" := #TRO251.arOutSwitch[10];
"MB4302" := #TRO251.arOutSwitch[11];
"MB4303" := #TRO251.arOutSwitch[12];
"MB4304" := #TRO251.arOutSwitch[13];
"MB4305" := #TRO251.arOutSwitch[14];
"MB4306" := #TRO251.arOutSwitch[15];
"MB4307" := #TRO251.arOutSwitch[16];
"MB4310" := #TRO251.arOutSwitch[17];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 17 DO
IF #TRO251.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO251.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest13200" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.3.3 (TRO 254)
REGION Encoder Settings
#TRO254.stInEncoderParameter.nPosActDif := #fbEncoderGF2205.nOutPosActDif;
#TRO254.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2205.nPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO254.stInSettings.nDestGeneral := "cDest13300";
#TRO254.stInSettings.nConvStations := "cHooksSorterMaxPin133"; //Konstante todo
#TRO254.stInSettings.nStationsMax := "cStationsMax133"; // Konstante todo
#TRO254.stInSettings.nStorageThreshold := "cNoPositionsBlock3"; //Konstante todo
#TRO254.stInSettings.nNoOfLines := 21;
END_REGION
REGION Pin Query / "Zappler"
#TRO254.stInSensorReference := "DB_Inputs".Sensors["cInBG4321"];
END_REGION
REGION Barcode Reader In (BX2133)
#TRO254.stInBarcodeReader.Settings.nStation := 133; // todo Konstante
#TRO254.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO254.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO254.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2133"].xInCamTriggerReady := "bx2133-TriggerReady";
#arCognexInterface["cScannerBX2133"].xInCamTriggerAck := "bx2133-TriggerAck";
#arCognexInterface["cScannerBX2133"].xInCamResultsAvailable := "bx2133-Results Available";
#arCognexInterface["cScannerBX2133"].xInCamGeneralFault := "bx2133-General Fault";
#arCognexInterface["cScannerBX2133"].hwInCamInspectionResults := "=A01+UC023-BX2133~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO254.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG4320"];
#TRO254.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO254.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO254.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam1";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4110"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam2";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4111"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam3";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4112"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam4";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4113"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam5";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4114"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam6";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4115"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam7";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4116"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam8";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4117"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam9";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4120"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam10";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4121"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam11";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4122"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam12";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4123"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam13";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4124"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam14";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4125"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam15";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4126"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam16";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4127"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam17";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4130"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam18";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4131"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam19";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4132"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 20
#nActNo := 20;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam10";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4133"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 21
#nActNo := 21;
#TRO254.arInSep[#nActNo].stSettings.nJamLength := "cStorage133ExitJam11";
#TRO254.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4134"];
#TRO254.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO254.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO254.xInQuitLocal := "SF0245" OR "SF0237";
#TRO254.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG4350"];
#TRO254.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG4351"];
#TRO254.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG4352"];
#TRO254.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG4353"];
#TRO254.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG4354"];
#TRO254.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG4355"];
#TRO254.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG4356"];
#TRO254.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG4357"];
#TRO254.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG4360"];
#TRO254.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG4361"];
#TRO254.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG4362"];
#TRO254.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG4363"];
#TRO254.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG4364"];
#TRO254.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG4365"];
#TRO254.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG4366"];
#TRO254.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG4367"];
#TRO254.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG4370"];
#TRO254.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG4371"];
#TRO254.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG4372"];
#TRO254.arInJamSensor[20] := "DB_Inputs".Sensors["cInBG4373"];
#TRO254.arInJamSensor[21] := "DB_Inputs".Sensors["cInBG4374"];
END_REGION ;
REGION Aufruf: TRO254
#TRO254.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO254(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
nInTestTarget := "IBN".nTestTarget133,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO254,
xInConveyorRunIn := #fbSortConv1304.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1302.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
arInOutStorageLines := "DB_Storage1.3.3".arLine,
arInOutJamEntr := "DB_JamArea1304".stJam1304_2.arCarrier,
stInOutJamEntr := "DB_JamArea1304".stJam1304_2.stData,
arInOutJamExit := "DB_JamArea1302".stJam1302_2.arCarrier,
stInOutJamExit := "DB_JamArea1302".stJam1302_2.stData,
arInOutJamBypass := "DB_JamArea1304".stJam1304_3.arCarrier,
stInOutJamBypass := "DB_JamArea1304".stJam1304_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO254,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[11],
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO254"],
xOutSeparatorPin => "MB4320",
stCognexInterfacePin := #arCognexInterface["cScannerBX2133"],
stConveyorStations:="DB_ConveyorStations".stConveyorStations133);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO254.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO254.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1304".stJam1304_2.arCarrier[1]);
END_REGION
REGION Barcode Reader Out (BX2133)
"bx2133-TriggerEnable" := #arCognexInterface["cScannerBX2133"].xOutCamTriggerEnable;
"bx2133-Trigger" := #arCognexInterface["cScannerBX2133"].xOutCamTrigger;
"bx2133-ResultsAck" := #arCognexInterface["cScannerBX2133"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB4110" := #TRO254.arOutSeparatorStore[1];
"MB4111" := #TRO254.arOutSeparatorStore[2];
"MB4112" := #TRO254.arOutSeparatorStore[3];
"MB4113" := #TRO254.arOutSeparatorStore[4];
"MB4114" := #TRO254.arOutSeparatorStore[5];
"MB4115" := #TRO254.arOutSeparatorStore[6];
"MB4116" := #TRO254.arOutSeparatorStore[7];
"MB4117" := #TRO254.arOutSeparatorStore[8];
"MB4120" := #TRO254.arOutSeparatorStore[9];
"MB4121" := #TRO254.arOutSeparatorStore[10];
"MB4122" := #TRO254.arOutSeparatorStore[11];
"MB4123" := #TRO254.arOutSeparatorStore[12];
"MB4124" := #TRO254.arOutSeparatorStore[13];
"MB4125" := #TRO254.arOutSeparatorStore[14];
"MB4126" := #TRO254.arOutSeparatorStore[15];
"MB4127" := #TRO254.arOutSeparatorStore[16];
"MB4130" := #TRO254.arOutSeparatorStore[17];
"MB4131" := #TRO254.arOutSeparatorStore[18];
"MB4132" := #TRO254.arOutSeparatorStore[19];
"MB4133" := #TRO254.arOutSeparatorStore[20];
"MB4134" := #TRO254.arOutSeparatorStore[21];
END_REGION
REGION Unlaoding Stations Out
"MB4350" := #TRO254.arOutSwitch[1];
"MB4351" := #TRO254.arOutSwitch[2];
"MB4352" := #TRO254.arOutSwitch[3];
"MB4353" := #TRO254.arOutSwitch[4];
"MB4354" := #TRO254.arOutSwitch[5];
"MB4355" := #TRO254.arOutSwitch[6];
"MB4356" := #TRO254.arOutSwitch[7];
"MB4357" := #TRO254.arOutSwitch[8];
"MB4360" := #TRO254.arOutSwitch[9];
"MB4361" := #TRO254.arOutSwitch[10];
"MB4362" := #TRO254.arOutSwitch[11];
"MB4363" := #TRO254.arOutSwitch[12];
"MB4364" := #TRO254.arOutSwitch[13];
"MB4365" := #TRO254.arOutSwitch[14];
"MB4366" := #TRO254.arOutSwitch[15];
"MB4367" := #TRO254.arOutSwitch[16];
"MB4370" := #TRO254.arOutSwitch[17];
"MB4371" := #TRO254.arOutSwitch[18];
"MB4372" := #TRO254.arOutSwitch[19];
"MB4373" := #TRO254.arOutSwitch[20];
"MB4374" := #TRO254.arOutSwitch[21];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 21 DO
IF #TRO254.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO254.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest13300" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
REGION BLOCK 1.3.4 (TRO 257)
REGION Encoder Settings
#TRO257.stInEncoderParameter.nPosActDif := #fbEncoderGF2205.nOutPosActDif;
#TRO257.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2205.nPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO257.stInSettings.nDestGeneral := "cDest13400";
#TRO257.stInSettings.nConvStations := "cHooksSorterMaxPin134"; //Konstante todo
#TRO257.stInSettings.nStationsMax := "cStationsMax134"; // Konstante todo
#TRO257.stInSettings.nStorageThreshold := "cNoPositionsBlock3"; //Konstante todo
#TRO257.stInSettings.nNoOfLines := 13;
END_REGION
REGION Pin Query / "Zappler"
#TRO257.stInSensorReference := "DB_Inputs".Sensors["cInBG4381"];
END_REGION
REGION Barcode Reader In (BX2134)
#TRO257.stInBarcodeReader.Settings.nStation := 134; // todo Konstante
#TRO257.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO257.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO257.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2134"].xInCamTriggerReady := "bx2134-TriggerReady";
#arCognexInterface["cScannerBX2134"].xInCamTriggerAck := "bx2134-TriggerAck";
#arCognexInterface["cScannerBX2134"].xInCamResultsAvailable := "bx2134-Results Available";
#arCognexInterface["cScannerBX2134"].xInCamGeneralFault := "bx2134-General Fault";
#arCognexInterface["cScannerBX2134"].hwInCamInspectionResults := "=A01+UC023-BX2134~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO257.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG4380"];
#TRO257.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO257.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO257.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam1";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4170"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam2";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4171"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam3";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4172"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam4";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4173"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam5";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4174"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam6";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4175"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam7";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4176"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam8";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4177"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam9";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4180"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam10";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4181"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam11";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4182"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam12";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4183"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO257.arInSep[#nActNo].stSettings.nJamLength := "cStorage134ExitJam13";
#TRO257.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4184"];
#TRO257.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO257.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO257.xInQuitLocal := "SF0247" OR "SF0237";
#TRO257.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG4410"];
#TRO257.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG4411"];
#TRO257.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG4412"];
#TRO257.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG4413"];
#TRO257.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG4414"];
#TRO257.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG4415"];
#TRO257.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG4416"];
#TRO257.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG4417"];
#TRO257.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG4420"];
#TRO257.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG4421"];
#TRO257.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG4422"];
#TRO257.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG4423"];
#TRO257.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG4424"];
END_REGION
REGION Aufruf: TRO257
#TRO257.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO257(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
nInTestTarget := "IBN".nTestTarget134,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO257,
xInConveyorRunIn := #fbSortConv1304.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1302.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
arInOutStorageLines := "DB_Storage1.3.4".arLine,
arInOutJamEntr := "DB_JamArea1304".stJam1304_3.arCarrier,
stInOutJamEntr := "DB_JamArea1304".stJam1304_3.stData,
arInOutJamExit := "DB_JamArea1302".stJam1302_1.arCarrier,
stInOutJamExit := "DB_JamArea1302".stJam1302_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO257,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[12],
xOutSeparatorPin => "MB4380",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO257"],
stCognexInterfacePin := #arCognexInterface["cScannerBX2134"],
stConveyorStations:="DB_ConveyorStations".stConveyorStations134);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO257.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO257.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1304".stJam1304_3.arCarrier[1]);
END_REGION
REGION Barcode Reader Out (BX2134)
"bx2134-TriggerEnable" := #arCognexInterface["cScannerBX2134"].xOutCamTriggerEnable;
"bx2134-Trigger" := #arCognexInterface["cScannerBX2134"].xOutCamTrigger;
"bx2134-ResultsAck" := #arCognexInterface["cScannerBX2134"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB4170" := #TRO257.arOutSeparatorStore[1];
"MB4171" := #TRO257.arOutSeparatorStore[2];
"MB4172" := #TRO257.arOutSeparatorStore[3];
"MB4173" := #TRO257.arOutSeparatorStore[4];
"MB4174" := #TRO257.arOutSeparatorStore[5];
"MB4175" := #TRO257.arOutSeparatorStore[6];
"MB4176" := #TRO257.arOutSeparatorStore[7];
"MB4177" := #TRO257.arOutSeparatorStore[8];
"MB4180" := #TRO257.arOutSeparatorStore[9];
"MB4181" := #TRO257.arOutSeparatorStore[10];
"MB4182" := #TRO257.arOutSeparatorStore[11];
"MB4183" := #TRO257.arOutSeparatorStore[12];
"MB4184" := #TRO257.arOutSeparatorStore[13];
END_REGION
REGION Unloading Stations Out
"MB4410" := #TRO257.arOutSwitch[1];
"MB4411" := #TRO257.arOutSwitch[2];
"MB4412" := #TRO257.arOutSwitch[3];
"MB4413" := #TRO257.arOutSwitch[4];
"MB4414" := #TRO257.arOutSwitch[5];
"MB4415" := #TRO257.arOutSwitch[6];
"MB4416" := #TRO257.arOutSwitch[7];
"MB4417" := #TRO257.arOutSwitch[8];
"MB4420" := #TRO257.arOutSwitch[9];
"MB4421" := #TRO257.arOutSwitch[10];
"MB4422" := #TRO257.arOutSwitch[11];
"MB4423" := #TRO257.arOutSwitch[12];
"MB4424" := #TRO257.arOutSwitch[13];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 13 DO
IF #TRO257.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO257.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest13400" + #nIdxUnloading,
nReasonCode := '1',
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
END_FOR;
END_REGION
END_REGION
END_REGION
REGION TROs
REGION TRO 200 (Vario) // Eingang von Level 2
#TRO200.stInSeparator1.Settings.nSeparatorNo := "cSep200.1";
#TRO200.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO200.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO200.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO200.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO200.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO200.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO200.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO200.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3143"];
#TRO200.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO200.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO200.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3144"]; //Finger in Pos
#TRO200.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3145"]; //MT in Pos
#TRO200.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3136"]; // Conveyor full
#TRO200.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3135"]; // Jam detector
#TRO200.stInVario.Settings.xContinousEmptying := FALSE;
#TRO200.stInVario.Settings.tWaitForJog := T#400ms;
#TRO200.stInVario.Settings.tConvEmpty := T#20000ms;
#TRO200.stInVario.Settings.nCountCarrier := 1;
#TRO200.stInVario.Settings.tWaitForStop := t#3s;
#TRO200.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO200.stInSettings.xIsBorner := TRUE;
#TRO200(nInMainTroNo := "cMainTro200",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO200,
xInAutomatic := #t_Automatik_OF2,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0146",
arInOutJamEntr := "DB_JamArea1109".stJam1109_1.arCarrier,//Todo
stInOutJamEntr := "DB_JamArea1109".stJam1109_1.stData,
arInOutJamFinger := "DB_JamArea1109".stJam1109_2.arCarrier,
stInOutJamFinger := "DB_JamArea1109".stJam1109_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO200,
xOutStopper => "MB3143",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro200"],
xOutVarioMotor => "MA0146");
REGION Übernahme von Level 2
"FB_I-Device_Receive_J1109"(xInReq := "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL_1.%X0,
stInData := "IO_Device_UH03_FROM_UH01".stCarrierL2toL1[1],
xInOutAck := "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL_1.%X0);
IF "FB_I-Device_Receive_J1109".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J1109".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea1109".stJam1109_1.arCarrier);
END_IF;
END_REGION
END_REGION
REGION TRO 201 (1Sep)
#TRO201.stInSeparator1.Settings.nSeparatorNo := "cSep201.1";
#TRO201.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO201.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO201.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO201.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO201.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO201.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO201.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO201.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3134"];
#TRO201.stInSenJam2 := "DB_Inputs".Sensors["cInBG3141"];
#TRO201.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO201.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO201.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO201(nInMainTroNo := "cMainTro201",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO201,
xInCarouselRun := #fbSortConv1102.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1109".stJam1109_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1109".stJam1109_2.stData,
arInOutJamExit2 := "DB_JamArea1102".stJam1102_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1102".stJam1102_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO201,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro201"],
xOutStopper1 => "MB3134");
END_REGION
REGION TRO 202 (1Sep1Switch)+Scanner(BX2103)
#TRO202.stInSeparator1.Settings.nSeparatorNo := "cSep202.1";
#TRO202.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO202.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO202.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO202.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO202.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO202.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO202.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3137"];
#TRO202.stInSenJam2 := "DB_Inputs".Sensors["cInBG3123"];
#TRO202.stInSenJam3 := "DB_Inputs".Sensors["cInBG3063"];
#TRO202.stInSwitch1.Settings.nSwitchNo := "cSwi202.1";
#TRO202.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO202.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO202.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO202.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO202.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO202.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2103"].xInCamTriggerReady := "bx2103-TriggerReady";
#arCognexInterface["cScannerBX2103"].xInCamTriggerAck := "bx2103-TriggerAck";
#arCognexInterface["cScannerBX2103"].xInCamResultsAvailable := "bx2103-Results Available";
#arCognexInterface["cScannerBX2103"].xInCamGeneralFault := "bx2103-General Fault";
#arCognexInterface["cScannerBX2103"].hwInCamInspectionResults := "=A01+UH02-BX2103~Ergebnisse__64_Bytes_1";
#TRO202.stInSettings.xCar2NecRight := TRUE;
#TRO202.stInSettings.xCar2NecLeft := TRUE;
#TRO202.stInSettings.xPrioDir1 := TRUE;
#TRO202.stInSettings.xPrioDir2 := TRUE;
#TRO202(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO202_3.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO202_3.TroOut,
stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO202_4.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO202_4.TroOut,
nInMainTroNo := "cMainTro202",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO202,
xInCarouselRun1 := #fbSortConv1102.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv1101.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO202,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #arCognexInterface["cScannerBX2103"],
arInOutJamEntr1 := "DB_JamArea1102".stJam1102_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1102".stJam1102_1.stData,
arInOutJamExit2 := "DB_JamArea1102".stJam1102_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1102".stJam1102_2.stData,
arInOutJamExit3 := "DB_JamArea1101".stJam1101_1.arCarrier,
stInOutJamExit3 := "DB_JamArea1101".stJam1101_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro202"],
xOutStopper1 => "MB3137",
xOutSw1ExTo3 => "MB3061");
"bx2103-TriggerEnable" := #arCognexInterface["cScannerBX2103"].xOutCamTriggerEnable;
"bx2103-Trigger" := #arCognexInterface["cScannerBX2103"].xOutCamTrigger;
"bx2103-ResultsAck" := #arCognexInterface["cScannerBX2103"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO202.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO202.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1102".stJam1102_1.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi202.1",
nOutDirection => #TRO202.nInDirection,
InOutCarrier := "DB_JamArea1102".stJam1102_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 203 (1Sep1Switch) + Scanner (BX2111)
#TRO203.stInSeparator1.Settings.nSeparatorNo := "cSep203.1";
#TRO203.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO203.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO203.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO203.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO203.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO203.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO203.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3240"];
#TRO203.stInSenJam2 := "DB_Inputs".Sensors["cInBG3241"];
#TRO203.stInSwitch1.Settings.nSwitchNo := "cSwi203.1";
#TRO203.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO203.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO203.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO203.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO203.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO203.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2111"].xInCamTriggerReady := "bx2111-TriggerReady";
#arCognexInterface["cScannerBX2111"].xInCamTriggerAck := "bx2111-TriggerAck";
#arCognexInterface["cScannerBX2111"].xInCamResultsAvailable := "bx2111-Results Available";
#arCognexInterface["cScannerBX2111"].xInCamGeneralFault := "bx2111-General Fault";
#arCognexInterface["cScannerBX2111"].hwInCamInspectionResults := "=A01+UH02-BX2111~Ergebnisse__64_Bytes_1";
#TRO203.stInSettings.xCar2NecRight := FALSE;
#TRO203.stInSettings.xCar2NecLeft := FALSE;
#TRO203.stInSettings.xPrioDir1 := FALSE;
#TRO203.stInSettings.xPrioDir2 := TRUE;
// "DB_JamArea1103".stJam1103_1.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO203(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO203.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO203.TroOut,
nInMainTroNo := "cMainTro203",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO203,
xInCarouselRun1 := #fbExitConv1103.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1103.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO203,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2111"],
arInOutJamEntr1 := "DB_JamArea1103".stJam1103_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1103".stJam1103_1.stData,
arInOutJamExit2 := "DB_JamArea1105".stJam1105_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1105".stJam1105_1.stData,
arInOutJamExit3 := "DB_JamArea1103".stJam1103_2.arCarrier,
stInOutJamExit3 := "DB_JamArea1103".stJam1103_2.stData,
xOutStopper1 => "MB3240",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro203"],
xOutSw1ExTo3 => "MB3241");
"bx2111-TriggerEnable" := #arCognexInterface["cScannerBX2111"].xOutCamTriggerEnable;
"bx2111-Trigger" := #arCognexInterface["cScannerBX2111"].xOutCamTrigger;
"bx2111-ResultsAck" := #arCognexInterface["cScannerBX2111"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO203.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO203.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1103".stJam1103_1.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi203.1",
nOutDirection => #TRO203.nInDirection,
InOutCarrier := "DB_JamArea1103".stJam1103_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 204(1Sep1Switch) + Scanner(BX2112)
#TRO204.stInSeparator1.Settings.nSeparatorNo := "cSep204.1";
#TRO204.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO204.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO204.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO204.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO204.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO204.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO204.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3300"];
#TRO204.stInSenJam2 := "DB_Inputs".Sensors["cInBG3301"];
#TRO204.stInSwitch1.Settings.nSwitchNo := "cSwi204.1";
#TRO204.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO204.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO204.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO204.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO204.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO204.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2112"].xInCamTriggerReady := "bx2112-TriggerReady";
#arCognexInterface["cScannerBX2112"].xInCamTriggerAck := "bx2112-TriggerAck";
#arCognexInterface["cScannerBX2112"].xInCamResultsAvailable := "bx2112-Results Available";
#arCognexInterface["cScannerBX2112"].xInCamGeneralFault := "bx2112-General Fault";
#arCognexInterface["cScannerBX2112"].hwInCamInspectionResults := "=A01+UH02-BX2112~Ergebnisse__64_Bytes_1";
#TRO204.stInSettings.xCar2NecLeft := FALSE;
#TRO204.stInSettings.xCar2NecRight := TRUE;
#TRO204.stInSettings.xPrioDir1 := FALSE;
#TRO204.stInSettings.xPrioDir2 := TRUE;
// "DB_JamArea1103".stJam1103_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO204(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO204.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO204.TroOut,
nInMainTroNo := "cMainTro204",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO204,
xInCarouselRun1 := #fbExitConv1103.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1104.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO204,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2112"],
arInOutJamEntr1 := "DB_JamArea1103".stJam1103_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1103".stJam1103_2.stData,
arInOutJamExit2 := "DB_JamArea1106".stJam1106_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1106".stJam1106_1.stData,
arInOutJamExit3 := "DB_JamArea1104".stJam1104_3.arCarrier,
stInOutJamExit3 := "DB_JamArea1104".stJam1104_3.stData,
xOutStopper1 => "MB3300",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro204"],
xOutSw1ExTo3 => "MB3301");
"MB3306" := TRUE;
"bx2112-TriggerEnable" := #arCognexInterface["cScannerBX2112"].xOutCamTriggerEnable;
"bx2112-Trigger" := #arCognexInterface["cScannerBX2112"].xOutCamTrigger;
"bx2112-ResultsAck" := #arCognexInterface["cScannerBX2112"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO204.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO204.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1103".stJam1103_2.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi204.1",
nOutDirection => #TRO204.nInDirection,
InOutCarrier := "DB_JamArea1103".stJam1103_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 205 (1Sep1Switch) + Scanner(BX2114)
#TRO205.stInSeparator1.Settings.nSeparatorNo := "cSep205.1";
#TRO205.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO205.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO205.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO205.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO205.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO205.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO205.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3420"];
#TRO205.stInSenJam3 := "DB_Inputs".Sensors["cInBG3421"];
#TRO205.stInSwitch1.Settings.nSwitchNo := "cSwi205.1";
#TRO205.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO205.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO205.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO205.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO205.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO205.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2114"].xInCamTriggerReady := "bx2114-TriggerReady";
#arCognexInterface["cScannerBX2114"].xInCamTriggerAck := "bx2114-TriggerAck";
#arCognexInterface["cScannerBX2114"].xInCamResultsAvailable := "bx2114-Results Available";
#arCognexInterface["cScannerBX2114"].xInCamGeneralFault := "bx2114-General Fault";
#arCognexInterface["cScannerBX2114"].hwInCamInspectionResults := "=A01+UH02-BX2114~Ergebnisse__64_Bytes_1";
#TRO205.stInSettings.xCar2NecLeft := FALSE;
#TRO205.stInSettings.xCar2NecRight := FALSE;
#TRO205.stInSettings.xPrioDir1 := TRUE;
#TRO205.stInSettings.xPrioDir2 := FALSE;
// "DB_JamArea1104".stJam1104_1.arCarrier[1].nDestination := 11402;
#TRO205(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO205.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO205.TroOut,
nInMainTroNo := "cMainTro205",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO205,
xInCarouselRun1 := #fbExitConv1104.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1104.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO205,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2114"],
arInOutJamEntr1 := "DB_JamArea1104".stJam1104_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1104".stJam1104_1.stData,
arInOutJamExit2 := "DB_JamArea1104".stJam1104_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1104".stJam1104_2.stData,
arInOutJamExit3 := "DB_JamArea1108".stJam1108_1.arCarrier,
stInOutJamExit3 := "DB_JamArea1108".stJam1108_1.stData,
xOutStopper1 => "MB3420",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro205"],
xOutSw1ExTo4 => "MB3421");
"bx2114-TriggerEnable" := #arCognexInterface["cScannerBX2114"].xOutCamTriggerEnable;
"bx2114-Trigger" := #arCognexInterface["cScannerBX2114"].xOutCamTrigger;
"bx2114-ResultsAck" := #arCognexInterface["cScannerBX2114"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO205.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO205.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1104".stJam1104_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi205.1",
nOutDirection => #TRO205.nInDirection,
InOutCarrier := "DB_JamArea1104".stJam1104_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 206 (1Sep1Switch)+Scanner(BX2113)
#TRO206.stInSeparator1.Settings.nSeparatorNo := "cSep206.1";
#TRO206.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO206.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO206.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO206.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO206.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO206.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO206.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3360"];
#TRO206.stInSenJam3 := "DB_Inputs".Sensors["cInBG3361"];
#TRO206.stInSwitch1.Settings.nSwitchNo := "cSwi206.1";
#TRO206.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO206.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO206.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO206.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO206.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO206.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2113"].xInCamTriggerReady := "bx2113-TriggerReady";
#arCognexInterface["cScannerBX2113"].xInCamTriggerAck := "bx2113-TriggerAck";
#arCognexInterface["cScannerBX2113"].xInCamResultsAvailable := "bx2113-Results Available";
#arCognexInterface["cScannerBX2113"].xInCamGeneralFault := "bx2113-General Fault";
#arCognexInterface["cScannerBX2113"].hwInCamInspectionResults := "=A01+UH02-BX2113~Ergebnisse__64_Bytes_1";
#TRO206.stInSettings.xCar2NecLeft := TRUE;
#TRO206.stInSettings.xCar2NecRight := FALSE;
#TRO206.stInSettings.xPrioDir1 := TRUE;
#TRO206.stInSettings.xPrioDir2 := FALSE;
// "DB_JamArea1104".stJam1104_2.arCarrier[1].nDestination := 11302;
#TRO206(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO206.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO206.TroOut,
nInMainTroNo := "cMainTro206",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO206,
xInCarouselRun1 := #fbExitConv1104.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1103.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO206,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2113"],//Todo
arInOutJamEntr1 := "DB_JamArea1104".stJam1104_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1104".stJam1104_2.stData,
arInOutJamExit2 := "DB_JamArea1104".stJam1104_3.arCarrier,
stInOutJamExit2 := "DB_JamArea1104".stJam1104_3.stData,
arInOutJamExit3 := "DB_JamArea1107".stJam1107_1.arCarrier,
stInOutJamExit3 := "DB_JamArea1107".stJam1107_1.stData,
xOutStopper1 => "MB3360",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro206"],
xOutSw1ExTo4 => "MB3361");
"bx2113-TriggerEnable" := #arCognexInterface["cScannerBX2113"].xOutCamTriggerEnable;
"bx2113-Trigger" := #arCognexInterface["cScannerBX2113"].xOutCamTrigger;
"bx2113-ResultsAck" := #arCognexInterface["cScannerBX2113"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO206.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO206.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1104".stJam1104_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi206.1",
nOutDirection => #TRO206.nInDirection,
InOutCarrier := "DB_JamArea1104".stJam1104_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 207(1Sep)
#TRO207.stInSeparator1.Settings.nSeparatorNo := "cSep207.1";
#TRO207.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO207.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO207.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO207.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO207.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO207.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO207.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO207.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3425"];
#TRO207.stInSenJam2 := "DB_Inputs".Sensors["cInBG3431"];
#TRO207.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#stJamDataHandoverJam2109.Config.nCapacitySet := 1; //
#TRO207(nInMainTroNo := "cMainTro207",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO207 AND ("IO_Device_UH02_TO_UH01".stCARRIER_INFO[1].nBarcode = 0), //zwecks Übergabe warten bis UH03 Daten abgeholt hat
xInCarouselRun := #fbExitConv1104.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1104".stJam1104_3.arCarrier,
stInOutJamEntr1 := "DB_JamArea1104".stJam1104_3.stData,
arInOutJamExit2 := "IO_Device_UH02_TO_UH01".stCARRIER_INFO, //Daten#arCarrierHandoverJam2109,
stInOutJamExit2 := #stJamDataHandoverJam2109,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO207,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro207"],
xOutStopper1 => "MB3425");
"MB3426" := True;
REGION Übergabe an Level 2
//todo: sicherstellen das UH03 ready ist, ansonsten sollte UH02 warten...
"FB_I-Device_SendCarrier_J2109"(xInTrigger := (#TRO207.nState = 2500) AND #TRO207.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X3, //von Empfänger
stInOutData := "IO_Device_UH02_TO_UH01".stCARRIER_INFO[1], //Daten
xOutReq := "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL_1.%X3); //an Empfänger
END_REGION
END_REGION ;
REGION TRO 209 (Vario)
#TRO209.stInSeparator1.Settings.nSeparatorNo := "cSep209.1";
#TRO209.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO209.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO209.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO209.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO209.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO209.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO209.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO209.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3244"];
#TRO209.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO209.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO209.stInVario.Settings.xContinousEmptying := FALSE;
#TRO209.stInVario.Settings.tWaitForJog := T#400ms;
#TRO209.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO209.stInVario.Settings.nCountCarrier := 1;
#TRO209.stInVario.Settings.tWaitForStop := T#3s;
#TRO209.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3243"]; //Pusher Dog in Pos
#TRO209.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3006"]; // Conveyor full
#TRO209.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3005"]; // Jam detector
#TRO209.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3247"]; // MT in Pos
#TRO209.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO209(nInMainTroNo := "cMainTro209",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF2 AND "SF0120" AND "SF0040",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0041" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0142",
xInRelease := "DB_TRO_Test".TRO209,
arInOutJamEntr := "DB_JamArea1105".stJam1105_1.arCarrier,
stInOutJamEntr := "DB_JamArea1105".stJam1105_1.stData,
arInOutJamFinger := "DB_JamArea1105".stJam1105_2.arCarrier,
stInOutJamFinger := "DB_JamArea1105".stJam1105_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO209,
xOutStopper => "MB3244",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro209"],
xOutVarioMotor => "MA0142");
END_REGION
REGION TRO 210 (1Sep)
#TRO210.stInSeparator1.Settings.nSeparatorNo := "cSep210.1";
#TRO210.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO210.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO210.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO210.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO210.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO210.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO210.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO210.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO210.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3004"];
#TRO210.stInSenJam2 := "DB_Inputs".Sensors["cInBG3003"];
#TRO210.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO210.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO210(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO210.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO210.TroOut,
nInMainTroNo := "cMainTro210",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO210,
xInCarouselRun := #fbSortConv1101.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1105".stJam1105_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1105".stJam1105_2.stData,
arInOutJamExit2 := "DB_JamArea1101".stJam1101_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1101".stJam1101_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO210,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro210"],
xOutStopper1 => "MB3004");
END_REGION
REGION TRO 212 (Vario)
#TRO212.stInSeparator1.Settings.nSeparatorNo := "cSep212.1";
#TRO212.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO212.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO212.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO212.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO212.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO212.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO212.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO212.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3304"];
#TRO212.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO212.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO212.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3303"]; //Pusher Dog in Pos
#TRO212.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3066"]; // Conveyor full
#TRO212.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3065"]; // Jam detector
#TRO212.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3307"]; // MT in Pos
#TRO212.stInVario.Settings.xContinousEmptying := FALSE;
#TRO212.stInVario.Settings.tWaitForJog := T#50ms;//T#400ms;
#TRO212.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO212.stInVario.Settings.nCountCarrier := 1;
#TRO212.stInVario.Settings.tWaitForStop := T#3s; //NUR FÜR TESTMODUS, Im Normalbetrieb auskommentieren!
#TRO212.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO212(nInMainTroNo := "cMainTro212",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF2 AND "SF0122" AND "SF0042",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0043" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0143",
xInRelease := "DB_TRO_Test".TRO212,
arInOutJamEntr := "DB_JamArea1106".stJam1106_1.arCarrier,
stInOutJamEntr := "DB_JamArea1106".stJam1106_1.stData,
arInOutJamFinger := "DB_JamArea1106".stJam1106_2.arCarrier,
stInOutJamFinger := "DB_JamArea1106".stJam1106_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO212,
xOutStopper => "MB3304",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro212"],
xOutVarioMotor => "MA0143");
END_REGION
REGION TRO 213 (1Sep)
#TRO213.stInSeparator1.Settings.nSeparatorNo := "cSep213.1";
#TRO213.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO213.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO213.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO213.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO213.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO213.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO213.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO213.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO213.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3064"];
#TRO213.stInSenJam2 := "DB_Inputs".Sensors["cInBG3063"];
#TRO213.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO213.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO213(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO213.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO213.TroOut,
nInMainTroNo := "cMainTro213",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO213,
xInCarouselRun := #fbSortConv1101.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1106".stJam1106_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1106".stJam1106_2.stData,
arInOutJamExit2 := "DB_JamArea1101".stJam1101_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1101".stJam1101_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO213,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro213"],
xOutStopper1 => "MB3064");
END_REGION
REGION TRO 215 (Vario)
#TRO215.stInSeparator1.Settings.nSeparatorNo := "cSep215.1";
#TRO215.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO215.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO215.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO215.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO215.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO215.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO215.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO215.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3364"];
#TRO215.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO215.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO215.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3363"]; //Pusher Dog in Pos
#TRO215.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3126"]; // Conveyor full
#TRO215.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3125"]; // Jam detector
#TRO215.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3367"]; // MT in Pos
#TRO215.stInVario.Settings.xContinousEmptying := FALSE;
#TRO215.stInVario.Settings.tWaitForJog := T#400ms;
#TRO215.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO215.stInVario.Settings.nCountCarrier := 1;
#TRO215.stInVario.Settings.tWaitForStop := T#3s; //NUR FÜR TESTMODUS, Im Normalbetrieb auskommentieren!
#TRO215.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO215(nInMainTroNo := "cMainTro215",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF2 AND "SF0124" AND "SF0044",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0045" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0144",
xInRelease := "DB_TRO_Test".TRO215,
arInOutJamEntr := "DB_JamArea1107".stJam1107_1.arCarrier,
stInOutJamEntr := "DB_JamArea1107".stJam1107_1.stData,
arInOutJamFinger := "DB_JamArea1107".stJam1107_2.arCarrier,
stInOutJamFinger := "DB_JamArea1107".stJam1107_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO215,
xOutStopper => "MB3364",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro215"],
xOutVarioMotor => "MA0144");
END_REGION
REGION TRO 216 (1Sep)
#TRO216.stInSeparator1.Settings.nSeparatorNo := "cSep216.1";
#TRO216.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO216.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO216.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO216.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO216.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO216.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO216.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO216.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO216.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3124"];
#TRO216.stInSenJam2 := "DB_Inputs".Sensors["cInBG3123"];
#TRO216.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO216.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO216(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO216.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO216.TroOut,
nInMainTroNo := "cMainTro216",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO216,
xInCarouselRun := #fbSortConv1102.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1107".stJam1107_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1107".stJam1107_2.stData,
arInOutJamExit2 := "DB_JamArea1102".stJam1102_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1102".stJam1102_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO216,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro216"],
xOutStopper1 => "MB3124");
END_REGION
REGION TRO 218 (Vario)
#TRO218.stInSeparator1.Settings.nSeparatorNo := "cSep218.1";
#TRO218.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO218.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO218.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO218.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO218.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO218.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO218.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO218.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3424"];
#TRO218.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO218.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO218.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3423"]; //Pusher Dog in Pos
#TRO218.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3186"]; // Conveyor full
#TRO218.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3185"]; // Jam detector
#TRO218.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3427"]; // MT in Pos
#TRO218.stInVario.Settings.xContinousEmptying := FALSE;
#TRO218.stInVario.Settings.tWaitForJog := T#400ms;
#TRO218.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO218.stInVario.Settings.nCountCarrier := 1;
#TRO218.stInVario.Settings.tWaitForStop := T#3s; //NUR FÜR TESTMODUS,
#TRO218.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO218(nInMainTroNo := "cMainTro218",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF2 AND "SF0126" AND "SF0046",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0047" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0145",
xInRelease := "DB_TRO_Test".TRO218,
arInOutJamEntr := "DB_JamArea1108".stJam1108_1.arCarrier,
stInOutJamEntr := "DB_JamArea1108".stJam1108_1.stData,
arInOutJamFinger := "DB_JamArea1108".stJam1108_2.arCarrier,
stInOutJamFinger := "DB_JamArea1108".stJam1108_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO218,
xOutStopper => "MB3424",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro218"],
xOutVarioMotor => "MA0145");
END_REGION
REGION TRO 219(1Sep)
#TRO219.stInSeparator1.Settings.nSeparatorNo := "cSep219.1";
#TRO219.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO219.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO219.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO219.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO219.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO219.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO219.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO219.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO219.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3184"];
#TRO219.stInSenJam2 := "DB_Inputs".Sensors["cInBG3183"];
#TRO219.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO219.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO219.stInSettings.bSepType.%X6 := TRUE;
#TRO219(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO219.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO219.TroOut,
nInMainTroNo := "cMainTro219",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO219,
xInCarouselRun := #fbSortConv1102.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1108".stJam1108_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1108".stJam1108_2.stData,
arInOutJamExit2 := "DB_JamArea1102".stJam1102_3.arCarrier,
stInOutJamExit2 := "DB_JamArea1102".stJam1102_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO219,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro219"],
xOutStopper1 => "MB3184");
END_REGION
//Section 1.1 ENDE
REGION TRO 220 (Vario) // Eingang von Level 2
#TRO220.stInSeparator1.Settings.nSeparatorNo := "cSep220.1";
#TRO220.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO220.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO220.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO220.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO220.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO220.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO220.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO220.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3622"];
#TRO220.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO220.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO220.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3623"]; //Finger in Pos
#TRO220.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3624"]; //MT in Pos
#TRO220.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3616"]; // Conveyor full
#TRO220.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3615"]; // Jam detector
#TRO220.stInVario.Settings.xContinousEmptying := FALSE;
#TRO220.stInVario.Settings.tWaitForJog := T#400ms;
#TRO220.stInVario.Settings.tConvEmpty := T#20000ms;
#TRO220.stInVario.Settings.nCountCarrier := 1;
#TRO220.stInVario.Settings.tWaitForStop := t#3s;
#TRO220.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
// #TRO220.stInSettings.xIsBorner := TRUE;
#TRO220(nInMainTroNo := "cMainTro220",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO220,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0070",
arInOutJamEntr := "DB_JamArea1209".stJam1209_1.arCarrier,//Todo
stInOutJamEntr := "DB_JamArea1209".stJam1209_1.stData,
arInOutJamFinger := "DB_JamArea1209".stJam1209_2.arCarrier,
stInOutJamFinger := "DB_JamArea1209".stJam1209_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO220,
xOutStopper => "MB3622",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro220"],
xOutVarioMotor => "MA0070");
REGION Übernahme von Level 2
"FB_I-Device_Receive_J1209"(xInReq := "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL_1.%X1,
stInData := "IO_Device_UH03_FROM_UH01".stCarrierL2toL1_2[1],
xInOutAck := "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL_1.%X1);
IF "FB_I-Device_Receive_J1209".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J1209".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea1209".stJam1209_1.arCarrier);
END_IF;
END_REGION
END_REGION
REGION TRO 221 (1Sep)
#TRO221.stInSeparator1.Settings.nSeparatorNo := "cSep221.1";
#TRO221.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO221.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO221.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO221.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO221.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO221.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO221.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO221.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3614"];
#TRO221.stInSenJam2 := "DB_Inputs".Sensors["cInBG3621"];
#TRO221.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO221.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO221.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO221(nInMainTroNo := "cMainTro221",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO221,
xInCarouselRun := #fbSortConv1202.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1209".stJam1209_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1209".stJam1209_2.stData,
arInOutJamExit2 := "DB_JamArea1202".stJam1202_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1202".stJam1202_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO221,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro221"],
xOutStopper1 => "MB3614");
END_REGION
REGION TRO 222 (1Sep1Switch)+Scanner(BX2121)
#TRO222.stInSeparator1.Settings.nSeparatorNo := "cSep222.1";
#TRO222.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO222.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO222.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO222.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO222.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO222.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO222.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3617"];
#TRO222.stInSenJam2 := "DB_Inputs".Sensors["cInBG3603"];
#TRO222.stInSenJam3 := "DB_Inputs".Sensors["cInBG3543"];
#TRO222.stInSwitch1.Settings.nSwitchNo := "cSwi222.1";
#TRO222.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO222.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO222.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO222.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO222.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO222.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2121"].xInCamTriggerReady := "bx2121-TriggerReady";
#arCognexInterface["cScannerBX2121"].xInCamTriggerAck := "bx2121-TriggerAck";
#arCognexInterface["cScannerBX2121"].xInCamResultsAvailable := "bx2121-Results Available";
#arCognexInterface["cScannerBX2121"].xInCamGeneralFault := "bx2121-General Fault";
#arCognexInterface["cScannerBX2121"].hwInCamInspectionResults := "=A01+UH02-BX2121~Ergebnisse__64_Bytes_1";
#TRO222.stInSettings.xCar2NecRight := TRUE;
#TRO222.stInSettings.xCar2NecLeft := TRUE;
#TRO222.stInSettings.xPrioDir1 := TRUE;
#TRO222.stInSettings.xPrioDir2 := TRUE;
#TRO222(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO222_3.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO222_3.TroOut,
stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO222_4.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO222_4.TroOut,
nInMainTroNo := "cMainTro222",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO222,
xInCarouselRun1 := #fbSortConv1202.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv1201.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO222,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2121"],
arInOutJamEntr1 := "DB_JamArea1202".stJam1202_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1202".stJam1202_1.stData,
arInOutJamExit2 := "DB_JamArea1202".stJam1202_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1202".stJam1202_2.stData,
arInOutJamExit3 := "DB_JamArea1201".stJam1201_1.arCarrier,
stInOutJamExit3 := "DB_JamArea1201".stJam1201_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro222"],
xOutStopper1 => "MB3617",
xOutSw1ExTo3 => "MB3541");
"bx2121-TriggerEnable" := #arCognexInterface["cScannerBX2121"].xOutCamTriggerEnable;
"bx2121-Trigger" := #arCognexInterface["cScannerBX2121"].xOutCamTrigger;
"bx2121-ResultsAck" := #arCognexInterface["cScannerBX2121"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO222.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO222.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1202".stJam1202_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi222.1",
nOutDirection => #TRO222.nInDirection,
InOutCarrier := "DB_JamArea1202".stJam1202_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 223 (1Sep1Switch)+Scanner(BX2126)
#TRO223.stInSeparator1.Settings.nSeparatorNo := "cSep223.1";
#TRO223.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO223.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO223.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO223.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO223.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO223.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO223.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3720"];
#TRO223.stInSenJam2 := "DB_Inputs".Sensors["cInBG3721"];
#TRO223.stInSwitch1.Settings.nSwitchNo := "cSwi223.1";
#TRO223.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO223.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO223.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO223.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO223.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO223.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2126"].xInCamTriggerReady := "bx2126-TriggerReady";
#arCognexInterface["cScannerBX2126"].xInCamTriggerAck := "bx2126-TriggerAck";
#arCognexInterface["cScannerBX2126"].xInCamResultsAvailable := "bx2126-Results Available";
#arCognexInterface["cScannerBX2126"].xInCamGeneralFault := "bx2126-General Fault";
#arCognexInterface["cScannerBX2126"].hwInCamInspectionResults := "=A01+UC022-BX2126~Ergebnisse__64_Bytes_1";
#TRO223.stInSettings.xCar2NecLeft := FALSE;
#TRO223.stInSettings.xCar2NecRight := FALSE;
#TRO223.stInSettings.xPrioDir1 := FALSE;
#TRO223.stInSettings.xPrioDir2 := TRUE;
// "DB_JamArea1203".stJam1203_1.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO223(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO223.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO223.TroOut,
nInMainTroNo := "cMainTro223",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO223,
xInCarouselRun1 := #fbExitConv1203.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1203.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO223,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX2126"],
arInOutJamEntr1 := "DB_JamArea1203".stJam1203_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1203".stJam1203_1.stData,
arInOutJamExit2 := "DB_JamArea1205".stJam1205_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1205".stJam1205_1.stData,
arInOutJamExit3 := "DB_JamArea1203".stJam1203_2.arCarrier,
stInOutJamExit3 := "DB_JamArea1203".stJam1203_2.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro223"],
xOutStopper1 => "MB3720",
xOutSw1ExTo3 => "MB3721");
"bx2126-TriggerEnable" := #arCognexInterface["cScannerBX2126"].xOutCamTriggerEnable;
"bx2126-Trigger" := #arCognexInterface["cScannerBX2126"].xOutCamTrigger;
"bx2126-ResultsAck" := #arCognexInterface["cScannerBX2126"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO223.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO223.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1203".stJam1203_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi223.1",
nOutDirection => #TRO223.nInDirection,
InOutCarrier := "DB_JamArea1203".stJam1203_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 224 (1Sep1Switch)+Scanner(BX2127)
#TRO224.stInSeparator1.Settings.nSeparatorNo := "cSep224.1";
#TRO224.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO224.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO224.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO224.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO224.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO224.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO224.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3780"];
#TRO224.stInSenJam2 := "DB_Inputs".Sensors["cInBG3781"];
#TRO224.stInSenJam3 := "DB_Inputs".Sensors["cInBG3847"];
#TRO224.stInSwitch1.Settings.nSwitchNo := "cSwi224.1";
#TRO224.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO224.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO224.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO224.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO224.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO224.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2127"].xInCamTriggerReady := "bx2127-TriggerReady";
#arCognexInterface["cScannerBX2127"].xInCamTriggerAck := "bx2127-TriggerAck";
#arCognexInterface["cScannerBX2127"].xInCamResultsAvailable := "bx2127-Results Available";
#arCognexInterface["cScannerBX2127"].xInCamGeneralFault := "bx2127-General Fault";
#arCognexInterface["cScannerBX2127"].hwInCamInspectionResults := "=A01+UC022-BX2127~Ergebnisse__64_Bytes_1";
#TRO224.stInSettings.xCar2NecLeft := FALSE;
#TRO224.stInSettings.xCar2NecRight := TRUE;
#TRO224.stInSettings.xPrioDir1 := FALSE;
#TRO224.stInSettings.xPrioDir2 := TRUE;
// "DB_JamArea1203".stJam1203_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO224(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO224.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO224.TroOut,
nInMainTroNo := "cMainTro224",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO224,
xInCarouselRun1 := #fbExitConv1203.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1204.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO224,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX2127"],
arInOutJamEntr1 := "DB_JamArea1203".stJam1203_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1203".stJam1203_2.stData,
arInOutJamExit2 := "DB_JamArea1206".stJam1206_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1206".stJam1206_1.stData,
arInOutJamExit3 := "DB_JamArea1204".stJam1204_3.arCarrier,
stInOutJamExit3 := "DB_JamArea1204".stJam1204_3.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro224"],
xOutStopper1 => "MB3780",
xOutSw1ExTo3 => "MB3781");
"bx2127-TriggerEnable" := #arCognexInterface["cScannerBX2127"].xOutCamTriggerEnable;
"bx2127-Trigger" := #arCognexInterface["cScannerBX2127"].xOutCamTrigger;
"bx2127-ResultsAck" := #arCognexInterface["cScannerBX2127"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO224.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO224.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1203".stJam1203_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi224.1",
nOutDirection => #TRO224.nInDirection,
InOutCarrier := "DB_JamArea1203".stJam1203_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 225(1Sep1Switch)+Scanner(BX2129)
#TRO225.stInSeparator1.Settings.nSeparatorNo := "cSep225.1";
#TRO225.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO225.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO225.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO225.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO225.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO225.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO225.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3900"];
#TRO225.stInSenJam3 := "DB_Inputs".Sensors["cInBG3901"];
#TRO225.stInSwitch1.Settings.nSwitchNo := "cSwi225.1";
#TRO225.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO225.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO225.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO225.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO225.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO225.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2129"].xInCamTriggerReady := "bx2129-TriggerReady";
#arCognexInterface["cScannerBX2129"].xInCamTriggerAck := "bx2129-TriggerAck";
#arCognexInterface["cScannerBX2129"].xInCamResultsAvailable := "bx2129-Results Available";
#arCognexInterface["cScannerBX2129"].xInCamGeneralFault := "bx2129-General Fault";
#arCognexInterface["cScannerBX2129"].hwInCamInspectionResults := "=A01+UC022-BX2129~Ergebnisse__64_Bytes_1";
#TRO225.stInSettings.xCar2NecLeft := FALSE;
#TRO225.stInSettings.xCar2NecRight := FALSE;
#TRO225.stInSettings.xPrioDir1 := TRUE;
#TRO225.stInSettings.xPrioDir2 := FALSE;
// "DB_JamArea1204".stJam1204_1.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO225(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO225.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO225.TroOut,
nInMainTroNo := "cMainTro225",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO225,
xInCarouselRun1 := #fbExitConv1204.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1204.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO225,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX2129"],
arInOutJamEntr1 := "DB_JamArea1204".stJam1204_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1204".stJam1204_1.stData,
arInOutJamExit2 := "DB_JamArea1204".stJam1204_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1204".stJam1204_2.stData,
arInOutJamExit3 := "DB_JamArea1208".stJam1208_1.arCarrier,
stInOutJamExit3 := "DB_JamArea1208".stJam1208_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro225"],
xOutStopper1 => "MB3900",
xOutSw1ExTo4 => "MB3901");
"bx2129-TriggerEnable" := #arCognexInterface["cScannerBX2129"].xOutCamTriggerEnable;
"bx2129-Trigger" := #arCognexInterface["cScannerBX2129"].xOutCamTrigger;
"bx2129-ResultsAck" := #arCognexInterface["cScannerBX2129"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO225.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO225.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1204".stJam1204_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi225.1",
nOutDirection => #TRO225.nInDirection,
InOutCarrier := "DB_JamArea1204".stJam1204_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 226 (1Sep1Switch)+Scanner(BX2128)
#TRO226.stInSeparator1.Settings.nSeparatorNo := "cSep226.1";
#TRO226.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO226.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO226.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO226.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO226.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO226.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO226.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3840"];
#TRO226.stInSenJam2 := "DB_Inputs".Sensors["cInBG3847"];
#TRO226.stInSenJam3 := "DB_Inputs".Sensors["cInBG3841"];
#TRO226.stInSwitch1.Settings.nSwitchNo := "cSwi226.1";
#TRO226.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO226.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO226.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO226.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO226.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO226.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2128"].xInCamTriggerReady := "bx2128-TriggerReady";
#arCognexInterface["cScannerBX2128"].xInCamTriggerAck := "bx2128-TriggerAck";
#arCognexInterface["cScannerBX2128"].xInCamResultsAvailable := "bx2128-Results Available";
#arCognexInterface["cScannerBX2128"].xInCamGeneralFault := "bx2128-General Fault";
#arCognexInterface["cScannerBX2128"].hwInCamInspectionResults := "=A01+UC022-BX2128~Ergebnisse__64_Bytes_1";
#TRO226.stInSettings.xCar2NecLeft := TRUE;
#TRO226.stInSettings.xCar2NecRight := FALSE;
#TRO226.stInSettings.xPrioDir1 := TRUE;
#TRO226.stInSettings.xPrioDir2 := FALSE;
// "DB_JamArea1204".stJam1204_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO226(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO226.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO226.TroOut,
nInMainTroNo := "cMainTro226",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO226,
xInCarouselRun1 := #fbExitConv1204.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1203.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO226,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX2128"],
arInOutJamEntr1 := "DB_JamArea1204".stJam1204_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1204".stJam1204_2.stData,
arInOutJamExit2 := "DB_JamArea1204".stJam1204_3.arCarrier,
stInOutJamExit2 := "DB_JamArea1204".stJam1204_3.stData,
arInOutJamExit3 := "DB_JamArea1207".stJam1207_1.arCarrier,
stInOutJamExit3 := "DB_JamArea1207".stJam1207_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro226"],
xOutStopper1 => "MB3840",
xOutSw1ExTo4 => "MB3841");
"MB3786" := TRUE;
"bx2128-TriggerEnable" := #arCognexInterface["cScannerBX2128"].xOutCamTriggerEnable;
"bx2128-Trigger" := #arCognexInterface["cScannerBX2128"].xOutCamTrigger;
"bx2128-ResultsAck" := #arCognexInterface["cScannerBX2128"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO226.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO226.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1204".stJam1204_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi226.1",
nOutDirection => #TRO226.nInDirection,
InOutCarrier := "DB_JamArea1204".stJam1204_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 227 (1Sep)
#TRO227.stInSeparator1.Settings.nSeparatorNo := "cSep227.1";
#TRO227.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO227.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO227.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO227.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO227.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO227.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO227.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO227.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3905"];
#TRO227.stInSenJam2 := "DB_Inputs".Sensors["cInBG3910"];
#TRO227.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam2209.Config.nCapacitySet := 1;
#TRO227(nInMainTroNo := "cMainTro227",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO227 AND ("IO_Device_UH02_TO_UH01".stCARRIER_INFO_1[1].nBarcode = 0), //zwecks Übergabe warten bis UH03 Daten abgeholt hat
xInCarouselRun := #fbExitConv1204.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1204".stJam1204_3.arCarrier,
stInOutJamEntr1 := "DB_JamArea1204".stJam1204_3.stData,
arInOutJamExit2 := "IO_Device_UH02_TO_UH01".stCARRIER_INFO_1, //Daten#arCarrierHandoverJam2209,
stInOutJamExit2 := #stJamDataHandoverJam2209,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO227,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro227"],
xOutStopper1 => "MB3905");
"MB3906" := TRUE;
REGION Übergabe an Level 2
//todo: sicherstellen das UH03 ready ist, ansonsten sollte UH02 warten...
"FB_I-Device_SendCarrier_J2209"(xInTrigger := (#TRO227.nState = 2500) AND #TRO227.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X4, //von Empfänger
stInOutData := "IO_Device_UH02_TO_UH01".stCARRIER_INFO_1[1], //Daten
xOutReq := "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL_1.%X4); //an Empfänger
END_REGION
END_REGION ;
REGION TRO 229 (Vario)
#TRO229.stInSeparator1.Settings.nSeparatorNo := "cSep229.1";
#TRO229.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO229.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO229.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO229.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO229.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO229.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO229.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO229.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3724"];
#TRO229.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO229.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO229.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3723"]; // Finger in Pos
#TRO229.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3727"]; //Mt in Pos
#TRO229.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3486"]; // Conveyor full
#TRO229.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3485"]; // Jam detector
#TRO229.stInVario.Settings.xContinousEmptying := FALSE;
#TRO229.stInVario.Settings.tWaitForJog := T#400ms;
#TRO229.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO229.stInVario.Settings.nCountCarrier := 1;
#TRO229.stInVario.Settings.tWaitForStop := T#3s;
#TRO229.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO229(nInMainTroNo := "cMainTro229",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO229,
xInAutomatic := #t_Automatik_OF1 AND "SF0180" AND "SF0050",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0181" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0064",
arInOutJamEntr := "DB_JamArea1205".stJam1205_1.arCarrier,
stInOutJamEntr := "DB_JamArea1205".stJam1205_1.stData,
arInOutJamFinger := "DB_JamArea1205".stJam1205_2.arCarrier,
stInOutJamFinger := "DB_JamArea1205".stJam1205_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO229,
xOutStopper => "MB3724",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro229"],
xOutVarioMotor => "MA0064");
END_REGION
REGION TRO 230 (1Sep)
#TRO230.stInSeparator1.Settings.nSeparatorNo := "cSep230.1";
#TRO230.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO230.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO230.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO230.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO230.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO230.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO230.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO230.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO230.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3484"];
#TRO230.stInSenJam2 := "DB_Inputs".Sensors["cInBG3483"];
#TRO230.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO230.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO230(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO230.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO230.TroOut,
nInMainTroNo := "cMainTro230",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO230,
xInCarouselRun := #fbSortConv1201.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1205".stJam1205_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1205".stJam1205_2.stData,
arInOutJamExit2 := "DB_JamArea1201".stJam1201_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1201".stJam1201_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO230,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro230"],
xOutStopper1 => "MB3484");
END_REGION
REGION TRO 232 (Vario)
#TRO232.stInSeparator1.Settings.nSeparatorNo := "cSep232.1";
#TRO232.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO232.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO232.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO232.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO232.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO232.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO232.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO232.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3784"];
#TRO232.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO232.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO232.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3783"]; //Finger in Pos
#TRO232.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3787"];
#TRO232.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3546"]; // Conveyor full
#TRO232.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3545"]; // Jam detector
#TRO232.stInVario.Settings.xContinousEmptying := FALSE;
#TRO232.stInVario.Settings.tWaitForJog := T#400ms;
#TRO232.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO232.stInVario.Settings.nCountCarrier := 1;
#TRO232.stInVario.Settings.tWaitForStop := T#3s;
#TRO232.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO232(nInMainTroNo := "cMainTro232",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO232,
xInAutomatic := #t_Automatik_OF1 AND "SF0182" AND "SF0052",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0183" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0065",
arInOutJamEntr := "DB_JamArea1206".stJam1206_1.arCarrier,
stInOutJamEntr := "DB_JamArea1206".stJam1206_1.stData,
arInOutJamFinger := "DB_JamArea1206".stJam1206_2.arCarrier,
stInOutJamFinger := "DB_JamArea1206".stJam1206_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO232,
xOutStopper => "MB3784",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro232"],
xOutVarioMotor => "MA0065");
END_REGION
REGION TRO 233 (1Sep)
#TRO233.stInSeparator1.Settings.nSeparatorNo := "cSep233.1";
#TRO233.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO233.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO233.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO233.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO233.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO233.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO233.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO233.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO233.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3544"];
#TRO233.stInSenJam2 := "DB_Inputs".Sensors["cInBG3543"];
#TRO233.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO233.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO233(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO233.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO233.TroOut,
nInMainTroNo := "cMainTro233",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO233,
xInCarouselRun := #fbSortConv1201.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1206".stJam1206_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1206".stJam1206_2.stData,
arInOutJamExit2 := "DB_JamArea1201".stJam1201_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1201".stJam1201_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO233,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro233"],
xOutStopper1 => "MB3544");
END_REGION
REGION TRO 235 (Vario)
#TRO235.stInSeparator1.Settings.nSeparatorNo := "cSep235.1";
#TRO235.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO235.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO235.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO235.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO235.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO235.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO235.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO235.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3844"];
#TRO235.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO235.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO235.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3843"]; // Finger in Pos
#TRO235.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3847"]; // MT in Pos
#TRO235.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3606"]; // Conveyor full
#TRO235.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3605"]; // Jam detector
#TRO235.stInVario.Settings.xContinousEmptying := FALSE;
#TRO235.stInVario.Settings.tWaitForJog := T#400ms;
#TRO235.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO235.stInVario.Settings.nCountCarrier := 1;
#TRO235.stInVario.Settings.tWaitForStop := T#3s;
#TRO235.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO235(nInMainTroNo := "cMainTro235",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO235,
xInAutomatic := #t_Automatik_OF1 AND "SF0184" AND "SF0054",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0185" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0066",
arInOutJamEntr := "DB_JamArea1207".stJam1207_1.arCarrier,
stInOutJamEntr := "DB_JamArea1207".stJam1207_1.stData,
arInOutJamFinger := "DB_JamArea1207".stJam1207_2.arCarrier,
stInOutJamFinger := "DB_JamArea1207".stJam1207_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO235,
xOutStopper => "MB3844",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro235"],
xOutVarioMotor => "MA0066");
END_REGION
REGION TRO 236 (1Sep)
#TRO236.stInSeparator1.Settings.nSeparatorNo := "cSep236.1";
#TRO236.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO236.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO236.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO236.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO236.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO236.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO236.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO236.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO236.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3604"];
#TRO236.stInSenJam2 := "DB_Inputs".Sensors["cInBG3603"];
#TRO236.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO236.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO236(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO236.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO236.TroOut,
nInMainTroNo := "cMainTro236",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO236,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbSortConv1202.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1207".stJam1207_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1207".stJam1207_2.stData,
arInOutJamExit2 := "DB_JamArea1202".stJam1202_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1202".stJam1202_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO236,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro236"],
xOutStopper1 => "MB3604");
END_REGION
REGION TRO 238 (Vario)
#TRO238.stInSeparator1.Settings.nSeparatorNo := "cSep238.1";
#TRO238.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO238.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO238.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO238.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO238.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO238.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO238.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO238.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3904"];
#TRO238.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO238.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO238.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3903"]; // Finger in Pos
#TRO238.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3907"]; // MT in Pos
#TRO238.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3666"]; // Conveyor full
#TRO238.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3665"]; // Jam detector
#TRO238.stInVario.Settings.xContinousEmptying := FALSE;
#TRO238.stInVario.Settings.tWaitForJog := T#400ms;
#TRO238.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO238.stInVario.Settings.nCountCarrier := 1;
#TRO238.stInVario.Settings.tWaitForStop := T#3s;
#TRO238.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO238(nInMainTroNo := "cMainTro238",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO238,
xInAutomatic := #t_Automatik_OF1 AND "SF0186" AND "SF0056",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0187" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0067",
arInOutJamEntr := "DB_JamArea1208".stJam1208_1.arCarrier,
stInOutJamEntr := "DB_JamArea1208".stJam1208_1.stData,
arInOutJamFinger := "DB_JamArea1208".stJam1208_2.arCarrier,
stInOutJamFinger := "DB_JamArea1208".stJam1208_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO238,
xOutStopper => "MB3904",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro238"],
xOutVarioMotor => "MA0067");
END_REGION
REGION TRO 239 (1Sep)
#TRO239.stInSeparator1.Settings.nSeparatorNo := "cSep239.1";
#TRO239.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO239.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO239.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO239.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO239.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO239.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO239.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO239.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO239.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3664"];
#TRO239.stInSenJam2 := "DB_Inputs".Sensors["cInBG3663"];
#TRO239.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO239.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO239(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO239.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO239.TroOut,
nInMainTroNo := "cMainTro239",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO239,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbSortConv1202.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1208".stJam1208_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1208".stJam1208_2.stData,
arInOutJamExit2 := "DB_JamArea1202".stJam1202_3.arCarrier,
stInOutJamExit2 := "DB_JamArea1202".stJam1202_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO239,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro239"],
xOutStopper1 => "MB3664");
END_REGION
//Section 1.2 ENDE
REGION TRO 240 (Vario) // Eingang von Level 2
#TRO240.stInSeparator1.Settings.nSeparatorNo := "cSep240.1";
#TRO240.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO240.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO240.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO240.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO240.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO240.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO240.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO240.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4342"];
#TRO240.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO240.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO240.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4343"]; //Finger in Pos
#TRO240.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4344"]; //MT in Pos
#TRO240.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4336"]; // Conveyor full
#TRO240.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4335"]; // Jam detector
#TRO240.stInVario.Settings.xContinousEmptying := FALSE;
#TRO240.stInVario.Settings.tWaitForJog := T#400ms;
#TRO240.stInVario.Settings.tConvEmpty := T#20000ms;
#TRO240.stInVario.Settings.nCountCarrier := 1;
#TRO240.stInVario.Settings.tWaitForStop := t#3s;
#TRO240.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO240.stInSettings.xIsBorner := TRUE;
#TRO240(nInMainTroNo := "cMainTro240",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO240,
xInAutomatic := #t_Automatik_OF4,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0266",
arInOutJamEntr := "DB_JamArea1309".stJam1309_1.arCarrier,//Todo
stInOutJamEntr := "DB_JamArea1309".stJam1309_1.stData,
arInOutJamFinger := "DB_JamArea1309".stJam1309_2.arCarrier,
stInOutJamFinger := "DB_JamArea1309".stJam1309_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO240,
xOutStopper => "MB4342",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro240"],
xOutVarioMotor => "MA0266");
REGION Übernahme von Level 2
"FB_I-Device_Receive_J1309"(xInReq := "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL_1.%X2,
stInData := "IO_Device_UH03_FROM_UH01".stCarrierL2toL1_3[1],
xInOutAck := "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL_1.%X2);
IF "FB_I-Device_Receive_J1309".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J1309".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea1309".stJam1309_1.arCarrier);
END_IF;
END_REGION
END_REGION
REGION TRO 241(1Sep)
#TRO241.stInSeparator1.Settings.nSeparatorNo := "cSep241.1";
#TRO241.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO241.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO241.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO241.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO241.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO241.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO241.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO241.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4334"];
#TRO241.stInSenJam2 := "DB_Inputs".Sensors["cInBG4340"];
#TRO241.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO241.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO241.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO241(nInMainTroNo := "cMainTro241",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO241,
xInCarouselRun := #fbSortConv1304.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1309".stJam1309_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1309".stJam1309_2.stData,
arInOutJamExit2 := "DB_JamArea1304".stJam1304_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1304".stJam1304_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO241,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro241"],
xOutStopper1 => "MB4334");
END_REGION
REGION TRO 242 (1Sep1Switch)+Scanner(BX2130)
#TRO242.stInSeparator1.Settings.nSeparatorNo := "cSep242.1";
#TRO242.stInSeparator1.Settings.SendOverJamTimeOut := TRUE; //true = alter Sep
#TRO242.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO242.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO242.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO242.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO242.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4337"];
#TRO242.stInSenJam2 := "DB_Inputs".Sensors["cInBG4263"];
#TRO242.stInSenJam3 := "DB_Inputs".Sensors["cInBG4323"];
#TRO242.stInSwitch1.Settings.nSwitchNo := "cSwi242.1";
#TRO242.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO242.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO242.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO242.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO242.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO242.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2130"].xInCamTriggerReady := "bx2130-TriggerReady";
#arCognexInterface["cScannerBX2130"].xInCamTriggerAck := "bx2130-TriggerAck";
#arCognexInterface["cScannerBX2130"].xInCamResultsAvailable := "bx2130-Results Available";
#arCognexInterface["cScannerBX2130"].xInCamGeneralFault := "bx2130-General Fault";
#arCognexInterface["cScannerBX2130"].hwInCamInspectionResults := "=A01+UC022-BX2130~Ergebnisse__64_Bytes_1";
#TRO242.stInSettings.xCar2NecRight := TRUE;
#TRO242.stInSettings.xCar2NecLeft := TRUE;
#TRO242.stInSettings.xPrioDir1 := TRUE;
#TRO242.stInSettings.xPrioDir2 := TRUE;
#TRO242(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO242_3.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO242_3.TroOut,
stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO242_4.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO242_4.TroOut,
nInMainTroNo := "cMainTro242",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO242,
xInCarouselRun1 := #fbSortConv1303.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv1304.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO242,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #arCognexInterface["cScannerBX2130"],
arInOutJamEntr1 := "DB_JamArea1304".stJam1304_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1304".stJam1304_1.stData,
arInOutJamExit2 := "DB_JamArea1303".stJam1303_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1303".stJam1303_1.stData,
arInOutJamExit3 := "DB_JamArea1304".stJam1304_2.arCarrier,
stInOutJamExit3 := "DB_JamArea1304".stJam1304_2.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro242"],
xOutStopper1 => "MB4337",
xOutSw1ExTo3 => "MB4261");
"bx2130-TriggerEnable" := #arCognexInterface["cScannerBX2130"].xOutCamTriggerEnable;
"bx2130-Trigger" := #arCognexInterface["cScannerBX2130"].xOutCamTrigger;
"bx2130-ResultsAck" := #arCognexInterface["cScannerBX2130"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO242.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO242.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1304".stJam1304_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi242.1",
nOutDirection => #TRO242.nInDirection,
InOutCarrier := "DB_JamArea1304".stJam1304_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 243 (1Sep1Switch)+Scanner(BX3137)
#TRO243.stInSeparator1.Settings.nSeparatorNo := "cSep243.1";
#TRO243.stInSeparator1.Settings.SendOverJamTimeOut := TRUE; //true = alter Sep
#TRO243.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO243.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO243.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO243.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO243.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3960"];
#TRO243.stInSenJam3 := "DB_Inputs".Sensors["cInBG3961"];
#TRO243.stInSwitch1.Settings.nSwitchNo := "cSwi243.1";
#TRO243.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO243.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO243.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO243.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO243.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2135"].xInCamTriggerReady := "bx2135-TriggerReady";
#arCognexInterface["cScannerBX2135"].xInCamTriggerAck := "bx2135-TriggerAck";
#arCognexInterface["cScannerBX2135"].xInCamResultsAvailable := "bx2135-Results Available";
#arCognexInterface["cScannerBX2135"].xInCamGeneralFault := "bx2135-General Fault";
#arCognexInterface["cScannerBX2135"].hwInCamInspectionResults := "=A01+UC023-BX2135~Ergebnisse__64_Bytes_1";
#TRO243.stInSettings.xCar2NecLeft := FALSE;
#TRO243.stInSettings.xCar2NecRight := FALSE;
#TRO243.stInSettings.xPrioDir1 := TRUE;
#TRO243.stInSettings.xPrioDir2 := FALSE;
"DB_JamArea1301".stJam1301_1.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO243(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO243.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO243.TroOut,
nInMainTroNo := "cMainTro243",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO243,
xInCarouselRun1 := #fbExitConv1301.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1301.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO243,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX2135"],
arInOutJamEntr1 := "DB_JamArea1301".stJam1301_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1301".stJam1301_1.stData,
arInOutJamExit2 := "DB_JamArea1301".stJam1301_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1301".stJam1301_2.stData,
arInOutJamExit3 := "DB_JamArea1305".stJam1305_1.arCarrier,
stInOutJamExit3 := "DB_JamArea1305".stJam1305_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro243"],
xOutStopper1 => "MB3960",
xOutSw1ExTo4 => "MB3961");
"bx2135-TriggerEnable" := #arCognexInterface["cScannerBX2135"].xOutCamTriggerEnable;
"bx2135-Trigger" := #arCognexInterface["cScannerBX2135"].xOutCamTrigger;
"bx2135-ResultsAck" := #arCognexInterface["cScannerBX2135"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO243.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO243.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1303".stJam1303_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi243.1",
nOutDirection => #TRO243.nInDirection,
InOutCarrier := "DB_JamArea1303".stJam1303_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 244 (1Sep1Switch)+Scanner(BX2136)
#TRO244.stInSeparator1.Settings.nSeparatorNo := "cSep244.1";
#TRO244.stInSeparator1.Settings.SendOverJamTimeOut := TRUE; //true = alter Sep
#TRO244.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO244.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO244.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO244.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO244.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4020"];
#TRO244.stInSenJam2 := "DB_Inputs".Sensors["cInBG4021"];
#TRO244.stInSwitch1.Settings.nSwitchNo := "cSwi244.1";
#TRO244.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO244.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO244.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO244.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO244.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO244.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2136"].xInCamTriggerReady := "bx2136-TriggerReady";
#arCognexInterface["cScannerBX2136"].xInCamTriggerAck := "bx2136-TriggerAck";
#arCognexInterface["cScannerBX2136"].xInCamResultsAvailable := "bx2136-Results Available";
#arCognexInterface["cScannerBX2136"].xInCamGeneralFault := "bx2136-General Fault";
#arCognexInterface["cScannerBX2136"].hwInCamInspectionResults := "=A01+UC023-BX2136~Ergebnisse__64_Bytes_1";
#TRO244.stInSettings.xCar2NecLeft := TRUE;
#TRO244.stInSettings.xCar2NecLeft := TRUE;
#TRO244.stInSettings.xCar2NecRight := FALSE;
#TRO244.stInSettings.xPrioDir1 := TRUE;
#TRO244.stInSettings.xPrioDir2 := FALSE;
"DB_JamArea1301".stJam1301_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO244(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO244.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO244.TroOut,
nInMainTroNo := "cMainTro244",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO244,
xInCarouselRun1 := #fbExitConv1301.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1302.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO244,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX2136"],
arInOutJamEntr1 := "DB_JamArea1301".stJam1301_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1301".stJam1301_2.stData,
arInOutJamExit2 := "DB_JamArea1302".stJam1302_3.arCarrier,
stInOutJamExit2 := "DB_JamArea1302".stJam1302_3.stData,
arInOutJamExit3 := "DB_JamArea1306".stJam1306_1.arCarrier,
stInOutJamExit3 := "DB_JamArea1306".stJam1306_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro244"],
xOutStopper1 => "MB4020",
xOutSw1ExTo4 => "MB4021");
"bx2136-TriggerEnable" := #arCognexInterface["cScannerBX2136"].xOutCamTriggerEnable;
"bx2136-Trigger" := #arCognexInterface["cScannerBX2136"].xOutCamTrigger;
"bx2136-ResultsAck" := #arCognexInterface["cScannerBX2136"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO244.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO244.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1301".stJam1301_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi244.1",
nOutDirection => #TRO244.nInDirection,
InOutCarrier := "DB_JamArea1301".stJam1301_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 245 (1Sep1Switch)+Scanner(BX2138)
#TRO245.stInSeparator1.Settings.nSeparatorNo := "cSep245.1";
#TRO245.stInSeparator1.Settings.SendOverJamTimeOut := TRUE; //true = alter Sep
#TRO245.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO245.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO245.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO245.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO245.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4140"];
#TRO245.stInSenJam2 := "DB_Inputs".Sensors["cInBG4141"];
#TRO245.stInSwitch1.Settings.nSwitchNo := "cSwi245.1";
#TRO245.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO245.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO245.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO245.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO245.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2138"].xInCamTriggerReady := "bx2138-TriggerReady";
#arCognexInterface["cScannerBX2138"].xInCamTriggerAck := "bx2138-TriggerAck";
#arCognexInterface["cScannerBX2138"].xInCamResultsAvailable := "bx2138-Results Available";
#arCognexInterface["cScannerBX2138"].xInCamGeneralFault := "bx2138-General Fault";
#arCognexInterface["cScannerBX2138"].hwInCamInspectionResults := "=A01+UC022-BX2138~Ergebnisse__64_Bytes_1";
#TRO245.stInSettings.xCar2NecLeft := FALSE;
#TRO245.stInSettings.xCar2NecRight := FALSE;
#TRO245.stInSettings.xPrioDir1 := FALSE;
#TRO245.stInSettings.xPrioDir2 := TRUE;
"DB_JamArea1302".stJam1302_1.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO245(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO245.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO245.TroOut,
nInMainTroNo := "cMainTro245",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO245,
xInCarouselRun1 := #fbExitConv1302.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1302.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO245,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX2138"],
arInOutJamEntr1 := "DB_JamArea1302".stJam1302_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1302".stJam1302_1.stData,
arInOutJamExit2 := "DB_JamArea1308".stJam1308_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1308".stJam1308_1.stData,
arInOutJamExit3 := "DB_JamArea1302".stJam1302_2.arCarrier,
stInOutJamExit3 := "DB_JamArea1302".stJam1302_2.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro245"],
xOutStopper1 => "MB4140",
xOutSw1ExTo3 => "MB4141");
"bx2138-TriggerEnable" := #arCognexInterface["cScannerBX2138"].xOutCamTriggerEnable;
"bx2138-Trigger" := #arCognexInterface["cScannerBX2138"].xOutCamTrigger;
"bx2138-ResultsAck" := #arCognexInterface["cScannerBX2138"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO245.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO245.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1302".stJam1302_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi245.1",
nOutDirection => #TRO245.nInDirection,
InOutCarrier := "DB_JamArea1302".stJam1302_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 246 (1Sep1Switch)+Scanner(BX2137)
#TRO246.stInSeparator1.Settings.nSeparatorNo := "cSep246.1";
#TRO246.stInSeparator1.Settings.SendOverJamTimeOut := TRUE; //true = alter Sep
#TRO246.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO246.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO246.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO246.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO246.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4080"];
#TRO246.stInSenJam2 := "DB_Inputs".Sensors["cInBG4081"];
#TRO246.stInSwitch1.Settings.nSwitchNo := "cSwi246.1";
#TRO246.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO246.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO246.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO246.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO246.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2137"].xInCamTriggerReady := "bx2137-TriggerReady";
#arCognexInterface["cScannerBX2137"].xInCamTriggerAck := "bx2137-TriggerAck";
#arCognexInterface["cScannerBX2137"].xInCamResultsAvailable := "bx2137-Results Available";
#arCognexInterface["cScannerBX2137"].xInCamGeneralFault := "bx2137-General Fault";
#arCognexInterface["cScannerBX2137"].hwInCamInspectionResults := "=A01+UC022-BX2137~Ergebnisse__64_Bytes_1";
#TRO246.stInSettings.xCar2NecLeft := FALSE;
#TRO246.stInSettings.xCar2NecRight := TRUE;
#TRO246.stInSettings.xPrioDir1 := FALSE;
#TRO246.stInSettings.xPrioDir2 := TRUE;
"DB_JamArea1302".stJam1302_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO246(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO246.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO246.TroOut,
nInMainTroNo := "cMainTro246",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO246,
xInCarouselRun1 := #fbExitConv1302.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv1301.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO246,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX2137"],
arInOutJamEntr1 := "DB_JamArea1302".stJam1302_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1302".stJam1302_2.stData,
arInOutJamExit2 := "DB_JamArea1307".stJam1307_1.arCarrier, //!
stInOutJamExit2 := "DB_JamArea1307".stJam1307_1.stData,
arInOutJamExit3 := "DB_JamArea1302".stJam1302_3.arCarrier,
stInOutJamExit3 := "DB_JamArea1302".stJam1302_3.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro246"],
xOutStopper1 => "MB4080",
xOutSw1ExTo3 => "MB4081");
"MB4026" := 0
;
"bx2137-TriggerEnable" := #arCognexInterface["cScannerBX2137"].xOutCamTriggerEnable;
"bx2137-Trigger" := #arCognexInterface["cScannerBX2137"].xOutCamTrigger;
"bx2137-ResultsAck" := #arCognexInterface["cScannerBX2137"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO246.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO246.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1302".stJam1302_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi246.1",
nOutDirection => #TRO246.nInDirection,
InOutCarrier := "DB_JamArea1302".stJam1302_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 247(1Sep) // Ausgang zu Level 2
#TRO247.stInSeparator1.Settings.nSeparatorNo := "cSep247.1";
#TRO247.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO247.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO247.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO247.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO247.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO247.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO247.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO247.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4085"];
#TRO247.stInSenJam2 := "DB_Inputs".Sensors["cInBG4091"];
#TRO247.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam2309.Config.nCapacitySet := 1; //
#TRO247(nInMainTroNo := "cMainTro247",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO247 AND ("IO_Device_UH02_TO_UH01".stCARRIER_INFO_2[1].nBarcode = 0), //zwecks Übergabe warten bis UH03 Daten abgeholt hat
xInCarouselRun := #fbExitConv1302.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1302"."stJam1302_3".arCarrier,
stInOutJamEntr1 := "DB_JamArea1302".stJam1302_3.stData,
arInOutJamExit2 := "IO_Device_UH02_TO_UH01".stCARRIER_INFO_2, //Daten #arCarrierHandoverJam2309,
stInOutJamExit2 := #stJamDataHandoverJam2309,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO247,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro247"],
xOutStopper1 => "MB4085");
"MB4086" := TRUE;
REGION Übergabe an Level 2
//todo: sicherstellen das UH03 ready ist, ansonsten sollte UH02 warten...
"FB_I-Device_SendCarrier_J2309"(xInTrigger := (#TRO247.nState = 2500) AND #TRO247.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X5, //von Empfänger
stInOutData := "IO_Device_UH02_TO_UH01".stCARRIER_INFO_2[1], //Daten
xOutReq := "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL_1.%X5); //an Empfänger
END_REGION
END_REGION
REGION TRO 249 (Vario)
#TRO249.stInSeparator1.Settings.nSeparatorNo := "cSep249.1";
#TRO249.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO249.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO249.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO249.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO249.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO249.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO249.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO249.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3964"];
#TRO249.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO249.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO249.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3963"]; //Finger in Pos
#TRO249.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3967"];
#TRO249.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4206"]; // Conveyor full
#TRO249.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4205"]; // Jam detector
#TRO249.stInVario.Settings.xContinousEmptying := FALSE;
#TRO249.stInVario.Settings.tWaitForJog := T#400ms;
#TRO249.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO249.stInVario.Settings.nCountCarrier := 1;
#TRO249.stInVario.Settings.tWaitForStop := t#3s;
#TRO249.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
// #TRO249.stInSettings.sJamSrc := 'xxx';
// #TRO249.stInSettings.sJamDest := 'yyy';
#TRO249(nInMainTroNo := "cMainTro249",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO249,
xInAutomatic := #t_Automatik_OF4 AND "SF0190" AND "SF0240",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0191" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0262",
arInOutJamEntr := "DB_JamArea1305".stJam1305_1.arCarrier,
stInOutJamEntr := "DB_JamArea1305".stJam1305_1.stData,
arInOutJamFinger := "DB_JamArea1305".stJam1305_2.arCarrier,
stInOutJamFinger := "DB_JamArea1305".stJam1305_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO249,
xOutStopper => "MB3964",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro249"],
xOutVarioMotor => "MA0262");
END_REGION
REGION TRO 250 (1Sep)
#TRO250.stInSeparator1.Settings.nSeparatorNo := "cSep250.1";
#TRO250.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO250.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO250.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO250.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO250.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO250.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO250.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO250.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO250.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4204"];
#TRO250.stInSenJam2 := "DB_Inputs".Sensors["cInBG4203"];
#TRO250.stInSeparator1.Settings.tSenFree := T#1500ms;
#TRO250.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO250(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO250.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO250.TroOut,
nInMainTroNo := "cMainTro250",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO250,
xInCarouselRun := #fbSortConv1303.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1305".stJam1305_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1305".stJam1305_2.stData,
arInOutJamExit2 := "DB_JamArea1303".stJam1303_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1303".stJam1303_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO250,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro250"],
xOutStopper1 => "MB4204");
END_REGION
REGION TRO 252 (Vario)
#TRO252.stInSeparator1.Settings.nSeparatorNo := "cSep252.1";
#TRO252.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO252.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO252.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO252.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO252.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO252.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO252.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO252.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4024"];
#TRO252.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO252.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO252.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4023"]; //Finger in Pos
#TRO252.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4027"];
#TRO252.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4266"]; // Conveyor full
#TRO252.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4265"]; // Jam detector
#TRO252.stInVario.Settings.xContinousEmptying := FALSE;
#TRO252.stInVario.Settings.tWaitForJog := T#400ms;
#TRO252.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO252.stInVario.Settings.nCountCarrier := 1;
#TRO252.stInVario.Settings.tWaitForStop := t#3s;
#TRO252.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
// #TRO252.stInSettings.sJamSrc := 'xxx';
// #TRO252.stInSettings.sJamDest := 'yyy';
#TRO252(nInMainTroNo := "cMainTro252",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO252,
xInAutomatic := #t_Automatik_OF4 AND "SF0192" AND "SF0242",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0193" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0263",
arInOutJamEntr := "DB_JamArea1306".stJam1306_1.arCarrier,
stInOutJamEntr := "DB_JamArea1306".stJam1306_1.stData,
arInOutJamFinger := "DB_JamArea1306".stJam1306_2.arCarrier,
stInOutJamFinger := "DB_JamArea1306".stJam1306_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO252,
xOutStopper => "MB4024",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro252"],
xOutVarioMotor => "MA0263");
END_REGION
REGION TRO 253 (1Sep)
#TRO253.stInSeparator1.Settings.nSeparatorNo := "cSep253.1";
#TRO253.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO253.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO253.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO253.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO253.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO253.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO253.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO253.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO253.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4264"];
#TRO253.stInSenJam2 := "DB_Inputs".Sensors["cInBG4263"];
#TRO253.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO253.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO253(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO253.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO253.TroOut,
nInMainTroNo := "cMainTro253",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO253,
xInCarouselRun := #fbSortConv1303.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1306".stJam1306_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1306".stJam1306_2.stData,
arInOutJamExit2 := "DB_JamArea1303".stJam1303_1.arCarrier,
stInOutJamExit2 := "DB_JamArea1303".stJam1303_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO253,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro253"],
xOutStopper1 => "MB4264");
END_REGION
REGION TRO 255 (Vario)
#TRO255.stInSeparator1.Settings.nSeparatorNo := "cSep255.1";
#TRO255.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO255.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO255.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO255.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO255.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO255.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO255.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO255.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4084"];
#TRO255.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO255.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO255.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4083"]; //Finger in Pos
#TRO255.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4087"];
#TRO255.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4326"]; // Conveyor full
#TRO255.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4325"]; // Jam detector
#TRO255.stInVario.Settings.xContinousEmptying := FALSE;
#TRO255.stInVario.Settings.tWaitForJog := T#400ms;
#TRO255.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO255.stInVario.Settings.nCountCarrier := 1;
#TRO255.stInVario.Settings.tWaitForStop := t#3s;
#TRO255.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
// #TRO255.stInSettings.sJamSrc := 'xxx';
// #TRO255.stInSettings.sJamDest := 'yyy';
#TRO255(nInMainTroNo := "cMainTro255",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO255,
xInAutomatic := #t_Automatik_OF4 AND "SF0194" AND "SF0244",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0195" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0264",
arInOutJamEntr := "DB_JamArea1307".stJam1307_1.arCarrier,
stInOutJamEntr := "DB_JamArea1307".stJam1307_1.stData,
arInOutJamFinger := "DB_JamArea1307".stJam1307_2.arCarrier,
stInOutJamFinger := "DB_JamArea1307".stJam1307_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO255,
xOutStopper => "MB4084",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro255"],
xOutVarioMotor => "MA0264");
END_REGION
REGION TRO 256 (1Sep)
#TRO256.stInSeparator1.Settings.nSeparatorNo := "cSep256.1";
#TRO256.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO256.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO256.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO256.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO256.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO256.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO256.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO256.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO256.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4324"];
#TRO256.stInSenJam2 := "DB_Inputs".Sensors["cInBG4323"];
#TRO256.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO256.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO256(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO256.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO256.TroOut,
nInMainTroNo := "cMainTro256",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO256,
xInCarouselRun := #fbSortConv1304.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1307".stJam1307_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1307".stJam1307_2.stData,
arInOutJamExit2 := "DB_JamArea1304".stJam1304_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1304".stJam1304_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO256,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro256"],
xOutStopper1 => "MB4324");
END_REGION
REGION TRO 258 (Vario)
#TRO258.stInSeparator1.Settings.nSeparatorNo := "cSep258.1";
#TRO258.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO258.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO258.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO258.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO258.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO258.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO258.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO258.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO258.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO258.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4144"];
#TRO258.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO258.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO258.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4143"]; //Pusher Dog in Pos
#TRO258.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4147"];
#TRO258.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4386"]; // Conveyor full
#TRO258.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4385"]; // Jam detector
#TRO258.stInVario.Settings.xContinousEmptying := FALSE;
#TRO258.stInVario.Settings.tWaitForJog := T#400ms;
#TRO258.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO258.stInVario.Settings.nCountCarrier := 1;
#TRO258.stInVario.Settings.tWaitForStop := t#3s;
// #TRO258.stInSettings.sJamSrc := 'xxx';
// #TRO258.stInSettings.sJamDest := 'yyy';
#TRO258.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO258(nInMainTroNo := "cMainTro258",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF4 AND "SF0196" AND "SF0246",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0197" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0265",
xInRelease := "DB_TRO_Test".TRO258,
arInOutJamEntr := "DB_JamArea1308".stJam1308_1.arCarrier,
stInOutJamEntr := "DB_JamArea1308".stJam1308_1.stData,
arInOutJamFinger := "DB_JamArea1308".stJam1308_2.arCarrier,
stInOutJamFinger := "DB_JamArea1308".stJam1308_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO258,
xOutStopper => "MB4144",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro258"],
xOutVarioMotor => "MA0265");
END_REGION
REGION TRO 259 (1Sep)
#TRO259.stInSeparator1.Settings.nSeparatorNo := "cSep259.1";
#TRO259.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO259.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO259.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO259.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO259.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO259.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO259.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO259.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO259.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4384"];
#TRO259.stInSenJam2 := "DB_Inputs".Sensors["cInBG4383"];
#TRO259.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO259.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO259(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO259.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO259.TroOut,
nInMainTroNo := "cMainTro259",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO259,
xInCarouselRun := #fbSortConv1304.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1308".stJam1308_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1308".stJam1308_2.stData,
arInOutJamExit2 := "DB_JamArea1304".stJam1304_3.arCarrier,
stInOutJamExit2 := "DB_JamArea1304".stJam1304_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO259,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro259"],
xOutStopper1 => "MB4384");
END_REGION
// Ende Section 1.3
REGION TRO 260 (Vario) + Scanner (BX2115)
REGION Übernahme von Level 2
"FB_I-Device_Receive_J1601"(xInReq := "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X2,
stInData := "IO_Device_UH03_FROM_UH01".stCARRIER_INFO_2[1],
xInOutAck := "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X2);
IF "FB_I-Device_Receive_J1601".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J1601".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea1601".stJam1601_1.arCarrier);
END_IF;
END_REGION
#TRO260.stInSeparator1.Settings.nSeparatorNo := "cSep260.1";
#TRO200.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO200.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO260.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO260.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO260.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO260.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO260.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO260.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4543"];
#TRO260.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO260.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO260.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4544"]; //Pusher Dog in Pos
#TRO260.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4545"];
#TRO260.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4524"]; // Conveyor full
#TRO260.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4525"]; // Jam detector
#TRO260.stInVario.Settings.xContinousEmptying := FALSE;
#TRO260.stInVario.Settings.tWaitForJog := T#400ms;
#TRO260.stInVario.Settings.tWaitForStop := T#3s;
#TRO260.stInVario.Settings.tConvEmpty := T#15000ms;
#TRO260.stInVario.Settings.nCountCarrier := 1;
#TRO260.stInVario.Settings.xJamSenDelayActive := true;
#TRO260.stInVario.Settings.tJamSenDelay := t#1s;
#TRO260.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO260.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2115"].xInCamTriggerReady := "bx2115-TriggerReady";
#arCognexInterface["cScannerBX2115"].xInCamTriggerAck := "bx2115-TriggerAck";
#arCognexInterface["cScannerBX2115"].xInCamResultsAvailable := "bx2115-Results Available";
#arCognexInterface["cScannerBX2115"].xInCamGeneralFault := "bx2115-General Fault";
#arCognexInterface["cScannerBX2115"].hwInCamInspectionResults := "=A01+UH02-BX2115~Ergebnisse__64_Bytes_1";
#TRO260.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO260(nInMainTroNo := "cMainTro260",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0073",
xInRelease := "DB_TRO_Test".TRO260,
arInOutJamEntr := "DB_JamArea1601".stJam1601_1.arCarrier,
stInOutJamEntr := "DB_JamArea1601".stJam1601_1.stData,
arInOutJamFinger := "DB_JamArea1601".stJam1601_2.arCarrier,
stInOutJamFinger := "DB_JamArea1601".stJam1601_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2115"],
stInOutHMI := "DB_Interface_HMI".stTRO.TRO260,
xOutStopper => "MB4543",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro260"],
xOutVarioMotor => "MA0073");
"bx2115-TriggerEnable" := #arCognexInterface["cScannerBX2115"].xOutCamTriggerEnable;
"bx2115-Trigger" := #arCognexInterface["cScannerBX2115"].xOutCamTrigger;
"bx2115-ResultsAck" := #arCognexInterface["cScannerBX2115"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO260.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO260.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1601".stJam1601_1.arCarrier[1]);
END_REGION ;
END_REGION
REGION TRO 261 (1Sep)
#TRO261.stInSeparator1.Settings.nSeparatorNo := "cSep261.1";
#TRO261.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO261.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO261.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO261.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO261.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO261.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO261.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO261.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4526"];
#TRO261.stInSenJam2 := "DB_Inputs".Sensors["cInBG4507"];
#TRO261.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO261.stInSeparator1.Settings.tSenWait := T#4300ms;
(* REGION ZIEL FÜR LEERE ANGEBEN
IF "DB_JamArea1601".stJam1601_2.arCarrier[1].bStatus.%X0 THEN
"DB_JamArea1601".stJam1601_2.arCarrier[1].nDestination := "cDestF2HEmpty";//"cDestInboundEmpty";
END_IF;
END_REGION *)
#TRO261.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO261(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO261.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO261.TroOut,
nInMainTroNo := "cMainTro261",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO261,
xInCarouselRun := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1601".stJam1601_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1601".stJam1601_2.stData,
arInOutJamExit2 := "DB_JamArea1110".stJam1110_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1110".stJam1110_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO261,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro261"],
xOutStopper1 => "MB4526");
END_REGION
REGION TRO 262 (Vario) + Scanner (BX2109)
REGION Übernahme von Level 2
"FB_I-Device_Receive_J1501"(xInReq := "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X1,
stInData := "IO_Device_UH03_FROM_UH01".stCARRIER_INFO_1[1],
xInOutAck := "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X1);
IF "FB_I-Device_Receive_J1501".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J1501".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea1501".stJam1501_1.arCarrier);
END_IF;
END_REGION
#TRO262.stInSeparator1.Settings.nSeparatorNo := "cSep262.1";
#TRO262.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO262.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO262.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO262.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO262.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO262.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO262.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO262.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4540"];
#TRO262.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO262.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO262.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4541"]; //Pusher Dog in Pos
#TRO262.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4542"];
#TRO262.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4520"]; // Conveyor full
#TRO262.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4521"]; // Jam detector
#TRO262.stInVario.Settings.xContinousEmptying := FALSE;
#TRO262.stInVario.Settings.tWaitForJog := T#400ms;
#TRO262.stInVario.Settings.tConvEmpty := T#15000ms;
#TRO262.stInVario.Settings.tWaitForStop := t#3s;
#TRO262.stInVario.Settings.nCountCarrier := 1;
#TRO262.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO262.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
#TRO262.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO262.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2109"].xInCamTriggerReady := "bx2109-TriggerReady";
#arCognexInterface["cScannerBX2109"].xInCamTriggerAck := "bx2109-TriggerAck";
#arCognexInterface["cScannerBX2109"].xInCamResultsAvailable := "bx2109-Results Available";
#arCognexInterface["cScannerBX2109"].xInCamGeneralFault := "bx2109-General Fault";
#arCognexInterface["cScannerBX2109"].hwInCamInspectionResults := "=A01+UH02-BX2109~Ergebnisse__64_Bytes_1";
#TRO262.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO262(nInMainTroNo := "cMainTro262",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0072",
xInRelease := "DB_TRO_Test".TRO262,
arInOutJamEntr := "DB_JamArea1501".stJam1501_1.arCarrier,
stInOutJamEntr := "DB_JamArea1501".stJam1501_1.stData,
arInOutJamFinger := "DB_JamArea1501".stJam1501_2.arCarrier,
stInOutJamFinger := "DB_JamArea1501".stJam1501_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2109"],
stInOutHMI := "DB_Interface_HMI".stTRO.TRO262,
xOutStopper => "MB4540",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro262"],
xOutVarioMotor => "MA0072");
"bx2109-TriggerEnable" := #arCognexInterface["cScannerBX2109"].xOutCamTriggerEnable;
"bx2109-Trigger" := #arCognexInterface["cScannerBX2109"].xOutCamTrigger;
"bx2109-ResultsAck" := #arCognexInterface["cScannerBX2109"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO262.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO262.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1501".stJam1501_1.arCarrier[1]);
END_REGION ;
END_REGION
REGION TRO 263 (1Sep)
#TRO263.stInSeparator1.Settings.nSeparatorNo := "cSep263.1";
#TRO263.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO263.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO263.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO263.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO263.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO263.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO263.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO263.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4522"];
#TRO263.stInSenJam2 := "DB_Inputs".Sensors["cInBG4514"];
#TRO263.stInSeparator1.Settings.tSenFree := t#2000ms;
#TRO263.stInSeparator1.Settings.tSenWait := t#6000ms;
REGION ZIEL FÜR BELADENE ANGEBEN
IF "DB_JamArea1501".stJam1501_2.arCarrier[1].bStatus.%X0 THEN
"DB_JamArea1501".stJam1501_2.arCarrier[1].nDestination := "cDestAMRLoaded";
END_IF;
END_REGION
#TRO263(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO263.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO263.TroOut,
nInMainTroNo := "cMainTro263",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO263,
xInCarouselRun := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1501".stJam1501_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1501".stJam1501_2.stData,
arInOutJamExit2 := "DB_JamArea1110".stJam1110_3.arCarrier,
stInOutJamExit2 := "DB_JamArea1110".stJam1110_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO263,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro263"],
xOutStopper1 => "MB4522");
END_REGION
REGION TRO 264 (Vario) + Scanner (BX2108)
REGION Übernahme von Level 2
"FB_I-Device_Receive_J1401"(xInReq:="IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X0,
stInData:="IO_Device_UH03_FROM_UH01".stCARRIER_INFO[1],
xInOutAck:="IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X0);
IF "FB_I-Device_Receive_J1401".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J1401".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea1401".stJam1401_1.arCarrier);
END_IF;
END_REGION
#TRO264.stInSeparator1.Settings.nSeparatorNo := "cSep264.1";
#TRO264.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO264.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO264.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO264.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO264.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO264.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO264.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO264.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4460"];
#TRO264.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO264.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO264.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4462"]; //Finger in Pos
#TRO264.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4461"]; // MT in Pos
#TRO264.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4446"]; // Conveyor full
#TRO264.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4447"]; // Jam detector
#TRO264.stInVario.Settings.xContinousEmptying := FALSE;
#TRO264.stInVario.Settings.tWaitForJog := T#400ms;
#TRO264.stInVario.Settings.tConvEmpty := T#8000ms;
#TRO264.stInVario.Settings.nCountCarrier := 1;
#TRO264.stInVario.Settings.tWaitForStop := T#3s;
#TRO264.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO264.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2108"].xInCamTriggerReady := "bx2108-TriggerReady";
#arCognexInterface["cScannerBX2108"].xInCamTriggerAck := "bx2108-TriggerAck";
#arCognexInterface["cScannerBX2108"].xInCamResultsAvailable := "bx2108-Results Available";
#arCognexInterface["cScannerBX2108"].xInCamGeneralFault := "bx2108-General Fault";
#arCognexInterface["cScannerBX2108"].hwInCamInspectionResults := "=A01+UH02-BX2108~Ergebnisse__64_Bytes_1";
#TRO264.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO264(nInMainTroNo := "cMainTro264",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0071",
xInRelease := "DB_TRO_Test".#TRO264,
arInOutJamEntr := "DB_JamArea1401".stJam1401_1.arCarrier,
stInOutJamEntr := "DB_JamArea1401".stJam1401_1.stData,
arInOutJamFinger := "DB_JamArea1401".stJam1401_2.arCarrier,
stInOutJamFinger := "DB_JamArea1401".stJam1401_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2108"],
stInOutHMI := "DB_Interface_HMI".stTRO.TRO264,
xOutStopper => "MB4460",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro264"],
xOutVarioMotor => "MA0071");
"bx2108-TriggerEnable" := #arCognexInterface["cScannerBX2108"].xOutCamTriggerEnable;
"bx2108-Trigger" := #arCognexInterface["cScannerBX2108"].xOutCamTrigger;
"bx2108-ResultsAck" := #arCognexInterface["cScannerBX2108"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO264.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO264.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1401".stJam1401_1.arCarrier[1]);
END_REGION ;
END_REGION
REGION TRO 265 (1Sep)
#TRO265.stInSeparator1.Settings.nSeparatorNo := "cSep265.1";
#TRO265.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO265.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO265.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO265.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO265.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO265.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO265.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO265.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4445"];
#TRO265.stInSenJam2 := "DB_Inputs".Sensors["cInBG4443"];
#TRO265.stInSeparator1.Settings.tSenFree := t#1200ms;
#TRO265.stInSeparator1.Settings.tSenWait := t#4300ms;
#TRO265(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO265.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO265.TroOut,
nInMainTroNo := "cMainTro265",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO265,
xInCarouselRun := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1401".stJam1401_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1401".stJam1401_2.stData,
arInOutJamExit2 := "DB_JamArea1110".stJam1110_4.arCarrier,
stInOutJamExit2 := "DB_JamArea1110".stJam1110_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO265,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro265"],
xOutStopper1 => "MB4445");
END_REGION
REGION TRO 266(1Sep)
#TRO266.stInSeparator1.Settings.nSeparatorNo := "cSep266.1";
#TRO266.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO266.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO266.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO266.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO266.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO266.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4451"];
#TRO266.stInSenJam2 := "DB_Inputs".Sensors["cInBG4453"];
#TRO266(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO266.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO266.TroOut,
nInMainTroNo := "cMainTro266",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO266,
xInCarouselRun := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1110".stJam1110_3.arCarrier,
stInOutJamEntr1 := "DB_JamArea1110".stJam1110_3.stData,
arInOutJamExit2 := "DB_JamArea1110".stJam1110_4.arCarrier,
stInOutJamExit2 := "DB_JamArea1110".stJam1110_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO266,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro266"],
xOutStopper1 => "MB4451");
END_REGION
REGION TRO 267 (1Sep2Switch)+Scanner(BX2100)
#TRO267.stInSeparator1.Settings.nSeparatorNo := "cSep267.1";
#TRO267.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO267.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO267.stInSeparator1.Settings.xPluggedPart := TRUE;
#TRO267.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO267.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4440"];
#TRO267.stInSeparator1.stSenPart := "DB_Inputs".Sensors["cInBG4465"];
#TRO267.stInSenJam2 := "DB_Inputs".Sensors["cInBG4444"];
#TRO267.stInSenJam3 := "DB_Inputs".Sensors["cInBG4455"];
#TRO267.stInSenJam4 := "DB_Inputs".Sensors["cInBG4454"];
#TRO267.stInSwitch1.Settings.nSwitchNo := "cSwi267.1";
#TRO267.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO267.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO267.stInSwitch1.Settings.xNewSwitch := TRUE;
#TRO267.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
// #TRO267.stInSwitch2.Settings.nSwitchNo := "cSwi267.2"; todo
#TRO267.stInSwitch2.Settings.xPluggedExSen3 := FALSE;
#TRO267.stInSwitch2.Settings.xPluggedExSen4 := FALSE;
#TRO267.stInSwitch2.Settings.xNewSwitch := TRUE;
#TRO267.stInSwitch2.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO267.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO267.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2100"].xInCamTriggerReady := "bx2100-TriggerReady";
#arCognexInterface["cScannerBX2100"].xInCamTriggerAck := "bx2100-TriggerAck";
#arCognexInterface["cScannerBX2100"].xInCamResultsAvailable := "bx2100-Results Available";
#arCognexInterface["cScannerBX2100"].xInCamGeneralFault := "bx2100-General Fault";
#arCognexInterface["cScannerBX2100"].hwInCamInspectionResults := "=A01+UC021-BX2100~Ergebnisse__64_Bytes_1";
#TRO267.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam5000.Config.nCapacitySet := 1;
#stJamDataHandoverJam5001.Config.nCapacitySet := 1;
#TRO267.stInSettings.bSepType.%X2 := TRUE;
REGION !!!NUR PROVISORISCH!!!
// Statement section REGION
// "DB_JamArea1110".stJam1110_4.arCarrier[1].nDestination := "cDestF2HLoaded";//"cDestAMRLoaded";//"cDestInboundEmpty";//"cDestF2HEmpty";//2;
END_REGION ;
#TRO267(nInMainTroNo := "cMainTro267",
xInSftyOk := "cTodoTRUE",
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO267,
xInCarouselRun1 := #fbCarousel1110.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2100"],
arInOutJamEntr1 := "DB_JamArea1110".stJam1110_4.arCarrier,
stInOutJamEntr1 := "DB_JamArea1110".stJam1110_4.stData,
arInOutJamExit2 := #arCarrierHandoverJam5001,
stInOutJamExit2 := #stJamDataHandoverJam5001,
arInOutJamExit3 := #arCarrierHandoverJam5000,
stInOutJamExit3 := #stJamDataHandoverJam5000,
arInOutJamExit4 := "DB_JamArea1110".stJam1110_5.arCarrier,
stInOutJamExit4 := "DB_JamArea1110".stJam1110_5.stData,
xOutStopper1 => "MB4440",
xOutSw1ExTo3 => "MB4444",
xOutSw2ExTo3 => "MB4455",
stInOutHMI := "DB_Interface_HMI".stTRO.TRO267);
"bx2100-TriggerEnable" := #arCognexInterface["cScannerBX2100"].xOutCamTriggerEnable;
"bx2100-Trigger" := #arCognexInterface["cScannerBX2100"].xOutCamTrigger;
"bx2100-ResultsAck" := #arCognexInterface["cScannerBX2100"].xOutCamResultsAck;
IF #TRO267.xOutNewScan THEN
"FC_Send_GOHDReqM"(sInPLCID := "cPLCID",
xInSSCCReq := FALSE,
xInLengthReq := FALSE,
xInDockDoorReq := FALSE,
xInLaneStatusReq := FALSE,
nInBarcode := "DB_JamArea1110".stJam1110_4.arCarrier[1].nBarcode,
sInSSCC := '',//#TRO110.fbBarcodeReaderSSCC.sOutBarcode,//DELETE(IN := LINT_TO_STRING(#TRO110.nOutScanResultSSCC), L := 1, P := 1),
sInDecisionPoint := 'GOH.Route.01',//"cDP_DOCK_02",
sInDockDoor := '',
sInLengthInfo := '',
arInLaneStatus := #tmpPlaceHolderLaneStatus,
nInLaneCnt := 0,
FIFO := "DB_LGF_FIFO_CommWCSBL",
BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
END_IF;
REGION Kontrolle
(* IF #TRO267.nState = 1400 THEN
IF #TRO267.xTrolleyWithPart (* AND "DB_JamArea1110".stJam1110_4.arCarrier[1].nDestination = "cDestLeaveAmr" *) THEN
// "DB_JamArea1110".stJam1110_4.arCarrier[1].bStatus.%X1 := TRUE;
"DB_JamArea1110".stJam1110_4.arCarrier[1].nDestination := 0;
ELSIF #TRO267.xTrolleyWoPart THEN
// "DB_JamArea1110".stJam1110_4.arCarrier[1].bStatus.%X1 := FALSE;
"DB_JamArea1110".stJam1110_4.arCarrier[1].nDestination := 0;
END_IF;
END_IF; *)
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO267.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO267.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1110".stJam1110_4.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi267.1",
nOutDirection => #TRO267.nInDirection,
InOutCarrier := "DB_JamArea1110".stJam1110_4.arCarrier[1]);
END_REGION
REGION Send DUM to Fortna WCS
(* IF #TRO267.xOutBookedDir1 AND "FB_CommunicationWCSBL_DB".fbTeleHandler.xOutConnectionActive THEN
"FC_Send_GOHDUM"(sInPLCID := "cPLCID",
nInBarcode := #TRO313.stOutLastCarrier.nBarcode,
sInDecisionPoint := "cDP_REC_02",
sInActionTaken := '1',
nReasonCode := 1,
FIFO := "DB_LGF_FIFO_CommWCSBL",
BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
END_IF;
IF #TRO313.xOutBookedDir2 AND "FB_CommunicationWCSBL_DB".fbTeleHandler.xOutConnectionActive THEN
"FC_Send_GOHDUM"(sInPLCID := "cPLCID",
nInBarcode := #TRO313.stOutLastCarrier.nBarcode,
sInDecisionPoint := "cDP_REC_02",
sInActionTaken := '1',
nReasonCode := 1,
FIFO := "DB_LGF_FIFO_CommWCSBL",
BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
END_IF; *)
;
END_REGION
END_REGION
REGION TRO 268 (1Sep2Switch)+Scanner(BX2101) // TODO
#TRO268.stInSeparator1.Settings.nSeparatorNo := "cSep270.1";
#TRO268.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO268.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO268.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO268.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO268.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4500"];
#TRO268.stInSenJam2 := "DB_Inputs".Sensors["cInBG4532"];
#TRO268.stInSenJam3 := "DB_Inputs".Sensors["cInBG4534"];
#TRO268.stInSenJam4 := "DB_Inputs".Sensors["cInBG4504"];
#TRO268.stInSwitch1.Settings.nSwitchNo := "cSwi268.1";
#TRO268.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO268.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO268.stInSwitch1.Settings.xNewSwitch := TRUE;
#TRO268.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
// #TRO268.stInSwitch2.Settings.nSwitchNo := "cSwi268.2"; todo
#TRO268.stInSwitch2.Settings.xPluggedExSen3 := FALSE;
#TRO268.stInSwitch2.Settings.xPluggedExSen4 := FALSE;
#TRO268.stInSwitch2.Settings.xNewSwitch := TRUE;
#TRO268.stInSwitch2.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO268.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO268.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2101"].xInCamTriggerReady := "bx2101-TriggerReady";
#arCognexInterface["cScannerBX2101"].xInCamTriggerAck := "bx2101-TriggerAck";
#arCognexInterface["cScannerBX2101"].xInCamResultsAvailable := "bx2101-Results Available";
#arCognexInterface["cScannerBX2101"].xInCamGeneralFault := "bx2101-General Fault";
#arCognexInterface["cScannerBX2101"].hwInCamInspectionResults := "=A01+UC021-BX2101~Ergebnisse__64_Bytes_1";
#TRO268.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam4701.Config.nCapacitySet := 1;
#stJamDataHandoverJam1801.Config.nCapacitySet := 1;
REGION nur füt test
// "DB_JamArea1110".stJam1110_6.arCarrier[1].nDestination := 4; // 4=empty, 1=loaded, 0=kreisen, 3=F2H
END_REGION
#TRO268(nInMainTroNo := "cMainTro268",
xInSftyOk := "cTodoTRUE",
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO268,
xInCarouselRun1 := #fbCarousel1110.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2101"],
arInOutJamEntr1 := "DB_JamArea1110".stJam1110_6.arCarrier,
stInOutJamEntr1 := "DB_JamArea1110".stJam1110_6.stData,
arInOutJamExit2 := #arCarrierHandoverJam4701, //"DB_JamArea4701".stJam4701_1.arCarrier,
stInOutJamExit2 := #stJamDataHandoverJam4701, //"DB_JamArea4701".stJam4701_1.stData,
arInOutJamExit3 := #arCarrierHandoverJam1801, //"DB_JamArea1801".stJam1801_1.arCarrier,
stInOutJamExit3 := #stJamDataHandoverJam1801, //"DB_JamArea1801".stJam1801_1.stData,
arInOutJamExit4 := "DB_JamArea1110".stJam1110_1.arCarrier,
stInOutJamExit4 := "DB_JamArea1110".stJam1110_1.stData,
xOutStopper1 => "MB4500",
xOutSw1ExTo3 => "MB4503",
xOutSw2ExTo3 => "MB4504",
stInOutHMI := "DB_Interface_HMI".stTRO.TRO268);
"bx2101-TriggerEnable" := #arCognexInterface["cScannerBX2101"].xOutCamTriggerEnable;
"bx2101-Trigger" := #arCognexInterface["cScannerBX2101"].xOutCamTrigger;
"bx2101-ResultsAck" := #arCognexInterface["cScannerBX2101"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO268.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO268.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1110".stJam1110_6.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi268.1",
nOutDirection => #TRO268.nInDirection,
InOutCarrier := "DB_JamArea1110".stJam1110_6.arCarrier[1]);
END_REGION
IF #TRO268.xOutNewScan THEN
"FC_Send_GOHDReqM"(sInPLCID := "cPLCID",
xInSSCCReq := FALSE,
xInLengthReq := FALSE,
xInDockDoorReq := FALSE,
xInLaneStatusReq := FALSE,
nInBarcode := "DB_JamArea1110".stJam1110_6.arCarrier[1].nBarcode,
sInSSCC := '',//#TRO110.fbBarcodeReaderSSCC.sOutBarcode,//DELETE(IN := LINT_TO_STRING(#TRO110.nOutScanResultSSCC), L := 1, P := 1),
sInDecisionPoint := 'GOH.Route.02',//"cDP_DOCK_02",
sInDockDoor := '',
sInLengthInfo := '',
arInLaneStatus := #tmpPlaceHolderLaneStatus,
nInLaneCnt := 0,
FIFO := "DB_LGF_FIFO_CommWCSBL",
BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
END_IF;
END_REGION
REGION TRO 269 (1Sep)+Scanner (BX2102)
#TRO269.stInSeparator1.Settings.nSeparatorNo := "cSep269.1";
#TRO269.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO269.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO269.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO269.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO269.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO269.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO269.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO269.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4505"];
#TRO269.stInSenJam2 := "DB_Inputs".Sensors["cInBG4507"];
#TRO269.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO269.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2102"].xInCamTriggerReady := "bx2102-TriggerReady";
#arCognexInterface["cScannerBX2102"].xInCamTriggerAck := "bx2102-TriggerAck";
#arCognexInterface["cScannerBX2102"].xInCamResultsAvailable := "bx2102-Results Available";
#arCognexInterface["cScannerBX2102"].xInCamGeneralFault := "bx2102-General Fault";
#arCognexInterface["cScannerBX2102"].hwInCamInspectionResults := "=A01+UH02-BX2102~Ergebnisse__64_Bytes_1";
#TRO269(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO269.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO269.TroOut,
nInMainTroNo := "cMainTro269",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO269,
xInCarouselRun := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2102"],
arInOutJamEntr1 := "DB_JamArea1110".stJam1110_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea1110".stJam1110_1.stData,
arInOutJamExit2 := "DB_JamArea1110".stJam1110_2.arCarrier,
stInOutJamExit2 := "DB_JamArea1110".stJam1110_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO269,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro269"],
xOutStopper1 => "MB4505");
"bx2102-TriggerEnable" := #arCognexInterface["cScannerBX2102"].xOutCamTriggerEnable;
"bx2102-Trigger" := #arCognexInterface["cScannerBX2102"].xOutCamTrigger;
"bx2102-ResultsAck" := #arCognexInterface["cScannerBX2102"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO269.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO269.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1110".stJam1110_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 270 (Vario)
#TRO270.stInSeparator1.Settings.nSeparatorNo := "cSep270.1";
#TRO270.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO270.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO270.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO270.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO270.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO270.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO270.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO270.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4530"];
#TRO270.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO270.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO270.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4531"]; //Finger in Pos
#TRO270.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4533"]; // mT in Pos
#TRO270.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4553"]; // Conveyor full
#TRO270.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4554"]; // Jam detector
#TRO270.stInVario.Settings.xContinousEmptying := FALSE;
#TRO270.stInVario.Settings.tWaitForJog := T#400ms;
#TRO270.stInVario.Settings.tConvEmpty := T#45000ms;
#TRO270.stInVario.Settings.nCountCarrier := 1;
#TRO270.stInVario.Settings.tWaitForStop := T#3s;
#TRO270.stInVario.Settings.tRasterHigh := t#5s;
#TRO270.stInVario.Settings.tRasterLow := t#5s;
#TRO270.stInVario.Settings.xJamSenDelayActive := true;
#TRO270.stInVario.Settings.tJamSenDelay := t#1s;
#TRO270.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO270.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
#TRO270.stInVario.Settings.xLongSlope := TRUE;
#TRO270.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam4701_2.Config.nCapacitySet := 1;
#TRO270.stInSettings.xIsBorner := TRUE;
#TRO270(nInMainTroNo := "cMainTro270",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0074",
xInRelease := "DB_TRO_Test".TRO270,
arInOutJamEntr := "DB_JamArea4701".stJam4701_1.arCarrier,
stInOutJamEntr := "DB_JamArea4701".stJam4701_1.stData,
arInOutJamFinger := #arCarrierHandoverJam4701_2, //"DB_JamArea4701".stJam4701_2.arCarrier,
stInOutJamFinger := #stJamDataHandoverJam4701_2, //"DB_JamArea4701".stJam4701_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO270,
xOutStopper => "MB4530",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro270"],
xOutVarioMotor => "MA0074");
END_REGION
REGION TRO 271 (1Sep)
(* #TRO271.stInSeparator1.Settings.nSeparatorNo := "cSep271.1";
#TRO271.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO271.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO271.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO271.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO271.stInSeparator1.Settings.xPluggedJam := true;
#TRO271.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO271.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO271.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4555"];
#TRO271.stInSenJam2 := "DB_Inputs".Sensors["cInBG4546"];
#TRO271.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO271.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO271.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam4301.Config.nCapacitySet := 1; //
#TRO271(nInMainTroNo := "cMainTro271",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInCarouselRun := TRUE,
xInRelease := true,
// "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X3 AND //Ready von UH03
// NOT "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X4 AND //Busy von UH03
// NOT "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X3, //Release aktiv
stInOutMachineState := #stInOutControlUnitCabinet,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea4701".stJam4701_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea4701".stJam4701_2.stData,
arInOutJamExit2 := #arCarrierHandoverJam4301,//Jam Übergabe zu Highway Empty
stInOutJamExit2 := #stJamDataHandoverJam4301,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO271,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro271"],
xOutStopper1 => "MB4555"); *)
"MB4555" := "IO_Device_UH03_FROM_UH01".xJAM_3;
REGION UH02 <-> UH03
(* #fTrig_TRO271_TRO306(CLK := "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X4);
IF #TRO271.nState = 2500 AND #TRO271.fbSeparator1.xOutTrolleyReleasedEdge THEN
"IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X3 := TRUE; //Release von UH02 zu UH03
ELSIF #fTrig_TRO271_TRO306.Q THEN
"IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X3 := FALSE; //Release von UH02 zu UH03
END_IF; *)
END_REGION
END_REGION
REGION TRO 272 (Vario)
#TRO272.stInSeparator1.Settings.nSeparatorNo := "cSep272.1";
#TRO272.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO272.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO272.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO272.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO272.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO272.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO272.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO272.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4535"];
#TRO272.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO272.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO272.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4536"]; //Finger in Pos
#TRO272.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4537"]; // MT in Pos
#TRO272.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4550"]; // Conveyor full
#TRO272.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4551"]; // Jam detector
#TRO272.stInVario.Settings.xContinousEmptying := FALSE;
#TRO272.stInVario.Settings.tWaitForJog := T#400ms;
#TRO272.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO272.stInVario.Settings.nCountCarrier := 1;
#TRO272.stInVario.Settings.tWaitForStop := T#3s;
#TRO272.stInVario.Settings.tRasterHigh := t#5s;
#TRO272.stInVario.Settings.tRasterLow := t#5s;
#TRO272.stInVario.Settings.xJamSenDelayActive := true;
#TRO272.stInVario.Settings.tJamSenDelay := t#1s;
#TRO272.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO272.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
#TRO272.stInVario.Settings.xLongSlope := TRUE;
#TRO272.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam1801_2.Config.nCapacitySet := 1;
#TRO272.stInSettings.xIsBorner := TRUE;
#TRO272(nInMainTroNo := "cMainTro272",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0076",
xInRelease := "DB_TRO_Test".TRO272,
arInOutJamEntr := "DB_JamArea1801".stJam1801_1.arCarrier,
stInOutJamEntr := "DB_JamArea1801".stJam1801_1.stData,
arInOutJamFinger := #arCarrierHandoverJam1801_2,//"DB_JamArea1801".stJam1801_2.arCarrier,
stInOutJamFinger := #stJamDataHandoverJam1801_2,//"DB_JamArea1801".stJam1801_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO272,
xOutStopper => "MB4535",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro272"],
xOutVarioMotor => "MA0076");
END_REGION
REGION TRO 273 (1Sep)
(* #TRO273.stInSeparator1.Settings.nSeparatorNo := "cSep273.1";
#TRO273.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO273.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO273.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO273.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO273.stInSeparator1.Settings.xPluggedJam := TRUE; //FALSE;
#TRO273.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO273.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO273.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4552"];
#TRO273.stInSenJam2 := "DB_Inputs".Sensors["cInBG4547"];
#TRO273.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO273.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO273.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam4401.Config.nCapacitySet := 1; //
#TRO273(nInMainTroNo := "cMainTro273",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInCarouselRun := TRUE,
xInRelease := true,
// "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X5 AND //Ready von UH03
// NOT "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X6 AND //Busy von UH03
// NOT "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X4, //Release aktiv
stInOutMachineState := #stInOutControlUnitCabinet,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1801".stJam1801_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1801".stJam1801_2.stData,
arInOutJamExit2 := #arCarrierHandoverJam4401,//Jam Übergabe zu Highway Loaded
stInOutJamExit2 := #stJamDataHandoverJam4401,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO273,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro273"],
xOutStopper1 => "MB4552"); *)
"MB4552" := "IO_Device_UH03_FROM_UH01".xJAM_2;
REGION UH02 <-> UH03
// #fTrig_TRO273_TRO307(CLK := "IO_Device_UH03_FROM_UH01".bCARRIER_CONTROL.%X6); //flanke Busy
// IF #TRO273.nState = 2500 AND #TRO273.fbSeparator1.xOutTrolleyReleasedEdge THEN //Release von TRO
// "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X4 := TRUE; //Release von UH02 zu UH03
// ELSIF #fTrig_TRO273_TRO307.Q THEN //Busy fällt ab
// "IO_Device_UH02_TO_UH01".bCARRIER_CONTROL.%X4 := FALSE; //Release von UH02 zu UH03
// END_IF;
END_REGION
END_REGION
REGION TRO 274 (1Sep)
#TRO274.stInSeparator1.Settings.nSeparatorNo := "cSep274.1";
#TRO274.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO274.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO274.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO274.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO274.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO274.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4512"];
#TRO274.stInSenJam2 := "DB_Inputs".Sensors["cInBG4514"];
#TRO274(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO274.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO274.TroOut,
nInMainTroNo := "cMainTro274",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO274,
xInCarouselRun := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1110".stJam1110_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea1110".stJam1110_2.stData,
arInOutJamExit2 := "DB_JamArea1110".stJam1110_3.arCarrier,
stInOutJamExit2 := "DB_JamArea1110".stJam1110_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO274,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro274"],
xOutStopper1 => "MB4512");
END_REGION
REGION TRO 275 (1Sep)
#TRO275.stInSeparator1.Settings.nSeparatorNo := "cSep275.1";
#TRO275.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO275.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO275.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO275.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO275.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO275.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4456"];
#TRO275.stInSenJam2 := "DB_Inputs".Sensors["cInBG4457"];
#TRO275.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO275(nInMainTroNo := "cMainTro275",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO275,
xInCarouselRun := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea1110".stJam1110_5.arCarrier,
stInOutJamEntr1 := "DB_JamArea1110".stJam1110_5.stData,
arInOutJamExit2 := "DB_JamArea1110".stJam1110_6.arCarrier,
stInOutJamExit2 := "DB_JamArea1110".stJam1110_6.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO275,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro275"],
xOutStopper1 => "MB4456");
END_REGION
END_REGION
REGION TCP Communication
"FB_CommunicationWCSBL_DB"(fbInOutSendFIFO := "DB_LGF_FIFO_CommWCSBL",
arFifoSendBuffer := "DB_Buffer_CommunicationWCSBL".BUFFER);
"FB_CommunicationWES_ASRS_DB"(fbInOutSendFIFO := "DB_LGF_FIFO_CommWES_ASRS",
arFifoSendBuffer := "DB_Buffer_CommunicationWES_ASRS".BUFFER);
END_REGION
REGION StorageManagement
"FB_StorageManagementCall_DB"();
END_REGION
// "DB_JamArea1102".stJam1102_1.arCarrier[1].nDestination := "cDest11100";
// //"DB_JamArea1102".stJam1102_1.arCarrier[1].bStatus.%X5 := TRUE;
"DB_JamArea1202".stJam1202_1.arCarrier[1].nDestination := 12400;
END_FUNCTION_BLOCK