Files
HundM_Fortna/=A01+UH03-KF00/Programmbausteine/100_Main/FB_Main.scl
T
2026-06-23 10:21:32 +02:00

9294 lines
540 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";
stInOutControlUnitCabinetOF3 : "UDT_MainState";
stInOutControlUnitCabinetOF2 : "UDT_MainState";
stInOutControlUnitCabinetOF4 : "UDT_MainState";
END_VAR
VAR
fbSortConv2101 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv2102 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv2201 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv2202 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv2303 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbSortConv2304 : "FB_Conveyor_Sort"; // Pin-Kreisel
fbCarousel2110 : "FB_Conveyor"; // Kreisel
fbCarousel2112 : "FB_Conveyor"; // Kreisel
fbExitConv2103 : "FB_Conveyor"; // Kreisel
fbExitConv2104 : "FB_Conveyor"; // Kreisel
fbExitConv2203 : "FB_Conveyor"; // Kreisel
fbExitConv2204 : "FB_Conveyor"; // Kreisel
fbExitConv2301 : "FB_Conveyor"; // Kreisel
fbExitConv2302 : "FB_Conveyor"; // Kreisel
fbPinControl2101_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl2101_2 : "FB_SupervisionRasterSensor";
fbPinControl2102_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl2102_2 : "FB_SupervisionRasterSensor";
fbPinControl2201_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl2201_2 : "FB_SupervisionRasterSensor";
fbPinControl2202_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl2202_2 : "FB_SupervisionRasterSensor";
fbPinControl2303_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl2303_2 : "FB_SupervisionRasterSensor";
fbPinControl2304_1 : "FB_SupervisionRasterSensor"; // Pin-Überwachung mit "Zappler"-Sensor
fbPinControl2304_2 : "FB_SupervisionRasterSensor";
fbMonPinControl2101_1 : "FB_Monitoring";
fbMonPinControl2101_2 : "FB_Monitoring";
fbMonPinControl2102_1 : "FB_Monitoring";
fbMonPinControl2102_2 : "FB_Monitoring";
fbMonPinControl2201_1 : "FB_Monitoring";
fbMonPinControl2201_2 : "FB_Monitoring";
fbMonPinControl2202_1 : "FB_Monitoring";
fbMonPinControl2202_2 : "FB_Monitoring";
fbMonPinControl2303_1 : "FB_Monitoring";
fbMonPinControl2303_2 : "FB_Monitoring";
fbMonPinControl2304_1 : "FB_Monitoring";
fbMonPinControl2304_2 : "FB_Monitoring";
fbEncoderMonitor2101 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor2102 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor2201 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor2202 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor2303 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderMonitor2304 : "FB_EncoderMonitor"; // Pin-Überwachung mit Encoder Werten
fbEncoderGF3200 : "FB_EncoderTR"; // Encoder
fbEncoderGF3201 : "FB_EncoderTR"; // Encoder
fbEncoderGF3202 : "FB_EncoderTR"; // Encoder
fbEncoderGF3203 : "FB_EncoderTR"; // Encoder
fbEncoderGF3204 : "FB_EncoderTR"; // Encoder
fbEncoderGF3205 : "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
TRO300 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Loaded von Highway
TRO301 : "FB_ILS_MTRO_1Sep"; // 1Sep Loaded von Highway
TRO302 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Loaded von Highway
TRO303 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Empty von Highway
TRO304 : "FB_ILS_MTRO_1Sep"; // 1Sep Empty von Highway
TRO305 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Empty von Highway
TRO306 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Empty zu Highway
TRO307 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Loaded zu Highway
TRO308 : "FB_ILS_MTRO_Vario"; // Vario von F2H
TRO309 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep"; // 1Sep Level Eingang
TRO310 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep"; // 1Sep Level Eingang
TRO311 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep"; // 1Sep Level Eingang
TRO312 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep"; // 1Sep Level Eingang
TRO313 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Level Eingang
TRO314 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep1Swi"; // 2Sep1Swi Block 2 Eingang
TRO315 : "FB_ILS_MTRO_1Sep"; // 2Sep1Swi Block 1 Eingang
TRO316 : "FB_ILS_MTRO_1Sep"; // 2Sep1Swi Block 3 Eingang (aktuell wie 1Sep)
TRO317 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 1 zu Level 1
TRO318 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 1 Einlagern
TRO319 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 1 Auslagern
TRO320 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 1 Auslagern
TRO321 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 1 Auslagern
TRO322 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 1 Auslagern
TRO323 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 1 Ausgang
TRO324 : "FB_ILS_MTRO_Vario"; // Vario Block 1 von Level 1
TRO325 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 1 Ausgang
TRO326 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 1 Ausgang
TRO327 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.1.1
TRO328 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.1.1
TRO329 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.1.1
TRO330 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.1.2
TRO331 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.1.2
TRO332 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.1.2
TRO333 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.1.3
TRO334 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.1.3
TRO335 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.1.3
TRO336 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.1.4
TRO337 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.1.4
TRO338 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.1.4
TRO339 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 2 zu Level 1
TRO340 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 2 Einlagern
TRO341 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 2 Auslagern
TRO342 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 2 Auslagern
TRO343 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 2 Auslagern
TRO344 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 2 Auslagern
TRO345 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 2 Ausgang
TRO346 : "FB_ILS_MTRO_Vario"; // Vario Block 2 von Level 1
TRO347 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 2 Ausgang
TRO348 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 2 Ausgang
TRO349 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.2.1
TRO350 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.2.1
TRO351 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.2.1
TRO352 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.2.2
TRO353 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.2.2
TRO354 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.2.2
TRO355 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.2.3
TRO356 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.2.3
TRO357 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.2.3
TRO358 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.2.4
TRO359 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.2.4
TRO360 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.2.4
TRO361 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 3 zu Level 1
TRO362 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 3 Einlagern
TRO363 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 3 Auslagern
TRO364 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 3 Auslagern
TRO365 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 3 Auslagern
TRO366 : "FB_ILS_MTRO_1Sep1Swi"; // 1Sep1Swi Block 3 Auslagern
TRO367 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 3 Ausgang
TRO368 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Block 3 von Level 1
TRO369 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 3 Ausgang
TRO370 : "FB_ILS_MTRO_1Sep"; // 1Sep Block 3 Ausgang
TRO371 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.3.1
TRO372 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.3.1
TRO373 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.3.1
TRO374 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.3.2
TRO375 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.3.2
TRO376 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.3.2
TRO377 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.3.3
TRO378 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.3.3
TRO379 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.3.3
TRO380 : "FB_ILS_MTRO_PinStore_Auto"; // PinStore Block 2.3.4
TRO381 : "FB_ILS_MTRO_Vario"; // Vario Rückführung 2.3.4
TRO382 : "FB_ILS_MTRO_1Sep"; // 1Sep Rückführung 2.3.4
TRO383 : "FB_ILS_MTRO_Vario"; // Vario von F2H
TRO386 : "FB_ILS_MTRO_1Sep";
fbBlink1 : "FB_Blinker";
fbBlink2 : "FB_Blinker";
fbBlink3 : "FB_Blinker";
fbBlink4 : "FB_Blinker";
fbBlink5 : "FB_Blinker";
fbBlink6 : "FB_Blinker";
rTrig_TRO271_TRO306 {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
rTrig_TRO273_TRO307 {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
rTrig_PinConv3 {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
rTrig_PinConv4 {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
rTrig_PinConv5 {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
rTrig_PinConv6 {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
nPosPin3 : DInt;
nPosPin4 : DInt;
nPosPin5 : DInt;
nPosPin6 : DInt;
xReInit : Bool;
rTrigReInit {InstructionName := 'R_TRIG'; LibVersion := '1.0'; S7_SetPoint := 'False'} : R_TRIG;
nBarcodeEmpty : DInt; // NIU
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";
arCarrierHandoverJam1109 : Array[1..1] of "stCarrier";
stJamDataHandoverJam1109 : "stJamData";
arCarrierHandoverJam1209 : Array[1..1] of "stCarrier";
stJamDataHandoverJam1209 : "stJamData";
arCarrierHandoverJam1309 : Array[1..1] of "stCarrier";
stJamDataHandoverJam1309 : "stJamData";
arCarrierHandoverJam1401 : Array[1..1] of "stCarrier";
stJamDataHandoverJam1401 : "stJamData";
arCarrierHandoverJam1501 : Array[1..1] of "stCarrier";
stJamDataHandoverJam1501 : "stJamData";
arCarrierHandoverJam1601 : Array[1..1] of "stCarrier";
stJamDataHandoverJam1601 : "stJamData";
arDummyEventCorrectionInfo : Array[0..1] of "stEventCorrectionInfo";
arCarrierHandoverJam4301 : Array[1..1] of "stCarrier";
stJamDataHandoverJam4301 : "stJamData";
arCarrierHandoverJam4401 : Array[1..1] of "stCarrier";
stJamDataHandoverJam4401 : "stJamData";
nIdxUnloading : Int;
tmpTSHRCounter : DInt;
tmpTSHRResult : Bool;
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
#TRO300.nState := "DB_GLOB_TroState".arTroState["cMainTro300"];
#TRO301.nState := "DB_GLOB_TroState".arTroState["cMainTro301"];
#TRO302.nState := "DB_GLOB_TroState".arTroState["cMainTro302"];
#TRO303.nState := "DB_GLOB_TroState".arTroState["cMainTro303"];
#TRO304.nState := "DB_GLOB_TroState".arTroState["cMainTro304"];
#TRO305.nState := "DB_GLOB_TroState".arTroState["cMainTro305"];
#TRO306.nState := "DB_GLOB_TroState".arTroState["cMainTro306"];
#TRO307.nState := "DB_GLOB_TroState".arTroState["cMainTro307"];
#TRO308.nState := "DB_GLOB_TroState".arTroState["cMainTro308"];
#TRO309.nState := "DB_GLOB_TroState".arTroState["cMainTro309"];
#TRO310.nState := "DB_GLOB_TroState".arTroState["cMainTro310"];
#TRO311.nState := "DB_GLOB_TroState".arTroState["cMainTro311"];
#TRO312.nState := "DB_GLOB_TroState".arTroState["cMainTro312"];
#TRO313.nState := "DB_GLOB_TroState".arTroState["cMainTro313"];
#TRO314.nState := "DB_GLOB_TroState".arTroState["cMainTro314"];
#TRO315.nState := "DB_GLOB_TroState".arTroState["cMainTro315"];
#TRO316.nState := "DB_GLOB_TroState".arTroState["cMainTro316"];
#TRO317.nState := "DB_GLOB_TroState".arTroState["cMainTro317"];
#TRO318.nState := "DB_GLOB_TroState".arTroState["cMainTro318"];
#TRO319.nState := "DB_GLOB_TroState".arTroState["cMainTro319"];
#TRO320.nState := "DB_GLOB_TroState".arTroState["cMainTro320"];
#TRO321.nState := "DB_GLOB_TroState".arTroState["cMainTro321"];
#TRO322.nState := "DB_GLOB_TroState".arTroState["cMainTro322"];
#TRO323.nState := "DB_GLOB_TroState".arTroState["cMainTro323"];
#TRO324.nState := "DB_GLOB_TroState".arTroState["cMainTro324"];
#TRO325.nState := "DB_GLOB_TroState".arTroState["cMainTro325"];
#TRO326.nState := "DB_GLOB_TroState".arTroState["cMainTro326"];
// #TRO327.nState := "DB_GLOB_TroState".arTroState["cMainTro327"];
#TRO328.nState := "DB_GLOB_TroState".arTroState["cMainTro328"];
#TRO329.nState := "DB_GLOB_TroState".arTroState["cMainTro329"];
// #TRO330.nState := "DB_GLOB_TroState".arTroState["cMainTro330"];
#TRO331.nState := "DB_GLOB_TroState".arTroState["cMainTro331"];
#TRO332.nState := "DB_GLOB_TroState".arTroState["cMainTro332"];
// #TRO333.nState := "DB_GLOB_TroState".arTroState["cMainTro333"];
#TRO334.nState := "DB_GLOB_TroState".arTroState["cMainTro334"];
#TRO335.nState := "DB_GLOB_TroState".arTroState["cMainTro335"];
// #TRO336.nState := "DB_GLOB_TroState".arTroState["cMainTro336"];
#TRO337.nState := "DB_GLOB_TroState".arTroState["cMainTro337"];
#TRO338.nState := "DB_GLOB_TroState".arTroState["cMainTro338"];
#TRO339.nState := "DB_GLOB_TroState".arTroState["cMainTro339"];
#TRO340.nState := "DB_GLOB_TroState".arTroState["cMainTro340"];
#TRO341.nState := "DB_GLOB_TroState".arTroState["cMainTro341"];
#TRO342.nState := "DB_GLOB_TroState".arTroState["cMainTro342"];
#TRO343.nState := "DB_GLOB_TroState".arTroState["cMainTro343"];
#TRO344.nState := "DB_GLOB_TroState".arTroState["cMainTro344"];
#TRO345.nState := "DB_GLOB_TroState".arTroState["cMainTro345"];
#TRO346.nState := "DB_GLOB_TroState".arTroState["cMainTro346"];
#TRO347.nState := "DB_GLOB_TroState".arTroState["cMainTro347"];
#TRO348.nState := "DB_GLOB_TroState".arTroState["cMainTro348"];
//#TRO349.nState := "DB_GLOB_TroState".arTroState["cMainTro349"];
#TRO350.nState := "DB_GLOB_TroState".arTroState["cMainTro350"];
#TRO351.nState := "DB_GLOB_TroState".arTroState["cMainTro351"];
// #TRO352.nState := "DB_GLOB_TroState".arTroState["cMainTro352"];
#TRO353.nState := "DB_GLOB_TroState".arTroState["cMainTro353"];
#TRO354.nState := "DB_GLOB_TroState".arTroState["cMainTro354"];
// #TRO355.nState := "DB_GLOB_TroState".arTroState["cMainTro355"];
#TRO356.nState := "DB_GLOB_TroState".arTroState["cMainTro356"];
#TRO357.nState := "DB_GLOB_TroState".arTroState["cMainTro357"];
// #TRO358.nState := "DB_GLOB_TroState".arTroState["cMainTro358"];
#TRO359.nState := "DB_GLOB_TroState".arTroState["cMainTro359"];
#TRO360.nState := "DB_GLOB_TroState".arTroState["cMainTro360"];
#TRO361.nState := "DB_GLOB_TroState".arTroState["cMainTro361"];
#TRO362.nState := "DB_GLOB_TroState".arTroState["cMainTro362"];
#TRO363.nState := "DB_GLOB_TroState".arTroState["cMainTro363"];
#TRO364.nState := "DB_GLOB_TroState".arTroState["cMainTro364"];
#TRO365.nState := "DB_GLOB_TroState".arTroState["cMainTro365"];
#TRO366.nState := "DB_GLOB_TroState".arTroState["cMainTro366"];
#TRO367.nState := "DB_GLOB_TroState".arTroState["cMainTro367"];
#TRO369.nState := "DB_GLOB_TroState".arTroState["cMainTro369"];
#TRO370.nState := "DB_GLOB_TroState".arTroState["cMainTro370"];
// #TRO371.nState := "DB_GLOB_TroState".arTroState["cMainTro371"];
#TRO372.nState := "DB_GLOB_TroState".arTroState["cMainTro372"];
#TRO373.nState := "DB_GLOB_TroState".arTroState["cMainTro373"];
// #TRO374.nState := "DB_GLOB_TroState".arTroState["cMainTro374"];
#TRO375.nState := "DB_GLOB_TroState".arTroState["cMainTro375"];
#TRO376.nState := "DB_GLOB_TroState".arTroState["cMainTro376"];
// #TRO377.nState := "DB_GLOB_TroState".arTroState["cMainTro377"];
#TRO378.nState := "DB_GLOB_TroState".arTroState["cMainTro378"];
#TRO379.nState := "DB_GLOB_TroState".arTroState["cMainTro379"];
// #TRO380.nState := "DB_GLOB_TroState".arTroState["cMainTro380"];
#TRO381.nState := "DB_GLOB_TroState".arTroState["cMainTro381"];
#TRO382.nState := "DB_GLOB_TroState".arTroState["cMainTro382"];
#TRO386.nState := "DB_GLOB_TroState".arTroState["cMainTro386"];
END_IF;
END_REGION
REGION Automatik
// #t_Automatik := #stInOutControlUnitCabinet.xRunning AND NOT #stInOutControlUnitCabinet.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMain.Q;
#t_Automatik_OF1 := "DB_InterfaceSafety".stFromSafety.stMainContactorsUH03.Q; //#stInOutControlUnitCabinetOF1.xRunning AND NOT #stInOutControlUnitCabinetOF1.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q(* AND "IBN".xAutomatikON *);
#t_Automatik_OF2 := "DB_InterfaceSafety".stFromSafety.stMainContactorsUC031.Q; //#stInOutControlUnitCabinetOF2.xRunning AND NOT #stInOutControlUnitCabinetOF2.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q(* AND "IBN".xAutomatikON *);
#t_Automatik_OF3 := "DB_InterfaceSafety".stFromSafety.stMainContactorsUC032.Q; //#stInOutControlUnitCabinetOF3.xRunning AND NOT #stInOutControlUnitCabinetOF3.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q(* AND "IBN".xAutomatikON *);
#t_Automatik_OF4 := "DB_InterfaceSafety".stFromSafety.stMainContactorsUC033.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 2101
#fbSortConv2101.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv2101.Settings.tStartingTime := T#50ms;
#fbSortConv2101.Settings.xGridActive := FALSE;
#fbSortConv2101.Settings.sMotorProtectName := 'FC0140';
#fbSortConv2101(xInEnabled :=
"SF0120" AND "SF0122" AND
NOT #fbPinControl2101_1.xOutErrorRasterSensor AND
NOT #fbPinControl2101_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor2101.xOutError AND
NOT #TRO327.xOutUnloadingError AND
NOT #TRO330.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF2,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF2.xRestart AND NOT #TRO327.xOutConvReqSort AND
NOT #TRO330.xOutConvReqSort AND NOT #TRO329.xOutCarouselReq AND
NOT #TRO332.xOutCarouselReq AND NOT #TRO318.xOutCarouselReq2,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0140",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0140",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
stInOutInterfaceHMI := "DB_Interface_HMI".#stConveyors.stSort.stCS2101);
REGION Überwachung Pins 1
#fbPinControl2101_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2101_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2101_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2101_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2101_1(stInSenRaster := "DB_Inputs".Sensors["cInBG3061"],
xInErrorQuit := "SF0121" OR "SF0123" OR "SF0117",
xInMotorRun := #fbSortConv2101.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2101_1.stSettings.nErrorType := 1;
#fbMonPinControl2101_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2101_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2101_1.stSettings.tDelay := T#1s;
#fbMonPinControl2101_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2101',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3061"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF2,
xInQuitError := #stInOutControlUnitCabinetOF2.xQuitError,
xInSignal := NOT #fbPinControl2101_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl2101_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2101_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2101_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2101_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2101_2(stInSenRaster := "DB_Inputs".Sensors["cInBG3001"],
xInErrorQuit := "SF0121" OR "SF0123" OR "SF0117",
xInMotorRun := #fbSortConv2101.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2101_2.stSettings.nErrorType := 1;
#fbMonPinControl2101_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2101_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2101_2.stSettings.tDelay := T#1s;
#fbMonPinControl2101_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2101',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3001"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF2,
xInQuitError := #stInOutControlUnitCabinetOF2.xQuitError,
xInSignal := NOT #fbPinControl2101_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor2101(sInConveyorName := 'KR-2101',
sInEncoderName := 'GF3200',
nInEncoderValue := "GF3200_PosAct",
nInEncoderMax := "cEncoderGF3200",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv2101.xOutConveyorFullSpeed,
xInQuit := "SF0121" OR "SF0123" OR "SF0117",
xInActivate := TRUE,
stInOutControlUnitCabinet:=#stInOutControlUnitCabinetOF2);
END_REGION
END_REGION
REGION Conveyor 2102
#fbSortConv2102.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv2102.Settings.tStartingTime := T#50ms;
#fbSortConv2102.Settings.xGridActive := FALSE;
#fbSortConv2102.Settings.sMotorProtectName := 'FC0141';
#fbSortConv2102(xInEnabled :=
"SF0124" AND "SF0126" AND
NOT #fbPinControl2102_1.xOutErrorRasterSensor AND
NOT #fbPinControl2102_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor2102.xOutError AND
NOT #TRO333.xOutUnloadingError AND
NOT #TRO336.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF2,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF2.xRestart AND NOT #TRO333.xOutConvReqSort AND
NOT #TRO336.xOutConvReqSort AND NOT #TRO335.xOutCarouselReq AND
NOT #TRO338.xOutCarouselReq AND NOT #TRO318.xOutCarouselReq1 AND NOT #TRO318.xOutCarouselReq2 AND
NOT #TRO317.xOutCarouselReq1 AND NOT #TRO317.xOutCarouselReq2 AND
NOT #TRO315.xOutCarouselReq,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0141",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0141",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS2102);
REGION Überwachung Pins 1
#fbPinControl2102_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2102_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2102_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2102_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2102_1(stInSenRaster := "DB_Inputs".Sensors["cInBG3121"],
xInErrorQuit := "SF0125" OR "SF0127" OR "SF0117",
xInMotorRun := #fbSortConv2102.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2102_1.stSettings.nErrorType := 1;
#fbMonPinControl2102_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2102_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2102_1.stSettings.tDelay := T#1s;
#fbMonPinControl2102_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2102',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3121"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF2,
xInQuitError := #stInOutControlUnitCabinetOF2.xQuitError,
xInSignal := NOT #fbPinControl2102_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl2102_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2102_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2102_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2102_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2102_2(stInSenRaster := "DB_Inputs".Sensors["cInBG3181"],
xInErrorQuit := "SF0125" OR "SF0127" OR "SF0117",
xInMotorRun := #fbSortConv2102.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2102_2.stSettings.nErrorType := 1;
#fbMonPinControl2102_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2102_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2102_2.stSettings.tDelay := T#1s;
#fbMonPinControl2102_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2102',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3181"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF2,
xInQuitError := #stInOutControlUnitCabinetOF2.xQuitError,
xInSignal := NOT #fbPinControl2102_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor2102(sInConveyorName := 'KR-2102',
sInEncoderName := 'GF3201',
nInEncoderValue := "GF3201_PosAct",
nInEncoderMax := "cEncoderGF3201",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv2102.xOutConveyorFullSpeed,
xInQuit := "SF0125" OR "SF0127" OR "SF0117",
xInActivate := TRUE,
stInOutControlUnitCabinet:=#stInOutControlUnitCabinetOF2);
END_REGION
END_REGION
REGION Conveyor 2201
#fbSortConv2201.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv2201.Settings.tStartingTime := T#50ms;
#fbSortConv2201.Settings.xGridActive := FALSE;
#fbSortConv2201.Settings.sMotorProtectName := 'FC0062';
#fbSortConv2201(xInEnabled :=
"SF0050" AND "SF0052" AND
NOT #fbPinControl2201_1.xOutErrorRasterSensor AND
NOT #fbPinControl2201_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor2201.xOutError AND
NOT #TRO349.xOutUnloadingError AND
NOT #TRO352.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF1,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF1.xRestart AND NOT #TRO349.xOutConvReqSort AND
NOT #TRO352.xOutConvReqSort AND NOT #TRO351.xOutCarouselReq AND
NOT #TRO354.xOutCarouselReq AND NOT #TRO340.xOutCarouselReq2 AND NOT #TRO340.xOutCarouselReq1,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0062",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0062",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS2201);
REGION Überwachung Pins 1
#fbPinControl2201_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2201_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2201_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2201_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2201_1(stInSenRaster := "DB_Inputs".Sensors["cInBG3481"],
xInErrorQuit := "SF0051",
xInMotorRun := #fbSortConv2201.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2201_1.stSettings.nErrorType := 1;
#fbMonPinControl2201_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2201_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2201_1.stSettings.tDelay := T#1s;
#fbMonPinControl2201_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2201',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3481"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF1,
xInQuitError := #stInOutControlUnitCabinetOF1.xQuitError,
xInSignal := NOT #fbPinControl2201_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl2201_2.stInSettings.xInEnableSupervision := 0;//TRUE;
#fbPinControl2201_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2201_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2201_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2201_2(stInSenRaster := "DB_Inputs".Sensors["cInBG3541"],
xInErrorQuit := "SF0053",
xInMotorRun := #fbSortConv2201.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2201_2.stSettings.nErrorType := 1;
#fbMonPinControl2201_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2201_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2201_2.stSettings.tDelay := T#1s;
#fbMonPinControl2201_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2201',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3541"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF1,
xInQuitError := #stInOutControlUnitCabinetOF1.xQuitError,
xInSignal := NOT #fbPinControl2201_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor2201(sInConveyorName := 'KR-2201',
sInEncoderName := 'GF3202',
nInEncoderValue := "GF3202_PosAct",
nInEncoderMax := "cEncoderGF3202",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv2201.xOutConveyorFullSpeed,
xInQuit := "SF0051" OR "SF0053",
xInActivate := TRUE,
stInOutControlUnitCabinet:=#stInOutControlUnitCabinetOF1);
END_REGION
END_REGION
REGION Conveyor 2202
#fbSortConv2202.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv2202.Settings.tStartingTime := T#50ms;
#fbSortConv2202.Settings.xGridActive := FALSE;
#fbSortConv2202.Settings.sMotorProtectName := 'FC0063';
#fbSortConv2202(xInEnabled :=
"SF0054" AND "SF0056" AND
NOT #fbPinControl2202_1.xOutErrorRasterSensor AND
NOT #fbPinControl2202_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor2202.xOutError AND
NOT #TRO355.xOutUnloadingError AND
NOT #TRO358.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF1,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF1.xRestart AND NOT #TRO355.xOutConvReqSort AND
NOT #TRO358.xOutConvReqSort AND NOT #TRO357.xOutCarouselReq AND
NOT #TRO360.xOutCarouselReq AND NOT #TRO340.xOutCarouselReq1 AND
NOT #TRO339.xOutCarouselReq1 AND NOT #TRO339.xOutCarouselReq2 AND
NOT #TRO314.xOutCarouselReq1 AND NOT #TRO314.xOutCarouselReq2,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0063",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0063",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS2202);
REGION Überwachung Pins 1
#fbPinControl2202_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2202_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2202_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2202_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2202_1(stInSenRaster := "DB_Inputs".Sensors["cInBG3601"],
xInErrorQuit := "SF0055",
xInMotorRun := #fbSortConv2202.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2202_1.stSettings.nErrorType := 1;
#fbMonPinControl2202_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2202_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2202_1.stSettings.tDelay := T#1s;
#fbMonPinControl2202_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2202',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3601"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF1,
xInQuitError := #stInOutControlUnitCabinetOF1.xQuitError,
xInSignal := NOT #fbPinControl2202_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl2202_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2202_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2202_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2202_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2202_2(stInSenRaster := "DB_Inputs".Sensors["cInBG3661"],
xInErrorQuit := "SF0057",
xInMotorRun := #fbSortConv2202.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2202_2.stSettings.nErrorType := 1;
#fbMonPinControl2202_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2202_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2202_2.stSettings.tDelay := T#1s;
#fbMonPinControl2202_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2202',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG3661"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF1,
xInQuitError := #stInOutControlUnitCabinetOF1.xQuitError,
xInSignal := NOT #fbPinControl2202_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor2202(sInConveyorName := 'KR-2202',
sInEncoderName := 'GF3203',
nInEncoderValue := "GF3203_PosAct",
nInEncoderMax := "cEncoderGF3203",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv2202.xOutConveyorFullSpeed,
xInQuit := "SF0055" OR "SF0057",
xInActivate := TRUE,
stInOutControlUnitCabinet:=#stInOutControlUnitCabinetOF1);
END_REGION
END_REGION
REGION Conveyor 2303
#fbSortConv2303.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv2303.Settings.tStartingTime := T#50ms;
#fbSortConv2303.Settings.xGridActive := FALSE;
#fbSortConv2303.Settings.sMotorProtectName := 'FC0206';
#fbSortConv2303(xInEnabled :=
"SF0240" AND "SF0242" AND
NOT #fbPinControl2303_1.xOutErrorRasterSensor AND
NOT #fbPinControl2303_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor2303.xOutError AND
NOT #TRO371.xOutUnloadingError AND
NOT #TRO374.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF4,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF4.xRestart AND NOT #TRO371.xOutConvReqSort AND
NOT #TRO374.xOutConvReqSort AND NOT #TRO373.xOutCarouselReq AND
NOT #TRO376.xOutCarouselReq AND NOT #TRO362.xOutCarouselReq1,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0260",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0260",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS2303);
REGION Überwachung Pins 1
#fbPinControl2303_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2303_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2303_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2303_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2303_1(stInSenRaster := "DB_Inputs".Sensors["cInBG4261"],
xInErrorQuit := "SF0243" OR "SF0237",
xInMotorRun := #fbSortConv2303.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2303_1.stSettings.nErrorType := 1;
#fbMonPinControl2303_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2303_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2303_1.stSettings.tDelay := T#1s;
#fbMonPinControl2303_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2303',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG4261"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF4,
xInQuitError := #stInOutControlUnitCabinetOF4.xQuitError,
xInSignal := NOT #fbPinControl2303_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl2303_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2303_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2303_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2303_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2303_2(stInSenRaster := "DB_Inputs".Sensors["cInBG4201"],
xInErrorQuit := "SF0241" OR "SF0237",
xInMotorRun := #fbSortConv2303.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2303_2.stSettings.nErrorType := 1;
#fbMonPinControl2303_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2303_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2303_2.stSettings.tDelay := T#1s;
#fbMonPinControl2303_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2303',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG4201"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF4,
xInQuitError := #stInOutControlUnitCabinetOF4.xQuitError,
xInSignal := NOT #fbPinControl2303_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor2303(sInConveyorName := 'KR-2303',
sInEncoderName := 'GF3204',
nInEncoderValue := "GF3204_PosAct",
nInEncoderMax := "cEncoderGF3204",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv2303.xOutConveyorFullSpeed,
xInQuit := "SF0241" OR "SF0243" OR "SF0237",
xInActivate := TRUE,
stInOutControlUnitCabinet:=#stInOutControlUnitCabinetOF4);
END_REGION
END_REGION
REGION Conveyor 2304
#fbSortConv2304.Settings.tEnergySafeTime := T#120s; // Konstante TODO
#fbSortConv2304.Settings.tStartingTime := T#50ms;
#fbSortConv2304.Settings.xGridActive := FALSE;
#fbSortConv2304.Settings.sMotorProtectName := 'FC0261';
#fbSortConv2304(xInEnabled :=
"SF0244" AND "SF0246" AND
NOT #fbPinControl2304_1.xOutErrorRasterSensor AND
NOT #fbPinControl2304_2.xOutErrorRasterSensor AND
NOT #fbEncoderMonitor2304.xOutError AND
NOT #TRO377.xOutUnloadingError AND
NOT #TRO380.xOutUnloadingError,
xInFull := "cTodoFalse",
xInNextConveyorReady := "cTodoTRUE",
xInAutomaticMode := #t_Automatik_OF4,
xInEnergySafeRequest := NOT #stInOutControlUnitCabinetOF4.xRestart AND NOT #TRO377.xOutConvReqSort AND
NOT #TRO380.xOutConvReqSort AND NOT #TRO379.xOutCarouselReq AND
NOT #TRO382.xOutCarouselReq AND NOT #TRO362.xOutCarouselReq2 AND
NOT #TRO361.xOutCarouselReq1 AND NOT #TRO361.xOutCarouselReq2 AND
NOT #TRO362.xOutCarouselReq1 AND
NOT #TRO316.xOutCarouselReq,
xInChainBreakMonitoring := TRUE,
xInChainBreakMonitoringSmoothing := false,
xInMotorProtectionMonitoring := "FC0261",
xInSafetyEnable := "cTodoTRUE",
xOutPowerContactor => "MA0261",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stSort.stCS2304);
REGION Überwachung Pins 1
#fbPinControl2304_1.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2304_1.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2304_1.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2304_1.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2304_1(stInSenRaster := "DB_Inputs".Sensors["cInBG4321"],
xInErrorQuit := "SF0245" OR "SF0237",
xInMotorRun := #fbSortConv2304.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2304_1.stSettings.nErrorType := 1;
#fbMonPinControl2304_1.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2304_1.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2304_1.stSettings.tDelay := T#1s;
#fbMonPinControl2304_1(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2304',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG4321"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF4,
xInQuitError := #stInOutControlUnitCabinetOF4.xQuitError,
xInSignal := NOT #fbPinControl2304_1.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Pins 2
#fbPinControl2304_2.stInSettings.xInEnableSupervision := TRUE;
#fbPinControl2304_2.stInSettings.tInDelayMotorRun := T#1000ms;
#fbPinControl2304_2.stInSettings.tInRasterHigh := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2304_2.stInSettings.tInRasterLow := T#1800ms;//T#1300ms;//T#600ms;
#fbPinControl2304_2(stInSenRaster := "DB_Inputs".Sensors["cInBG4381"],
xInErrorQuit := "SF0247" OR "SF0237",
xInMotorRun := #fbSortConv2304.xOutConveyorFullSpeed);
REGION Monitoring
#fbMonPinControl2304_2.stSettings.nErrorType := 1;
#fbMonPinControl2304_2.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonPinControl2304_2.stSettings.xSelfQuit := TRUE;
#fbMonPinControl2304_2.stSettings.tDelay := T#1s;
#fbMonPinControl2304_2(sInFctnName := 'Rastersensorueberwachung',
sInPrefix := 'KR-M2304',
wInTextListId_Function := 3000,
wInTextListId_Message := 3000,
sInSuffix := "DB_Inputs".Sensors["cInBG4381"].sName,
InOutMachineState := #stInOutControlUnitCabinetOF4,
xInQuitError := #stInOutControlUnitCabinetOF4.xQuitError,
xInSignal := NOT #fbPinControl2304_2.xOutErrorRasterSensor,
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
END_REGION
END_REGION
REGION Überwachung Encoder
#fbEncoderMonitor2304(sInConveyorName := 'KR-2304',
sInEncoderName := 'GF3205',
nInEncoderValue := "GF3205_PosAct",
nInEncoderMax := "cEncoderGF3205",
nInEncMonVal := "cEncMonVal",
xInClock := "Clock_2Hz",
xInConveyorRun := #fbSortConv2304.xOutConveyorFullSpeed,
xInQuit := "SF0245" OR "SF0247" OR "SF0237",
xInActivate := TRUE,
stInOutControlUnitCabinet:=#stInOutControlUnitCabinetOF4);
END_REGION
END_REGION
END_REGION
REGION Kreisel
REGION Conveyor 2110
#fbCarousel2110.Settings.tEnergySafeTime := T#90s;
#fbCarousel2110.Settings.tStartingTime := T#50ms;
#fbCarousel2110.Settings.xGridActive := TRUE;
#fbCarousel2110.Settings.sMotorProtectName := 'FC0071';
#fbCarousel2110.Settings.sGridSenName := 'BG4505';
#fbCarousel2110(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *) #stInOutControlUnitCabinetOF1.xRestart OR
#TRO309.xOutCarouselReq OR #TRO310.xOutCarouselReq OR
#TRO311.xOutCarouselReq OR #TRO312.xOutCarouselReq OR
#TRO313.xOutCarouselReq1 OR #TRO313.xOutCarouselReq2 OR
#TRO314.xOutCarouselReq1 OR #TRO314.xOutCarouselReq2 OR
#TRO315.xOutCarouselReq OR #TRO386.xOutCarouselReq,
xInEnabled := "SF0080",
xInGridSen := "DB_Inputs".Sensors["cInBG4505"].xDirectSensor,
xInGridQuit := "SF0081",
xInAutomaticMode := #t_Automatik_OF1,
xInMotorProtectionMonitoring := "FC0071",
xOutPowerContactor => "MA0071",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI:="DB_Interface_HMI".stConveyors.stCarousel.stCarEntr1);
END_REGION
REGION Conveyor 2112
#fbCarousel2112.Settings.tEnergySafeTime := T#90s;
#fbCarousel2112.Settings.tStartingTime := T#50ms;
#fbCarousel2112.Settings.xGridActive := TRUE;
#fbCarousel2112.Settings.sMotorProtectName := 'FC0072';
#fbCarousel2112.Settings.sGridSenName := 'BG4396';
#fbCarousel2112(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *) #stInOutControlUnitCabinetOF1.xRestart OR
#TRO313.xOutCarouselReq1 OR #TRO313.xOutCarouselReq2 OR
#TRO316.xOutCarouselReq,
xInEnabled := "SF0082",
xInGridSen := "DB_Inputs".Sensors["cInBG4396"].xDirectSensor,
xInGridQuit := "SF0083",
xInAutomaticMode := #t_Automatik_OF1,
xInMotorProtectionMonitoring := "FC0072",
xOutPowerContactor => "MA0072",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI:="DB_Interface_HMI".stConveyors.stCarousel.stCarEntr2);
END_REGION
REGION "Exit" Conv 2103
#fbExitConv2103.Settings.tEnergySafeTime := T#90s;
#fbExitConv2103.Settings.tStartingTime := T#50ms;
#fbExitConv2103.Settings.xGridActive := TRUE;
#fbExitConv2103.Settings.sMotorProtectName := 'FC0060';
#fbExitConv2103.Settings.sGridSenName := 'BG3306';
#fbExitConv2103(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *) #stInOutControlUnitCabinetOF1.xRestart OR
#TRO327.xOutConvReqExit OR #TRO330.xOutConvReqExit OR
#TRO319.xOutCarouselReq1 OR #TRO319.xOutCarouselReq2 OR
#TRO320.xOutCarouselReq1 OR #TRO320.xOutCarouselReq2 OR
#TRO322.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.stCar2103Exit);
END_REGION
REGION "Exit" Conv 2104
#fbExitConv2104.Settings.tEnergySafeTime := T#90s;
#fbExitConv2104.Settings.tStartingTime := T#50ms;
#fbExitConv2104.Settings.xGridActive := TRUE;
#fbExitConv2104.Settings.sMotorProtectName := 'FC0061';
#fbExitConv2104.Settings.sGridSenName := 'BG3436';
#fbExitConv2104(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *) #stInOutControlUnitCabinetOF1.xRestart OR
#TRO333.xOutConvReqExit OR #TRO336.xOutConvReqExit OR
#TRO321.xOutCarouselReq1 OR #TRO321.xOutCarouselReq2 OR
#TRO322.xOutCarouselReq1 OR #TRO322.xOutCarouselReq2 OR
#TRO320.xOutCarouselReq2 OR #TRO323.xOutCarouselReq OR
#TRO325.xOutCarouselReq OR #TRO326.xOutCarouselReq,
xInEnabled := "SF0044" AND "SF0046",
xInGridSen := "DB_Inputs".Sensors["cInBG3436"].xDirectSensor,
xInGridQuit := "SF0055" OR "SF0057",
xInAutomaticMode := #t_Automatik_OF1,
xInMotorProtectionMonitoring := "FC0061",
xOutPowerContactor => "MA0061",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
stInOutInterfaceHMI:="DB_Interface_HMI".stConveyors.stCarousel.stCar2104Exit);
END_REGION
REGION "Exit" Conv 2203
#fbExitConv2203.Settings.tEnergySafeTime := T#90s;
#fbExitConv2203.Settings.tStartingTime := T#50ms;
#fbExitConv2203.Settings.xGridActive := TRUE;
#fbExitConv2203.Settings.sMotorProtectName := 'FC0200';
#fbExitConv2203.Settings.sGridSenName := 'BG3786';
#fbExitConv2203(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *) #stInOutControlUnitCabinetOF3.xRestart OR
#TRO349.xOutConvReqExit OR #TRO352.xOutConvReqExit OR
#TRO341.xOutCarouselReq1 OR #TRO341.xOutCarouselReq2 OR
#TRO342.xOutCarouselReq1 OR #TRO342.xOutCarouselReq2 OR
#TRO344.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.stCar2203Exit);
END_REGION
REGION "Exit" Conv 2204
#fbExitConv2204.Settings.tEnergySafeTime := T#90s;
#fbExitConv2204.Settings.tStartingTime := T#50ms;
#fbExitConv2204.Settings.xGridActive := TRUE;
#fbExitConv2204.Settings.sMotorProtectName := 'FC0201';
#fbExitConv2204.Settings.sGridSenName := 'BG3916';
#fbExitConv2204(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *) #stInOutControlUnitCabinetOF3.xRestart OR
#TRO355.xOutConvReqExit OR #TRO358.xOutConvReqExit OR
#TRO343.xOutCarouselReq1 OR #TRO343.xOutCarouselReq2 OR
#TRO344.xOutCarouselReq1 OR #TRO344.xOutCarouselReq2 OR
#TRO342.xOutCarouselReq2 OR #TRO345.xOutCarouselReq OR
#TRO347.xOutCarouselReq OR #TRO348.xOutCarouselReq,
xInEnabled := "SF0184" AND "SF0186",
xInGridSen := "DB_Inputs".Sensors["cInBG3916"].xDirectSensor,
xInGridQuit := "SF0185" OR "SF0187",
xInAutomaticMode := #t_Automatik_OF3,
xInMotorProtectionMonitoring := "FC0201",
xOutPowerContactor => "MA0201",
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF3,
stInOutInterfaceHMI:="DB_Interface_HMI".stConveyors.stCarousel.stCar2204Exit);
END_REGION
REGION "Exit" Conv 2301
#fbExitConv2301.Settings.tEnergySafeTime := T#90s;
#fbExitConv2301.Settings.tStartingTime := T#50ms;
#fbExitConv2301.Settings.xGridActive := TRUE;
#fbExitConv2301.Settings.sMotorProtectName := 'FC0202';
#fbExitConv2301.Settings.sGridSenName := 'BG4026';
#fbExitConv2301(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *) #stInOutControlUnitCabinetOF3.xRestart OR
#TRO371.xOutConvReqExit OR #TRO374.xOutConvReqExit OR
#TRO363.xOutCarouselReq1 OR #TRO363.xOutCarouselReq2 OR
#TRO364.xOutCarouselReq1 OR #TRO364.xOutCarouselReq2 OR
#TRO366.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.stCar2301Exit);
END_REGION
REGION "Exit" Conv 2302
#fbExitConv2302.Settings.tEnergySafeTime := T#90s;
#fbExitConv2302.Settings.tStartingTime := T#50ms;
#fbExitConv2302.Settings.xGridActive := TRUE;
#fbExitConv2302.Settings.sMotorProtectName := 'FC0203';
#fbExitConv2302.Settings.sGridSenName := 'BG4150';
#fbExitConv2302(xInRequestRun := (* "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR *) #stInOutControlUnitCabinetOF3.xRestart OR
#TRO377.xOutConvReqExit OR #TRO380.xOutConvReqExit OR
#TRO365.xOutCarouselReq1 OR #TRO365.xOutCarouselReq2 OR
#TRO366.xOutCarouselReq1 OR #TRO366.xOutCarouselReq2 OR
#TRO364.xOutCarouselReq1 OR #TRO367.xOutCarouselReq OR
#TRO369.xOutCarouselReq OR #TRO370.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.stCar2302Exit);
END_REGION
END_REGION
END_REGION ;
REGION Encoder
REGION GF3200
#fbEncoderGF3200(nInPosAct := "GF3200_PosAct",
xInPresetAdjQuit := "GF3200_PresetAdjQuit",
nInEncoderMax := "cEncoderGF3200",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG3061"],
nInPitch := 250); //Konstante
"GF3200_PresetAdjSet" := #fbEncoderGF3200.xOutPresetAdjSet;
"GF3200_PresetAdjValue" := #fbEncoderGF3200.nOutPresetAdjSetValue;
END_REGION
REGION GF3201
#fbEncoderGF3201(nInPosAct := "GF3201_PosAct",
xInPresetAdjQuit := "GF3201_PresetAdjQuit",
nInEncoderMax := "cEncoderGF3201",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG3121"],
nInPitch := 250); //Konstante
"GF3201_PresetAdjSet" := #fbEncoderGF3201.xOutPresetAdjSet;
"GF3201_PresetAdjValue" := #fbEncoderGF3201.nOutPresetAdjSetValue;
END_REGION
REGION GF3202
#fbEncoderGF3202(nInPosAct := "GF3202_PosAct",
xInPresetAdjQuit := "GF3202_PresetAdjQuit",
nInEncoderMax := "cEncoderGF3202",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG3541"],
nInPitch := 250); //Konstante
"GF3202_PresetAdjSet" := #fbEncoderGF3202.xOutPresetAdjSet;
"GF3202_PresetAdjValue" := #fbEncoderGF3202.nOutPresetAdjSetValue;
END_REGION
REGION GF3203
#fbEncoderGF3203(nInPosAct := "GF3203_PosAct",
xInPresetAdjQuit := "GF3203_PresetAdjQuit",
nInEncoderMax := "cEncoderGF3203",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG3601"],
nInPitch := 250); //Konstante
"GF3203_PresetAdjSet" := #fbEncoderGF3203.xOutPresetAdjSet;
"GF3203_PresetAdjValue" := #fbEncoderGF3203.nOutPresetAdjSetValue;
END_REGION
REGION GF3204
#fbEncoderGF3204(nInPosAct := "GF3204_PosAct",
xInPresetAdjQuit := "GF3204_PresetAdjQuit",
nInEncoderMax := "cEncoderGF3204",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG4261"],
nInPitch := 250); //Konstante
"GF3204_PresetAdjSet" := #fbEncoderGF3204.xOutPresetAdjSet;
"GF3204_PresetAdjValue" := #fbEncoderGF3204.nOutPresetAdjSetValue;
END_REGION
REGION GF3205
#fbEncoderGF3205(nInPosAct := "GF3205_PosAct",
xInPresetAdjQuit := "GF3205_PresetAdjQuit",
nInEncoderMax := "cEncoderGF3205",
nInHooksSorterMax := "cHooksSorterMaxPin",
stInSensorReference := "DB_Inputs".Sensors["cInBG4321"],
nInPitch := 250); //Konstante
"GF3205_PresetAdjSet" := #fbEncoderGF3205.xOutPresetAdjSet;
"GF3205_PresetAdjValue" := #fbEncoderGF3205.nOutPresetAdjSetValue;
END_REGION
END_REGION
REGION SECTION 2.1
REGION BLOCK 2.1.1 (TRO 327)
REGION Encoder Settings
#TRO327.stInEncoderParameter.nPosActDif := #fbEncoderGF3200.nOutPosActDif;
#TRO327.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3200.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO327.stInSettings.nDestGeneral := "cDest21100";
#TRO327.stInSettings.nConvStations := "cHooksSorterMaxPin211"; //Konstante todo
#TRO327.stInSettings.nStationsMax := "cStationsMax211"; // Konstante todo
#TRO327.stInSettings.nStorageThreshold := "cNoPositionsBlock1";
#TRO327.stInSettings.nNoOfLines := 19;
END_REGION
REGION Pin Query / "Zappler"
#TRO327.stInSensorReference := "DB_Inputs".Sensors["cInBG3001"];
END_REGION
REGION Barcode Reader In (BX3107)
#TRO327.stInBarcodeReader.Settings.nStation := 211; // todo Konstante
#TRO327.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO327.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO327.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3107"].xInCamTriggerReady := "bx3107-TriggerReady";
#arCognexInterface["cScannerBX3107"].xInCamTriggerAck := "bx3107-TriggerAck";
#arCognexInterface["cScannerBX3107"].xInCamResultsAvailable := "bx3107-Results Available";
#arCognexInterface["cScannerBX3107"].xInCamGeneralFault := "bx3107-General Fault";
#arCognexInterface["cScannerBX3107"].hwInCamInspectionResults := "=A01+UC031-BX3107~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO327.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3000"];
#TRO327.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO327.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO327.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := 4;//"cStorage211ExitJam1";
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3270"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam2";
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3271"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam3";
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3272"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam4";
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3273"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam5";
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3274"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam6";
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3275"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam7";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3276"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam8";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3277"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam9";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3280"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam10";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3281"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam11";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3282"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam12";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3283"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam13";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3284"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam14";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3285"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam15";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3286"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam16";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3287"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam17";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3290"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam18";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3291"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO327.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO327.arInSep[#nActNo].stSettings.nJamLength := "cStorage211ExitJam19";
#TRO327.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO327.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO327.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3292"];
#TRO327.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO327.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO327.xInQuitLocal := "SF0121" OR "SF0117";
#TRO327.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3030"];
#TRO327.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3031"];
#TRO327.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3032"];
#TRO327.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3033"];
#TRO327.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3034"];
#TRO327.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3035"];
#TRO327.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3036"];
#TRO327.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3037"];
#TRO327.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3040"];
#TRO327.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3041"];
#TRO327.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3042"];
#TRO327.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3043"];
#TRO327.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3044"];
#TRO327.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3045"];
#TRO327.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3046"];
#TRO327.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3047"];
#TRO327.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3050"];
#TRO327.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG3051"];
#TRO327.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG3052"];
END_REGION
REGION Aufruf: TRO327
#TRO327.stInPriorityManager.xReleaseOk := TRUE;
#TRO327(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget211,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO327,
xInConveyorRunIn := #fbSortConv2101.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2103.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage2.1.1".arLine,
arInOutJamEntr := "DB_JamArea2101".stJam2101_2.arCarrier,
stInOutJamEntr := "DB_JamArea2101".stJam2101_2.stData,
arInOutJamExit := "DB_JamArea2103".stJam2103_1.arCarrier,
stInOutJamExit := "DB_JamArea2103".stJam2103_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO327,
xOutSeparatorPin => "MB3000",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX3107"],
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[1],
stConveyorStations := "DB_ConveyorStations".stConveyorStations211);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO327.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO327.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2101".stJam2101_2.arCarrier[1]);
END_REGION ;
REGION Barcode Reader Out (BX3107)
"bx3107-TriggerEnable" := #arCognexInterface["cScannerBX3107"].xOutCamTriggerEnable;
"bx3107-Trigger" := #arCognexInterface["cScannerBX3107"].xOutCamTrigger;
"bx3107-ResultsAck" := #arCognexInterface["cScannerBX3107"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3270" := #TRO327.arOutSeparatorStore[1];
"MB3271" := #TRO327.arOutSeparatorStore[2];
"MB3272" := #TRO327.arOutSeparatorStore[3];
"MB3273" := #TRO327.arOutSeparatorStore[4];
"MB3274" := #TRO327.arOutSeparatorStore[5];
"MB3275" := #TRO327.arOutSeparatorStore[6];
"MB3276" := #TRO327.arOutSeparatorStore[7];
"MB3277" := #TRO327.arOutSeparatorStore[8];
"MB3280" := #TRO327.arOutSeparatorStore[9];
"MB3281" := #TRO327.arOutSeparatorStore[10];
"MB3282" := #TRO327.arOutSeparatorStore[11];
"MB3283" := #TRO327.arOutSeparatorStore[12];
"MB3284" := #TRO327.arOutSeparatorStore[13];
"MB3285" := #TRO327.arOutSeparatorStore[14];
"MB3286" := #TRO327.arOutSeparatorStore[15];
"MB3287" := #TRO327.arOutSeparatorStore[16];
"MB3290" := #TRO327.arOutSeparatorStore[17];
"MB3291" := #TRO327.arOutSeparatorStore[18];
"MB3292" := #TRO327.arOutSeparatorStore[19];
END_REGION
REGION Unloading Stations Out
"MB3030" := #TRO327.arOutSwitch[1];
"MB3031" := #TRO327.arOutSwitch[2];
"MB3032" := #TRO327.arOutSwitch[3];
"MB3033" := #TRO327.arOutSwitch[4];
"MB3034" := #TRO327.arOutSwitch[5];
"MB3035" := #TRO327.arOutSwitch[6];
"MB3036" := #TRO327.arOutSwitch[7];
"MB3037" := #TRO327.arOutSwitch[8];
"MB3040" := #TRO327.arOutSwitch[9];
"MB3041" := #TRO327.arOutSwitch[10];
"MB3042" := #TRO327.arOutSwitch[11];
"MB3043" := #TRO327.arOutSwitch[12];
"MB3044" := #TRO327.arOutSwitch[13];
"MB3045" := #TRO327.arOutSwitch[14];
"MB3046" := #TRO327.arOutSwitch[15];
"MB3047" := #TRO327.arOutSwitch[16];
"MB3050" := #TRO327.arOutSwitch[17];
"MB3051" := #TRO327.arOutSwitch[18];
"MB3052" := #TRO327.arOutSwitch[19];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 19 DO
IF #TRO327.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID:= 'PLCID003',
nInBarcode:= #TRO327.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation:= "cDest21100" + #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 2.1.2 (TRO 330)
REGION Encoder Settings
#TRO330.stInEncoderParameter.nPosActDif := #fbEncoderGF3200.nOutPosActDif;
#TRO330.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3200.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO330.stInSettings.nDestGeneral := "cDest21200";
#TRO330.stInSettings.nConvStations := "cHooksSorterMaxPin212"; //Konstante todo
#TRO330.stInSettings.nStationsMax := "cStationsMax212"; // Konstante todo
#TRO330.stInSettings.nStorageThreshold := "cNoPositionsBlock1";
#TRO330.stInSettings.nNoOfLines := 17;
END_REGION
REGION Pin Query / "Zappler"
#TRO330.stInSensorReference := "DB_Inputs".Sensors["cInBG3061"];
END_REGION
REGION Barcode Reader IN (BX3108)
#TRO330.stInBarcodeReader.Settings.nStation := 212; // todo Konstante
#TRO330.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO330.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO330.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3108"].xInCamTriggerReady := "bx3108-TriggerReady";
#arCognexInterface["cScannerBX3108"].xInCamTriggerAck := "bx3108-TriggerAck";
#arCognexInterface["cScannerBX3108"].xInCamResultsAvailable := "bx3108-Results Available";
#arCognexInterface["cScannerBX3108"].xInCamGeneralFault := "bx3108-General Fault";
#arCognexInterface["cScannerBX3108"].hwInCamInspectionResults := "=A01+UC031-BX3108~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO330.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3060"];
#TRO330.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO330.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO330.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam1";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3330"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam2";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3331"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam3";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3332"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam4";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3333"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam5";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3334"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam6";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3335"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam7";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3336"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam8";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3337"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam9";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3340"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam10";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3341"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam11";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3342"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam12";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3343"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam13";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3344"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam14";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3345"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam15";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3346"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam16";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3347"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO330.arInSep[#nActNo].stSettings.nJamLength := "cStorage212ExitJam17";
#TRO330.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3350"];
#TRO330.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO330.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO330.xInQuitLocal := "SF0123" OR "SF0117";
#TRO330.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3090"];
#TRO330.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3091"];
#TRO330.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3092"];
#TRO330.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3093"];
#TRO330.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3094"];
#TRO330.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3095"];
#TRO330.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3096"];
#TRO330.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3097"];
#TRO330.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3100"];
#TRO330.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3101"];
#TRO330.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3102"];
#TRO330.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3103"];
#TRO330.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3104"];
#TRO330.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3105"];
#TRO330.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3106"];
#TRO330.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3107"];
#TRO330.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3110"];
END_REGION ;
REGION Aufruf: TRO330
#TRO330.stInPriorityManager.xReleaseOk := True;
#TRO330(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget212,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO330,
xInConveyorRunIn := #fbSortConv2101.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2103.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage2.1.2".arLine,
arInOutJamEntr := "DB_JamArea2101".stJam2101_1.arCarrier,
stInOutJamEntr := "DB_JamArea2101".stJam2101_1.stData,
arInOutJamExit := "DB_JamArea2103".stJam2103_2.arCarrier,
stInOutJamExit := "DB_JamArea2103".stJam2103_2.stData,
arInOutJamBypass := "DB_JamArea2101".stJam2101_2.arCarrier,
stInOutJamBypass := "DB_JamArea2101".stJam2101_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO330,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[2],
stCognexInterfacePin := #arCognexInterface["cScannerBX3108"],
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro330"],
xOutSeparatorPin => "MB3060",
stConveyorStations := "DB_ConveyorStations".stConveyorStations212);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO330.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO330.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2101".stJam2101_1.arCarrier[1]);
END_REGION ;
REGION Barcode Reader Out (BX3108)
"bx3108-TriggerEnable" := #arCognexInterface["cScannerBX3108"].xOutCamTriggerEnable;
"bx3108-Trigger" := #arCognexInterface["cScannerBX3108"].xOutCamTrigger;
"bx3108-ResultsAck" := #arCognexInterface["cScannerBX3108"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3330" := #TRO330.arOutSeparatorStore[1];
"MB3331" := #TRO330.arOutSeparatorStore[2];
"MB3332" := #TRO330.arOutSeparatorStore[3];
"MB3333" := #TRO330.arOutSeparatorStore[4];
"MB3334" := #TRO330.arOutSeparatorStore[5];
"MB3335" := #TRO330.arOutSeparatorStore[6];
"MB3336" := #TRO330.arOutSeparatorStore[7];
"MB3337" := #TRO330.arOutSeparatorStore[8];
"MB3340" := #TRO330.arOutSeparatorStore[9];
"MB3341" := #TRO330.arOutSeparatorStore[10];
"MB3342" := #TRO330.arOutSeparatorStore[11];
"MB3343" := #TRO330.arOutSeparatorStore[12];
"MB3344" := #TRO330.arOutSeparatorStore[13];
"MB3345" := #TRO330.arOutSeparatorStore[14];
"MB3346" := #TRO330.arOutSeparatorStore[15];
"MB3347" := #TRO330.arOutSeparatorStore[16];
"MB3350" := #TRO330.arOutSeparatorStore[17];
END_REGION
REGION Unloading Stations Out
"MB3090" := #TRO330.arOutSwitch[1];
"MB3091" := #TRO330.arOutSwitch[2];
"MB3092" := #TRO330.arOutSwitch[3];
"MB3093" := #TRO330.arOutSwitch[4];
"MB3094" := #TRO330.arOutSwitch[5];
"MB3095" := #TRO330.arOutSwitch[6];
"MB3096" := #TRO330.arOutSwitch[7];
"MB3097" := #TRO330.arOutSwitch[8];
"MB3100" := #TRO330.arOutSwitch[9];
"MB3101" := #TRO330.arOutSwitch[10];
"MB3102" := #TRO330.arOutSwitch[11];
"MB3103" := #TRO330.arOutSwitch[12];
"MB3104" := #TRO330.arOutSwitch[13];
"MB3105" := #TRO330.arOutSwitch[14];
"MB3106" := #TRO330.arOutSwitch[15];
"MB3107" := #TRO330.arOutSwitch[16];
"MB3110" := #TRO330.arOutSwitch[17];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 17 DO
IF #TRO330.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO330.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest21200" + #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 2.1.3 (TRO 333)
REGION Encoder Settings
#TRO333.stInEncoderParameter.nPosActDif := #fbEncoderGF3201.nOutPosActDif;
#TRO333.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3201.nPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO333.stInSettings.nDestGeneral := "cDest21300";
#TRO333.stInSettings.nConvStations := "cHooksSorterMaxPin213"; //Konstante todo
#TRO333.stInSettings.nStationsMax := "cStationsMax213"; // Konstante todo
#TRO333.stInSettings.nStorageThreshold := "cNoPositionsBlock1";
#TRO333.stInSettings.nNoOfLines := 21;
END_REGION
REGION Pin Query / "Zappler"
#TRO333.stInSensorReference := "DB_Inputs".Sensors["cInBG3121"];
END_REGION
REGION Barcode Reader In (BX3109)
#TRO333.stInBarcodeReader.Settings.nStation := 213; // todo Konstante
#TRO333.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO333.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO333.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3109"].xInCamTriggerReady := "bx3109-TriggerReady";
#arCognexInterface["cScannerBX3109"].xInCamTriggerAck := "bx3109-TriggerAck";
#arCognexInterface["cScannerBX3109"].xInCamResultsAvailable := "bx3109-Results Available";
#arCognexInterface["cScannerBX3109"].xInCamGeneralFault := "bx3109-General Fault";
#arCognexInterface["cScannerBX3109"].hwInCamInspectionResults := "=A01+UC031-BX3109~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO333.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3120"];
#TRO333.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO333.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO333.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam1";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3390"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam2";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3391"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam3";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3392"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam4";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3393"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam5";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3394"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam6";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3395"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam7";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3396"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam8";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3397"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam9";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3400"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam10";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3401"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam11";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3402"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam12";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3403"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam13";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3404"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam14";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3405"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam15";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3406"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam16";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3407"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam17";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3410"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam18";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3411"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam19";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3412"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 20
#nActNo := 20;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam20";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3413"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 21
#nActNo := 21;
#TRO333.arInSep[#nActNo].stSettings.nJamLength := "cStorage213ExitJam21";
#TRO333.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3414"];
#TRO333.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO333.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION Aufruf: TRO333
#TRO333.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO333(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget213,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO333,
xInConveyorRunIn := #fbSortConv2102.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2104.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage2.1.3".arLine,
arInOutJamEntr := "DB_JamArea2102".stJam2102_3.arCarrier,
stInOutJamEntr := "DB_JamArea2102".stJam2102_3.stData,
arInOutJamExit := "DB_JamArea2104".stJam2104_2.arCarrier,
stInOutJamExit := "DB_JamArea2104".stJam2104_2.stData,
arInOutJamBypass := "DB_JamArea2102".stJam2102_4.arCarrier,
stInOutJamBypass := "DB_JamArea2102".stJam2102_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO333,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[3],
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro333"],
xOutSeparatorPin => "MB3120",
stCognexInterfacePin := #arCognexInterface["cScannerBX3109"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations213);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO333.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO333.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2102".stJam2102_3.arCarrier[1]);
END_REGION
REGION UnloadingStations Settings
#TRO333.xInQuitLocal := "SF0125" OR "SF0117" OR "IBN".xQuit213;
#TRO333.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3150"];
#TRO333.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3151"];
#TRO333.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3152"];
#TRO333.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3153"];
#TRO333.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3154"];
#TRO333.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3155"];
#TRO333.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3156"];
#TRO333.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3157"];
#TRO333.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3160"];
#TRO333.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3161"];
#TRO333.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3162"];
#TRO333.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3163"];
#TRO333.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3164"];
#TRO333.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3165"];
#TRO333.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3166"];
#TRO333.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3167"];
#TRO333.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3170"];
#TRO333.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG3171"];
#TRO333.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG3172"];
#TRO333.arInJamSensor[20] := "DB_Inputs".Sensors["cInBG3173"];
#TRO333.arInJamSensor[21] := "DB_Inputs".Sensors["cInBG3174"];
END_REGION ;
REGION Barcode Reader Out (BX3109)
"bx3109-TriggerEnable" := #arCognexInterface["cScannerBX3109"].xOutCamTriggerEnable;
"bx3109-Trigger" := #arCognexInterface["cScannerBX3109"].xOutCamTrigger;
"bx3109-ResultsAck" := #arCognexInterface["cScannerBX3109"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3390" := #TRO333.arOutSeparatorStore[1];
"MB3391" := #TRO333.arOutSeparatorStore[2];
"MB3392" := #TRO333.arOutSeparatorStore[3];
"MB3393" := #TRO333.arOutSeparatorStore[4];
"MB3394" := #TRO333.arOutSeparatorStore[5];
"MB3395" := #TRO333.arOutSeparatorStore[6];
"MB3396" := #TRO333.arOutSeparatorStore[7];
"MB3397" := #TRO333.arOutSeparatorStore[8];
"MB3400" := #TRO333.arOutSeparatorStore[9];
"MB3401" := #TRO333.arOutSeparatorStore[10];
"MB3402" := #TRO333.arOutSeparatorStore[11];
"MB3403" := #TRO333.arOutSeparatorStore[12];
"MB3404" := #TRO333.arOutSeparatorStore[13];
"MB3405" := #TRO333.arOutSeparatorStore[14];
"MB3406" := #TRO333.arOutSeparatorStore[15];
"MB3407" := #TRO333.arOutSeparatorStore[16];
"MB3410" := #TRO333.arOutSeparatorStore[17];
"MB3411" := #TRO333.arOutSeparatorStore[18];
"MB3412" := #TRO333.arOutSeparatorStore[19];
"MB3413" := #TRO333.arOutSeparatorStore[20];
"MB3414" := #TRO333.arOutSeparatorStore[21];
END_REGION
REGION Unlaoding Stations Out
"MB3150" := #TRO333.arOutSwitch[1];
"MB3151" := #TRO333.arOutSwitch[2];
"MB3152" := #TRO333.arOutSwitch[3];
"MB3153" := #TRO333.arOutSwitch[4];
"MB3154" := #TRO333.arOutSwitch[5];
"MB3155" := #TRO333.arOutSwitch[6];
"MB3156" := #TRO333.arOutSwitch[7];
"MB3157" := #TRO333.arOutSwitch[8];
"MB3160" := #TRO333.arOutSwitch[9];
"MB3161" := #TRO333.arOutSwitch[10];
"MB3162" := #TRO333.arOutSwitch[11];
"MB3163" := #TRO333.arOutSwitch[12];
"MB3164" := #TRO333.arOutSwitch[13];
"MB3165" := #TRO333.arOutSwitch[14];
"MB3166" := #TRO333.arOutSwitch[15];
"MB3167" := #TRO333.arOutSwitch[16];
"MB3170" := #TRO333.arOutSwitch[17];
"MB3171" := #TRO333.arOutSwitch[18];
"MB3172" := #TRO333.arOutSwitch[19];
"MB3173" := #TRO333.arOutSwitch[20];
"MB3174" := #TRO333.arOutSwitch[21];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 21 DO
IF #TRO333.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO333.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest21300" + #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 2.1.4 (TRO 336)
REGION Encoder Settings
#TRO336.stInEncoderParameter.nPosActDif := #fbEncoderGF3201.nOutPosActDif;
#TRO336.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3201.nPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO336.stInSettings.nDestGeneral := "cDest21400";
#TRO336.stInSettings.nConvStations := "cHooksSorterMaxPin214"; //Konstante todo
#TRO336.stInSettings.nStationsMax := "cStationsMax214"; // Konstante todo
#TRO336.stInSettings.nStorageThreshold := 106;//"cNoPositionsBlock1";
#TRO336.stInSettings.nNoOfLines := 13;
END_REGION
REGION Pin Query / "Zappler"
#TRO336.stInSensorReference := "DB_Inputs".Sensors["cInBG3181"];
END_REGION
REGION Barcode Reader In (BX3110)
#TRO336.stInBarcodeReader.Settings.nStation := 214; // todo Konstante
#TRO336.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO336.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO336.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3110"].xInCamTriggerReady := "bx3110-TriggerReady";
#arCognexInterface["cScannerBX3110"].xInCamTriggerAck := "bx3110-TriggerAck";
#arCognexInterface["cScannerBX3110"].xInCamResultsAvailable := "bx3110-Results Available";
#arCognexInterface["cScannerBX3110"].xInCamGeneralFault := "bx3110-General Fault";
#arCognexInterface["cScannerBX3110"].hwInCamInspectionResults := "=A01+UC031-BX3110~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO336.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3180"];
#TRO336.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO336.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO336.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam1";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3450"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam2";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3451"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam3";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3452"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam4";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3453"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam5";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3454"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam6";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3455"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam7";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3456"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam8";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3457"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam9";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3460"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam10";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3461"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam11";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3462"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam12";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3463"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO336.arInSep[#nActNo].stSettings.nJamLength := "cStorage214ExitJam13";
#TRO336.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3464"];
#TRO336.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO336.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO336.xInQuitLocal := "SF0127" OR "SF0117";
#TRO336.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3210"];
#TRO336.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3211"];
#TRO336.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3212"];
#TRO336.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3213"];
#TRO336.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3214"];
#TRO336.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3215"];
#TRO336.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3216"];
#TRO336.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3217"];
#TRO336.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3220"];
#TRO336.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3221"];
#TRO336.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3222"];
#TRO336.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3223"];
#TRO336.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3224"];
END_REGION
REGION Aufruf: TRO336
#TRO336.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO336(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget214,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO336,
xInConveyorRunIn := #fbSortConv2102.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2104.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage2.1.4".arLine,
xOutSeparatorPin => "MB3180",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro336"],
arInOutJamEntr := "DB_JamArea2102".stJam2102_4.arCarrier,
stInOutJamEntr := "DB_JamArea2102".stJam2102_4.stData,
arInOutJamExit := "DB_JamArea2104".stJam2104_1.arCarrier,
stInOutJamExit := "DB_JamArea2104".stJam2104_1.stData,
arInOutJamBypass := "DB_JamArea2102".stJam2102_5.arCarrier,
stInOutJamBypass := "DB_JamArea2102".stJam2102_5.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO336,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[4],
stCognexInterfacePin := #arCognexInterface["cScannerBX3110"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations214);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO336.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO336.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2102".stJam2102_4.arCarrier[1]);
END_REGION
REGION Barcode Reader Out (BX3110)
"bx3110-TriggerEnable" := #arCognexInterface["cScannerBX3110"].xOutCamTriggerEnable;
"bx3110-Trigger" := #arCognexInterface["cScannerBX3110"].xOutCamTrigger;
"bx3110-ResultsAck" := #arCognexInterface["cScannerBX3110"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3450" := #TRO336.arOutSeparatorStore[1];
"MB3451" := #TRO336.arOutSeparatorStore[2];
"MB3452" := #TRO336.arOutSeparatorStore[3];
"MB3453" := #TRO336.arOutSeparatorStore[4];
"MB3454" := #TRO336.arOutSeparatorStore[5];
"MB3455" := #TRO336.arOutSeparatorStore[6];
"MB3456" := #TRO336.arOutSeparatorStore[7];
"MB3457" := #TRO336.arOutSeparatorStore[8];
"MB3460" := #TRO336.arOutSeparatorStore[9];
"MB3461" := #TRO336.arOutSeparatorStore[10];
"MB3462" := #TRO336.arOutSeparatorStore[11];
"MB3463" := #TRO336.arOutSeparatorStore[12];
"MB3464" := #TRO336.arOutSeparatorStore[13];
END_REGION
REGION Unloading Stations Out
"MB3210" := #TRO336.arOutSwitch[1];
"MB3211" := #TRO336.arOutSwitch[2];
"MB3212" := #TRO336.arOutSwitch[3];
"MB3213" := #TRO336.arOutSwitch[4];
"MB3214" := #TRO336.arOutSwitch[5];
"MB3215" := #TRO336.arOutSwitch[6];
"MB3216" := #TRO336.arOutSwitch[7];
"MB3217" := #TRO336.arOutSwitch[8];
"MB3220" := #TRO336.arOutSwitch[9];
"MB3221" := #TRO336.arOutSwitch[10];
"MB3222" := #TRO336.arOutSwitch[11];
"MB3223" := #TRO336.arOutSwitch[12];
"MB3224" := #TRO336.arOutSwitch[13];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 13 DO
IF #TRO336.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO336.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest21400" + #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 2.2
REGION BLOCK 2.2.1 (TRO349)
REGION Encoder Settings
#TRO349.stInEncoderParameter.nPosActDif := #fbEncoderGF3202.nOutPosActDif;
#TRO349.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3202.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO349.stInSettings.nDestGeneral := "cDest22100";
#TRO349.stInSettings.nConvStations := "cHooksSorterMaxPin221"; //Konstante todo
#TRO349.stInSettings.nStationsMax := "cStationsMax221"; // Konstante todo
#TRO349.stInSettings.nStorageThreshold := "cNoPositionsBlock2";
#TRO349.stInSettings.nNoOfLines := 13;
END_REGION
REGION Pin Query / "Zappler"
#TRO349.stInSensorReference := "DB_Inputs".Sensors["cInBG3481"];
END_REGION
REGION Barcode Reader (BX3122)
#TRO349.stInBarcodeReader.Settings.nStation := 221; // todo Konstante
#TRO349.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO349.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO349.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3122"].xInCamTriggerReady := "bx3122-TriggerReady";
#arCognexInterface["cScannerBX3122"].xInCamTriggerAck := "bx3122-TriggerAck";
#arCognexInterface["cScannerBX3122"].xInCamResultsAvailable := "bx3122-Results Available";
#arCognexInterface["cScannerBX3122"].xInCamGeneralFault := "bx3122-General Fault";
#arCognexInterface["cScannerBX3122"].hwInCamInspectionResults := "=A01+UH03-BX3122~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO349.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3480"];
#TRO349.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO349.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO349.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam1";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3750"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam2";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3751"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam3";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3752"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam4";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3753"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam5";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3754"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam6";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3755"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam7";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3756"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam8";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3757"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam9";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3760"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam10";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3761"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam11";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3762"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam12";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3763"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO349.arInSep[#nActNo].stSettings.nJamLength := "cStorage221ExitJam13";
#TRO349.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3764"];
#TRO349.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO349.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION Unloading Station Settings
#TRO349.xInQuitLocal := "SF0051";
#TRO349.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3510"];
#TRO349.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3511"];
#TRO349.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3512"];
#TRO349.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3513"];
#TRO349.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3514"];
#TRO349.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3515"];
#TRO349.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3516"];
#TRO349.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3517"];
#TRO349.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3520"];
#TRO349.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3521"];
#TRO349.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3522"];
#TRO349.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3523"];
#TRO349.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3524"];
END_REGION
REGION Aufruf: TRO349
#TRO349.stInPriorityManager.xReleaseOk := TRUE;
#TRO349(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
nInTestTarget := "IBN".nTestTarget221,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO349,
xInConveyorRunIn := #fbSortConv2201.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2203.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
arInOutStorageLines := "DB_Storage2.2.1".arLine,
arInOutJamEntr := "DB_JamArea2201".stJam2201_2.arCarrier,
stInOutJamEntr := "DB_JamArea2201".stJam2201_2.stData,
arInOutJamExit := "DB_JamArea2203".stJam2203_1.arCarrier,
stInOutJamExit := "DB_JamArea2203".stJam2203_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO349,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[5],
xOutSeparatorPin => "MB3480",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX3122"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations221);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO349.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO349.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2201".stJam2201_2.arCarrier[1]);
END_REGION
REGION Barcode Reader OUT
"bx3122-TriggerEnable" := #arCognexInterface["cScannerBX3122"].xOutCamTriggerEnable;
"bx3122-Trigger" := #arCognexInterface["cScannerBX3122"].xOutCamTrigger;
"bx3122-ResultsAck" := #arCognexInterface["cScannerBX3122"].xOutCamResultsAck;
END_REGION
REGION Separator Store OUT
"MB3750" := #TRO349.arOutSeparatorStore[1];
"MB3751" := #TRO349.arOutSeparatorStore[2];
"MB3752" := #TRO349.arOutSeparatorStore[3];
"MB3753" := #TRO349.arOutSeparatorStore[4];
"MB3754" := #TRO349.arOutSeparatorStore[5];
"MB3755" := #TRO349.arOutSeparatorStore[6];
"MB3756" := #TRO349.arOutSeparatorStore[7];
"MB3757" := #TRO349.arOutSeparatorStore[8];
"MB3760" := #TRO349.arOutSeparatorStore[9];
"MB3761" := #TRO349.arOutSeparatorStore[10];
"MB3762" := #TRO349.arOutSeparatorStore[11];
"MB3763" := #TRO349.arOutSeparatorStore[12];
"MB3764" := #TRO349.arOutSeparatorStore[13];
END_REGION
REGION Unloading Stations Out
"MB3510" := #TRO349.arOutSwitch[1];
"MB3511" := #TRO349.arOutSwitch[2];
"MB3512" := #TRO349.arOutSwitch[3];
"MB3513" := #TRO349.arOutSwitch[4];
"MB3514" := #TRO349.arOutSwitch[5];
"MB3515" := #TRO349.arOutSwitch[6];
"MB3516" := #TRO349.arOutSwitch[7];
"MB3517" := #TRO349.arOutSwitch[8];
"MB3520" := #TRO349.arOutSwitch[9];
"MB3521" := #TRO349.arOutSwitch[10];
"MB3522" := #TRO349.arOutSwitch[11];
"MB3523" := #TRO349.arOutSwitch[12];
"MB3524" := #TRO349.arOutSwitch[13];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 13 DO
IF #TRO349.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO349.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest22100" + #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 2.2.2 (TRO352)
REGION Encoder Settings
#TRO352.stInEncoderParameter.nPosActDif := #fbEncoderGF3202.nOutPosActDif;
#TRO352.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3202.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO352.stInSettings.nDestGeneral := "cDest22200";
#TRO352.stInSettings.nConvStations := "cHooksSorterMaxPin222"; //Konstante todo
#TRO352.stInSettings.nStationsMax := "cStationsMax222"; // Konstante todo
#TRO352.stInSettings.nStorageThreshold := "cNoPositionsBlock2";
#TRO352.stInSettings.nNoOfLines := 17;
END_REGION
REGION Pin Query / "Zappler"
#TRO352.stInSensorReference := "DB_Inputs".Sensors["cInBG3541"];
END_REGION
REGION Barcode Reader (BX3123)
#TRO352.stInBarcodeReader.Settings.nStation := 222; // todo Konstante
#TRO352.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO352.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO352.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3123"].xInCamTriggerReady := "bx3123-TriggerReady";
#arCognexInterface["cScannerBX3123"].xInCamTriggerAck := "bx3123-TriggerAck";
#arCognexInterface["cScannerBX3123"].xInCamResultsAvailable := "bx3123-Results Available";
#arCognexInterface["cScannerBX3123"].xInCamGeneralFault := "bx3123-General Fault";
#arCognexInterface["cScannerBX3123"].hwInCamInspectionResults := "=A01+UH03-BX3123~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO352.stInSeparatorPin.stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO352.stInSeparatorPin.stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO352.stInSeparatorPin.stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO352.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3540"];
#TRO352.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO352.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO352.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam1";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3810"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam2";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3811"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam3";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3812"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam4";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3813"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam5";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3814"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam6";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3815"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam7";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3816"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam8";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3817"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam9";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3820"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam10";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3821"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam11";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3822"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam12";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3823"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam13";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3824"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam14";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3825"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam15";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3826"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam16";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3827"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO352.arInSep[#nActNo].stSettings.nJamLength := "cStorage222ExitJam17";
#TRO352.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3830"];
#TRO352.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO352.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO352.xInQuitLocal := "SF0053";
#TRO352.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3570"];
#TRO352.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3571"];
#TRO352.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3572"];
#TRO352.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3573"];
#TRO352.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3574"];
#TRO352.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3575"];
#TRO352.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3576"];
#TRO352.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3577"];
#TRO352.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3580"];
#TRO352.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3581"];
#TRO352.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3582"];
#TRO352.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3583"];
#TRO352.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3584"];
#TRO352.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3585"];
#TRO352.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3586"];
#TRO352.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3587"];
#TRO352.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3590"];
END_REGION
REGION Aufruf: TRO352
#TRO352.stInPriorityManager.xReleaseOk := TRUE;
#TRO352(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
nInTestTarget := "IBN".nTestTarget222,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO352,
xInConveyorRunIn := #fbSortConv2201.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2203.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
arInOutStorageLines := "DB_Storage2.2.2".arLine,
arInOutJamEntr := "DB_JamArea2201".stJam2201_1.arCarrier,
stInOutJamEntr := "DB_JamArea2201".stJam2201_1.stData,
arInOutJamExit := "DB_JamArea2203".stJam2203_2.arCarrier,
stInOutJamExit := "DB_JamArea2203".stJam2203_2.stData,
arInOutJamBypass := "DB_JamArea2201".stJam2201_2.arCarrier,
stInOutJamBypass := "DB_JamArea2201".stJam2201_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO352,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[6],
xOutSeparatorPin => "MB3540",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX3123"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations222);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO352.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO352.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2201".stJam2201_1.arCarrier[1]);
END_REGION
REGION Barcode-Reader OUT
"bx3123-TriggerEnable" := #arCognexInterface["cScannerBX3123"].xOutCamTriggerEnable;
"bx3123-Trigger" := #arCognexInterface["cScannerBX3123"].xOutCamTrigger;
"bx3123-ResultsAck" := #arCognexInterface["cScannerBX3123"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3810" := #TRO352.arOutSeparatorStore[1];
"MB3811" := #TRO352.arOutSeparatorStore[2];
"MB3812" := #TRO352.arOutSeparatorStore[3];
"MB3813" := #TRO352.arOutSeparatorStore[4];
"MB3814" := #TRO352.arOutSeparatorStore[5];
"MB3815" := #TRO352.arOutSeparatorStore[6];
"MB3816" := #TRO352.arOutSeparatorStore[7];
"MB3817" := #TRO352.arOutSeparatorStore[8];
"MB3820" := #TRO352.arOutSeparatorStore[9];
"MB3821" := #TRO352.arOutSeparatorStore[10];
"MB3822" := #TRO352.arOutSeparatorStore[11];
"MB3823" := #TRO352.arOutSeparatorStore[12];
"MB3824" := #TRO352.arOutSeparatorStore[13];
"MB3825" := #TRO352.arOutSeparatorStore[14];
"MB3826" := #TRO352.arOutSeparatorStore[15];
"MB3827" := #TRO352.arOutSeparatorStore[16];
"MB3830" := #TRO352.arOutSeparatorStore[17];
END_REGION
REGION Unloading Stations Out
"MB3570" := #TRO352.arOutSwitch[1];
"MB3571" := #TRO352.arOutSwitch[2];
"MB3572" := #TRO352.arOutSwitch[3];
"MB3573" := #TRO352.arOutSwitch[4];
"MB3574" := #TRO352.arOutSwitch[5];
"MB3575" := #TRO352.arOutSwitch[6];
"MB3576" := #TRO352.arOutSwitch[7];
"MB3577" := #TRO352.arOutSwitch[8];
"MB3580" := #TRO352.arOutSwitch[9];
"MB3581" := #TRO352.arOutSwitch[10];
"MB3582" := #TRO352.arOutSwitch[11];
"MB3583" := #TRO352.arOutSwitch[12];
"MB3584" := #TRO352.arOutSwitch[13];
"MB3585" := #TRO352.arOutSwitch[14];
"MB3586" := #TRO352.arOutSwitch[15];
"MB3587" := #TRO352.arOutSwitch[16];
"MB3590" := #TRO352.arOutSwitch[17];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 17 DO
IF #TRO352.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO352.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest22200" + #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 2.2.3 (TRO355)
REGION Encoder Settings
#TRO355.stInEncoderParameter.nPosActDif := #fbEncoderGF3203.nOutPosActDif;
#TRO355.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3203.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO355.stInSettings.nDestGeneral := "cDest22300";
#TRO355.stInSettings.nConvStations := "cHooksSorterMaxPin223"; //Konstante todo
#TRO355.stInSettings.nStationsMax := "cStationsMax223"; // Konstante todo
#TRO355.stInSettings.nStorageThreshold := "cNoPositionsBlock2";
#TRO355.stInSettings.nNoOfLines := 21;
END_REGION
REGION Pin Query / "Zappler"
#TRO355.stInSensorReference := "DB_Inputs".Sensors["cInBG3601"];
END_REGION
REGION Barcode Reader (BX3124)
#TRO355.stInBarcodeReader.Settings.nStation := 223; // todo Konstante
#TRO355.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO355.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO355.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3124"].xInCamTriggerReady := "bx3124-TriggerReady";
#arCognexInterface["cScannerBX3124"].xInCamTriggerAck := "bx3124-TriggerAck";
#arCognexInterface["cScannerBX3124"].xInCamResultsAvailable := "bx3124-Results Available";
#arCognexInterface["cScannerBX3124"].xInCamGeneralFault := "bx3124-General Fault";
#arCognexInterface["cScannerBX3124"].hwInCamInspectionResults := "=A01+UH03-BX3124~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO355.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3600"];
#TRO355.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO355.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO355.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam1";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3870"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam2";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3871"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam3";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3872"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam4";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3873"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam5";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3874"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam6";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3875"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam7";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3876"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam8";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3877"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam9";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3880"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam10";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3881"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam11";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3882"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam12";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3883"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam13";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3884"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam14";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3885"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam15";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3886"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam16";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3887"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam17";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3890"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam18";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3891"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam19";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3892"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 20
#nActNo := 20;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam20";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3893"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 21
#nActNo := 21;
#TRO355.arInSep[#nActNo].stSettings.nJamLength := "cStorage223ExitJam21";
#TRO355.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3894"];
#TRO355.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO355.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO355.xInQuitLocal := "SF0055";
#TRO355.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3630"];
#TRO355.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3631"];
#TRO355.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3632"];
#TRO355.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3633"];
#TRO355.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3634"];
#TRO355.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3635"];
#TRO355.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3636"];
#TRO355.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3637"];
#TRO355.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3640"];
#TRO355.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3641"];
#TRO355.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3642"];
#TRO355.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3643"];
#TRO355.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3644"];
#TRO355.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG3645"];
#TRO355.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG3646"];
#TRO355.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG3647"];
#TRO355.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG3650"];
#TRO355.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG3651"];
#TRO355.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG3652"];
#TRO355.arInJamSensor[20] := "DB_Inputs".Sensors["cInBG3653"];
#TRO355.arInJamSensor[21] := "DB_Inputs".Sensors["cInBG3654"];
END_REGION
REGION Aufruf: TRO355
#TRO355.stInPriorityManager.xReleaseOk := TRUE;
#TRO355(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
nInTestTarget := "IBN".nTestTarget223,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO355,
xInConveyorRunIn := #fbSortConv2202.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2204.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
arInOutStorageLines := "DB_Storage2.2.3".arLine,
arInOutJamEntr := "DB_JamArea2202".stJam2202_3.arCarrier,
stInOutJamEntr := "DB_JamArea2202".stJam2202_3.stData,
arInOutJamExit := "DB_JamArea2204".stJam2204_2.arCarrier,
stInOutJamExit := "DB_JamArea2204".stJam2204_2.stData,
arInOutJamBypass := "DB_JamArea2202".stJam2202_4.arCarrier,
stInOutJamBypass := "DB_JamArea2202".stJam2202_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO355,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[7],
xOutSeparatorPin => "MB3600",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX3124"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations223);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO355.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO355.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2202".stJam2202_3.arCarrier[1]);
END_REGION
REGION Barcode Reader OUT (BX3124)
"bx3124-TriggerEnable" := #arCognexInterface["cScannerBX3124"].xOutCamTriggerEnable;
"bx3124-Trigger" := #arCognexInterface["cScannerBX3124"].xOutCamTrigger;
"bx3124-ResultsAck" := #arCognexInterface["cScannerBX3124"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3870" := #TRO355.arOutSeparatorStore[1];
"MB3871" := #TRO355.arOutSeparatorStore[2];
"MB3872" := #TRO355.arOutSeparatorStore[3];
"MB3873" := #TRO355.arOutSeparatorStore[4];
"MB3874" := #TRO355.arOutSeparatorStore[5];
"MB3875" := #TRO355.arOutSeparatorStore[6];
"MB3876" := #TRO355.arOutSeparatorStore[7];
"MB3877" := #TRO355.arOutSeparatorStore[8];
"MB3880" := #TRO355.arOutSeparatorStore[9];
"MB3881" := #TRO355.arOutSeparatorStore[10];
"MB3882" := #TRO355.arOutSeparatorStore[11];
"MB3883" := #TRO355.arOutSeparatorStore[12];
"MB3884" := #TRO355.arOutSeparatorStore[13];
"MB3885" := #TRO355.arOutSeparatorStore[14];
"MB3886" := #TRO355.arOutSeparatorStore[15];
"MB3887" := #TRO355.arOutSeparatorStore[16];
"MB3890" := #TRO355.arOutSeparatorStore[17];
"MB3891" := #TRO355.arOutSeparatorStore[18];
"MB3892" := #TRO355.arOutSeparatorStore[19];
"MB3893" := #TRO355.arOutSeparatorStore[20];
"MB3894" := #TRO355.arOutSeparatorStore[21];
END_REGION
REGION Unloading Stations Out
"MB3630" := #TRO355.arOutSwitch[1];
"MB3631" := #TRO355.arOutSwitch[2];
"MB3632" := #TRO355.arOutSwitch[3];
"MB3633" := #TRO355.arOutSwitch[4];
"MB3634" := #TRO355.arOutSwitch[5];
"MB3635" := #TRO355.arOutSwitch[6];
"MB3636" := #TRO355.arOutSwitch[7];
"MB3637" := #TRO355.arOutSwitch[8];
"MB3640" := #TRO355.arOutSwitch[9];
"MB3641" := #TRO355.arOutSwitch[10];
"MB3642" := #TRO355.arOutSwitch[11];
"MB3643" := #TRO355.arOutSwitch[12];
"MB3644" := #TRO355.arOutSwitch[13];
"MB3645" := #TRO355.arOutSwitch[14];
"MB3646" := #TRO355.arOutSwitch[15];
"MB3647" := #TRO355.arOutSwitch[16];
"MB3650" := #TRO355.arOutSwitch[17];
"MB3651" := #TRO355.arOutSwitch[18];
"MB3652" := #TRO355.arOutSwitch[19];
"MB3653" := #TRO355.arOutSwitch[20];
"MB3654" := #TRO355.arOutSwitch[21];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 21 DO
IF #TRO355.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO355.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest22300" + #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 2.2.4 (TRO358)
REGION Encoder Settings
#TRO358.stInEncoderParameter.nPosActDif := #fbEncoderGF3203.nOutPosActDif;
#TRO358.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3203.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO358.stInSettings.nDestGeneral := "cDest22400";
#TRO358.stInSettings.nConvStations := "cHooksSorterMaxPin224"; //Konstante todo
#TRO358.stInSettings.nStationsMax := "cStationsMax224"; // Konstante todo
#TRO358.stInSettings.nStorageThreshold := "cNoPositionsBlock2";
#TRO358.stInSettings.nNoOfLines := 13;
END_REGION
REGION Pin Query / "Zappler"
#TRO358.stInSensorReference := "DB_Inputs".Sensors["cInBG3661"];
END_REGION
REGION Barcode Reader (BX3125)
#TRO358.stInBarcodeReader.Settings.nStation := 224; // todo Konstante
#TRO358.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO358.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO358.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3125"].xInCamTriggerReady := "bx3125-TriggerReady";
#arCognexInterface["cScannerBX3125"].xInCamTriggerAck := "bx3125-TriggerAck";
#arCognexInterface["cScannerBX3125"].xInCamResultsAvailable := "bx3125-Results Available";
#arCognexInterface["cScannerBX3125"].xInCamGeneralFault := "bx3125-General Fault";
#arCognexInterface["cScannerBX3125"].hwInCamInspectionResults := "=A01+UH03-BX3125~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO358.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3660"];
#TRO358.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO358.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO358.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam1";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3930"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam2";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3931"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam3";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3932"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam4";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3933"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam5";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3934"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam6";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3935"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam7";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3936"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam8";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3937"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam9";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3940"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam10";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3941"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam11";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3942"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam12";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3943"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO358.arInSep[#nActNo].stSettings.nJamLength := "cStorage224ExitJam13";
#TRO358.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3944"];
#TRO358.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO358.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO358.xInQuitLocal := "SF0057";
#TRO358.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3690"];
#TRO358.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3691"];
#TRO358.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3692"];
#TRO358.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG3693"];
#TRO358.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG3694"];
#TRO358.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG3695"];
#TRO358.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG3696"];
#TRO358.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG3697"];
#TRO358.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG3700"];
#TRO358.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG3701"];
#TRO358.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG3702"];
#TRO358.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG3703"];
#TRO358.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG3704"];
END_REGION
REGION Aufruf: TRO358
#TRO358.stInPriorityManager.xReleaseOk := TRUE;
#TRO358(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
nInTestTarget := "IBN".nTestTarget224,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO358,
xInConveyorRunIn := #fbSortConv2202.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2204.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF1,
arInOutStorageLines := "DB_Storage2.2.4".arLine,
arInOutJamEntr := "DB_JamArea2202".stJam2202_4.arCarrier,
stInOutJamEntr := "DB_JamArea2202".stJam2202_4.stData,
arInOutJamExit := "DB_JamArea2204".stJam2204_1.arCarrier,
stInOutJamExit := "DB_JamArea2204".stJam2204_1.stData,
arInOutJamBypass := "DB_JamArea2202".stJam2202_5.arCarrier,
stInOutJamBypass := "DB_JamArea2202".stJam2202_5.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO358,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[8],
xOutSeparatorPin => "MB3660",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro327"],
stCognexInterfacePin := #arCognexInterface["cScannerBX3125"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations224);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO358.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO358.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2202".stJam2202_4.arCarrier[1]);
END_REGION
REGION Barcode Reader OUT (BX3125)
"bx3125-TriggerEnable" := #arCognexInterface["cScannerBX3125"].xOutCamTriggerEnable;
"bx3125-Trigger" := #arCognexInterface["cScannerBX3125"].xOutCamTrigger;
"bx3125-ResultsAck" := #arCognexInterface["cScannerBX3125"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3930" := #TRO358.arOutSeparatorStore[1];
"MB3931" := #TRO358.arOutSeparatorStore[2];
"MB3932" := #TRO358.arOutSeparatorStore[3];
"MB3933" := #TRO358.arOutSeparatorStore[4];
"MB3934" := #TRO358.arOutSeparatorStore[5];
"MB3935" := #TRO358.arOutSeparatorStore[6];
"MB3936" := #TRO358.arOutSeparatorStore[7];
"MB3937" := #TRO358.arOutSeparatorStore[8];
"MB3940" := #TRO358.arOutSeparatorStore[9];
"MB3941" := #TRO358.arOutSeparatorStore[10];
"MB3942" := #TRO358.arOutSeparatorStore[11];
"MB3943" := #TRO358.arOutSeparatorStore[12];
"MB3944" := #TRO358.arOutSeparatorStore[13];
END_REGION
REGION Unloading Stations Out
"MB3690" := #TRO358.arOutSwitch[1];
"MB3691" := #TRO358.arOutSwitch[2];
"MB3692" := #TRO358.arOutSwitch[3];
"MB3693" := #TRO358.arOutSwitch[4];
"MB3694" := #TRO358.arOutSwitch[5];
"MB3695" := #TRO358.arOutSwitch[6];
"MB3696" := #TRO358.arOutSwitch[7];
"MB3697" := #TRO358.arOutSwitch[8];
"MB3700" := #TRO358.arOutSwitch[9];
"MB3701" := #TRO358.arOutSwitch[10];
"MB3702" := #TRO358.arOutSwitch[11];
"MB3703" := #TRO358.arOutSwitch[12];
"MB3704" := #TRO358.arOutSwitch[13];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 13 DO
IF #TRO358.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO358.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest22400" + #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 2.3
REGION BLOCK 2.3.1 (TRO 371)
REGION Encoder Settings
#TRO371.stInEncoderParameter.nPosActDif := #fbEncoderGF3204.nOutPosActDif;
#TRO371.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3204.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO371.stInSettings.nDestGeneral := "cDest23100";
#TRO371.stInSettings.nConvStations := "cHooksSorterMaxPin231"; //Konstante todo
#TRO371.stInSettings.nStationsMax := "cStationsMax231"; // Konstante todo
#TRO371.stInSettings.nStorageThreshold := "cNoPositionsBlock3";
#TRO371.stInSettings.nNoOfLines := 19;
END_REGION
REGION Pin Query / "Zappler"
#TRO371.stInSensorReference := "DB_Inputs".Sensors["cInBG4201"];
END_REGION
REGION Barcode Reader In (BX3133)
#TRO371.stInBarcodeReader.Settings.nStation := 231; // todo Konstante
#TRO371.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO371.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO371.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3133"].xInCamTriggerReady := "bx3133-TriggerReady";
#arCognexInterface["cScannerBX3133"].xInCamTriggerAck := "bx3133-TriggerAck";
#arCognexInterface["cScannerBX3133"].xInCamResultsAvailable := "bx3133-Results Available";
#arCognexInterface["cScannerBX3133"].xInCamGeneralFault := "bx3133-General Fault";
#arCognexInterface["cScannerBX3133"].hwInCamInspectionResults := "=A01+UC033-BX3133~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO371.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG4200"];
#TRO371.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO371.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO371.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := 4;//"cStorage231ExitJam1";
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3990"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam2";
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3991"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam3";
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3992"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam4";
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3993"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam5";
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3994"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam6";
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3995"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam7";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3996"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam8";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3997"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam9";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4000"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam10";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4001"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam11";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4002"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam12";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4003"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam13";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4004"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam14";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4005"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam15";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4006"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam16";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4007"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam17";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4010"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam18";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4011"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO371.arInSep[#nActNo].stSettings.stSimu.xActive := "DB_SIM_PARAM".xSimuActive;
#TRO371.arInSep[#nActNo].stSettings.nJamLength := "cStorage231ExitJam19";
#TRO371.arInSep[#nActNo].stSettings.stSimu.tSenTime := "tSimuSenTime";
#TRO371.arInSep[#nActNo].stSettings.stSimu.stJamConfig := "DB_SIM_PARAM".stStorageLineGlob.stSimuJamConfig;
#TRO371.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4012"];
#TRO371.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO371.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO371.xInQuitLocal := "SF0241" OR "SF0237";
#TRO371.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG4230"];
#TRO371.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG4231"];
#TRO371.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG4232"];
#TRO371.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG4233"];
#TRO371.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG4234"];
#TRO371.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG4235"];
#TRO371.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG4236"];
#TRO371.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG4237"];
#TRO371.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG4240"];
#TRO371.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG4241"];
#TRO371.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG4242"];
#TRO371.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG4243"];
#TRO371.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG4244"];
#TRO371.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG4245"];
#TRO371.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG4246"];
#TRO371.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG4247"];
#TRO371.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG4250"];
#TRO371.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG4251"];
#TRO371.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG4252"];
END_REGION
REGION Aufruf: TRO371
#TRO371.stInPriorityManager.xReleaseOk := TRUE;
#TRO371(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
nInTestTarget := "IBN".nTestTarget231,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := TRUE,//"DB_TRO_Test".TRO371,
xInConveyorRunIn := #fbSortConv2303.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2301.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
arInOutStorageLines := "DB_Storage2.3.1".arLine,
arInOutJamEntr := "DB_JamArea2303".stJam2303_2.arCarrier,
stInOutJamEntr := "DB_JamArea2303".stJam2303_2.stData,
arInOutJamExit := "DB_JamArea2301".stJam2301_1.arCarrier,
stInOutJamExit := "DB_JamArea2301".stJam2301_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO371,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[9],
xOutSeparatorPin => "MB4200",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro371"],
stCognexInterfacePin := #arCognexInterface["cScannerBX3133"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations231);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO371.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO371.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2303".stJam2303_2.arCarrier[1]);
END_REGION ;
REGION Barcode Reader Out (BX3133)
"bx3133-TriggerEnable" := #arCognexInterface["cScannerBX3133"].xOutCamTriggerEnable;
"bx3133-Trigger" := #arCognexInterface["cScannerBX3133"].xOutCamTrigger;
"bx3133-ResultsAck" := #arCognexInterface["cScannerBX3133"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3990" := #TRO371.arOutSeparatorStore[1];
"MB3991" := #TRO371.arOutSeparatorStore[2];
"MB3992" := #TRO371.arOutSeparatorStore[3];
"MB3993" := #TRO371.arOutSeparatorStore[4];
"MB3994" := #TRO371.arOutSeparatorStore[5];
"MB3995" := #TRO371.arOutSeparatorStore[6];
"MB3996" := #TRO371.arOutSeparatorStore[7];
"MB3997" := #TRO371.arOutSeparatorStore[8];
"MB4000" := #TRO371.arOutSeparatorStore[9];
"MB4001" := #TRO371.arOutSeparatorStore[10];
"MB4002" := #TRO371.arOutSeparatorStore[11];
"MB4003" := #TRO371.arOutSeparatorStore[12];
"MB4004" := #TRO371.arOutSeparatorStore[13];
"MB4005" := #TRO371.arOutSeparatorStore[14];
"MB4006" := #TRO371.arOutSeparatorStore[15];
"MB4007" := #TRO371.arOutSeparatorStore[16];
"MB4010" := #TRO371.arOutSeparatorStore[17];
"MB4011" := #TRO371.arOutSeparatorStore[18];
"MB4012" := #TRO371.arOutSeparatorStore[19];
END_REGION
REGION Unloading Stations Out
"MB4230" := #TRO371.arOutSwitch[1];
"MB4231" := #TRO371.arOutSwitch[2];
"MB4232" := #TRO371.arOutSwitch[3];
"MB4233" := #TRO371.arOutSwitch[4];
"MB4234" := #TRO371.arOutSwitch[5];
"MB4235" := #TRO371.arOutSwitch[6];
"MB4236" := #TRO371.arOutSwitch[7];
"MB4237" := #TRO371.arOutSwitch[8];
"MB4240" := #TRO371.arOutSwitch[9];
"MB4241" := #TRO371.arOutSwitch[10];
"MB4242" := #TRO371.arOutSwitch[11];
"MB4243" := #TRO371.arOutSwitch[12];
"MB4244" := #TRO371.arOutSwitch[13];
"MB4245" := #TRO371.arOutSwitch[14];
"MB4246" := #TRO371.arOutSwitch[15];
"MB4247" := #TRO371.arOutSwitch[16];
"MB4250" := #TRO371.arOutSwitch[17];
"MB4251" := #TRO371.arOutSwitch[18];
"MB4252" := #TRO371.arOutSwitch[19];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 19 DO
IF #TRO371.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO371.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest23100" + #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 2.3.2 (TRO 374)
REGION Encoder Settings
#TRO374.stInEncoderParameter.nPosActDif := #fbEncoderGF3204.nOutPosActDif;
#TRO374.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3204.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO374.stInSettings.nDestGeneral := "cDest23200";
#TRO374.stInSettings.nConvStations := "cHooksSorterMaxPin232"; //Konstante todo
#TRO374.stInSettings.nStationsMax := "cStationsMax232"; // Konstante todo
#TRO374.stInSettings.nStorageThreshold := "cNoPositionsBlock3";
#TRO374.stInSettings.nNoOfLines := 17;
END_REGION
REGION Pin Query / "Zappler"
#TRO374.stInSensorReference := "DB_Inputs".Sensors["cInBG4261"];
END_REGION
REGION Barcode Reader IN (BX3134)
#TRO374.stInBarcodeReader.Settings.nStation := 232; // todo Konstante
#TRO374.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO374.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO374.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3134"].xInCamTriggerReady := "bx3134-TriggerReady";
#arCognexInterface["cScannerBX3134"].xInCamTriggerAck := "bx3134-TriggerAck";
#arCognexInterface["cScannerBX3134"].xInCamResultsAvailable := "bx3134-Results Available";
#arCognexInterface["cScannerBX3134"].xInCamGeneralFault := "bx3134-General Fault";
#arCognexInterface["cScannerBX3134"].hwInCamInspectionResults := "=A01+UC033-BX3134~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO374.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG4260"];
#TRO374.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO374.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO374.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam1";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4050"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam2";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4051"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam3";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4052"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam4";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4053"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam5";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4054"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam6";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4055"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam7";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4056"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam8";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4057"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam9";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4060"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam10";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4061"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam11";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4062"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam12";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4063"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam13";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4064"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam14";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4065"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam15";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4066"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam16";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4067"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO374.arInSep[#nActNo].stSettings.nJamLength := "cStorage232ExitJam17";
#TRO374.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4070"];
#TRO374.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO374.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO374.xInQuitLocal := "SF0243" OR "SF0237";
#TRO374.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG4290"];
#TRO374.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG4291"];
#TRO374.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG4292"];
#TRO374.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG4293"];
#TRO374.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG4294"];
#TRO374.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG4295"];
#TRO374.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG4296"];
#TRO374.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG4297"];
#TRO374.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG4300"];
#TRO374.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG4301"];
#TRO374.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG4302"];
#TRO374.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG4303"];
#TRO374.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG4304"];
#TRO374.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG4305"];
#TRO374.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG4306"];
#TRO374.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG4307"];
#TRO374.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG4310"];
END_REGION ;
REGION Aufruf: TRO374
#TRO374.stInPriorityManager.xReleaseOk := True;
#TRO374(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
nInTestTarget := "IBN".nTestTarget232,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := TRUE, //"DB_TRO_Test".TRO374,
xInConveyorRunIn := #fbSortConv2303.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2301.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
arInOutStorageLines := "DB_Storage2.3.2".arLine,
arInOutJamEntr := "DB_JamArea2303".stJam2303_1.arCarrier,
stInOutJamEntr := "DB_JamArea2303".stJam2303_1.stData,
arInOutJamExit := "DB_JamArea2301".stJam2301_2.arCarrier,
stInOutJamExit := "DB_JamArea2301".stJam2301_2.stData,
arInOutJamBypass := "DB_JamArea2303".stJam2303_2.arCarrier,
stInOutJamBypass := "DB_JamArea2303".stJam2303_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO374,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[10],
stCognexInterfacePin := #arCognexInterface["cScannerBX3134"],
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO374"],
xOutSeparatorPin => "MB4260",
stConveyorStations := "DB_ConveyorStations".stConveyorStations232);
END_REGION ;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO374.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO374.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2303".stJam2303_1.arCarrier[1]);
END_REGION ;
REGION Barcode Reader Out (BX3134)
"bx3134-TriggerEnable" := #arCognexInterface["cScannerBX3134"].xOutCamTriggerEnable;
"bx3134-Trigger" := #arCognexInterface["cScannerBX3134"].xOutCamTrigger;
"bx3134-ResultsAck" := #arCognexInterface["cScannerBX3134"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB4050" := #TRO374.arOutSeparatorStore[1];
"MB4051" := #TRO374.arOutSeparatorStore[2];
"MB4052" := #TRO374.arOutSeparatorStore[3];
"MB4053" := #TRO374.arOutSeparatorStore[4];
"MB4054" := #TRO374.arOutSeparatorStore[5];
"MB4055" := #TRO374.arOutSeparatorStore[6];
"MB4056" := #TRO374.arOutSeparatorStore[7];
"MB4057" := #TRO374.arOutSeparatorStore[8];
"MB4060" := #TRO374.arOutSeparatorStore[9];
"MB4061" := #TRO374.arOutSeparatorStore[10];
"MB4062" := #TRO374.arOutSeparatorStore[11];
"MB4063" := #TRO374.arOutSeparatorStore[12];
"MB4064" := #TRO374.arOutSeparatorStore[13];
"MB4065" := #TRO374.arOutSeparatorStore[14];
"MB4066" := #TRO374.arOutSeparatorStore[15];
"MB4067" := #TRO374.arOutSeparatorStore[16];
"MB4070" := #TRO374.arOutSeparatorStore[17];
END_REGION
REGION Unloading Stations Out
"MB4290" := #TRO374.arOutSwitch[1];
"MB4291" := #TRO374.arOutSwitch[2];
"MB4292" := #TRO374.arOutSwitch[3];
"MB4293" := #TRO374.arOutSwitch[4];
"MB4294" := #TRO374.arOutSwitch[5];
"MB4295" := #TRO374.arOutSwitch[6];
"MB4296" := #TRO374.arOutSwitch[7];
"MB4297" := #TRO374.arOutSwitch[8];
"MB4300" := #TRO374.arOutSwitch[9];
"MB4301" := #TRO374.arOutSwitch[10];
"MB4302" := #TRO374.arOutSwitch[11];
"MB4303" := #TRO374.arOutSwitch[12];
"MB4304" := #TRO374.arOutSwitch[13];
"MB4305" := #TRO374.arOutSwitch[14];
"MB4306" := #TRO374.arOutSwitch[15];
"MB4307" := #TRO374.arOutSwitch[16];
"MB4310" := #TRO374.arOutSwitch[17];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 17 DO
IF #TRO374.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO374.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest23200" + #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 2.3.3 (TRO 377)
REGION Encoder Settings
#TRO377.stInEncoderParameter.nPosActDif := #fbEncoderGF3205.nOutPosActDif;
#TRO377.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3205.nPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO377.stInSettings.nDestGeneral := "cDest23300";
#TRO377.stInSettings.nConvStations := "cHooksSorterMaxPin233"; //Konstante todo
#TRO377.stInSettings.nStationsMax := "cStationsMax233"; // Konstante todo
#TRO377.stInSettings.nStorageThreshold := "cNoPositionsBlock3";
#TRO377.stInSettings.nNoOfLines := 21;
END_REGION
REGION Pin Query / "Zappler"
#TRO377.stInSensorReference := "DB_Inputs".Sensors["cInBG4321"];
END_REGION
REGION Barcode Reader In (BX3135)
#TRO377.stInBarcodeReader.Settings.nStation := 233; // todo Konstante
#TRO377.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO377.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO377.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3135"].xInCamTriggerReady := "bx3135-TriggerReady";
#arCognexInterface["cScannerBX3135"].xInCamTriggerAck := "bx3135-TriggerAck";
#arCognexInterface["cScannerBX3135"].xInCamResultsAvailable := "bx3135-Results Available";
#arCognexInterface["cScannerBX3135"].xInCamGeneralFault := "bx3135-General Fault";
#arCognexInterface["cScannerBX3135"].hwInCamInspectionResults := "=A01+UC033-BX3135~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO377.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG4320"];
#TRO377.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO377.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO377.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam1";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4110"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam2";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4111"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam3";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4112"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam4";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4113"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam5";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4114"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam6";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4115"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam7";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4116"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam8";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4117"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam9";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4120"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam10";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4121"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam11";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4122"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam12";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4123"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam13";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4124"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam14";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4125"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam15";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4126"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 16
#nActNo := 16;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam16";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4127"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 17
#nActNo := 17;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam17";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4130"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 18
#nActNo := 18;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam18";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4131"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 19
#nActNo := 19;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam19";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4132"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 20
#nActNo := 20;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam20";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4133"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 21
#nActNo := 21;
#TRO377.arInSep[#nActNo].stSettings.nJamLength := "cStorage233ExitJam21";
#TRO377.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4134"];
#TRO377.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO377.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO377.xInQuitLocal := "SF0245" OR "SF0237" OR "IBN".xQuit213;
#TRO377.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG4350"];
#TRO377.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG4351"];
#TRO377.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG4352"];
#TRO377.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG4353"];
#TRO377.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG4354"];
#TRO377.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG4355"];
#TRO377.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG4356"];
#TRO377.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG4357"];
#TRO377.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG4360"];
#TRO377.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG4361"];
#TRO377.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG4362"];
#TRO377.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG4363"];
#TRO377.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG4364"];
#TRO377.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG4365"];
#TRO377.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG4366"];
#TRO377.arInJamSensor[16] := "DB_Inputs".Sensors["cInBG4367"];
#TRO377.arInJamSensor[17] := "DB_Inputs".Sensors["cInBG4370"];
#TRO377.arInJamSensor[18] := "DB_Inputs".Sensors["cInBG4371"];
#TRO377.arInJamSensor[19] := "DB_Inputs".Sensors["cInBG4372"];
#TRO377.arInJamSensor[20] := "DB_Inputs".Sensors["cInBG4373"];
#TRO377.arInJamSensor[21] := "DB_Inputs".Sensors["cInBG4374"];
END_REGION ;
REGION Aufruf: TRO377
#TRO377.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO377(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
nInTestTarget := "IBN".nTestTarget233,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := TRUE,//"DB_TRO_Test".TRO377,
xInConveyorRunIn := #fbSortConv2304.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2302.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
arInOutStorageLines := "DB_Storage2.3.3".arLine,
arInOutJamEntr := "DB_JamArea2304".stJam2304_3.arCarrier,
stInOutJamEntr := "DB_JamArea2304".stJam2304_3.stData,
arInOutJamExit := "DB_JamArea2302".stJam2302_2.arCarrier,
stInOutJamExit := "DB_JamArea2302".stJam2302_2.stData,
arInOutJamBypass := "DB_JamArea2304".stJam2304_4.arCarrier,
stInOutJamBypass := "DB_JamArea2304".stJam2304_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO377,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[11],
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO377"],
xOutSeparatorPin => "MB4320",
stCognexInterfacePin := #arCognexInterface["cScannerBX3135"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations233);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO377.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO377.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2304".stJam2304_3.arCarrier[1]);
END_REGION
REGION Barcode Reader Out (BX3135)
"bx3135-TriggerEnable" := #arCognexInterface["cScannerBX3135"].xOutCamTriggerEnable;
"bx3135-Trigger" := #arCognexInterface["cScannerBX3135"].xOutCamTrigger;
"bx3135-ResultsAck" := #arCognexInterface["cScannerBX3135"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB4110" := #TRO377.arOutSeparatorStore[1];
"MB4111" := #TRO377.arOutSeparatorStore[2];
"MB4112" := #TRO377.arOutSeparatorStore[3];
"MB4113" := #TRO377.arOutSeparatorStore[4];
"MB4114" := #TRO377.arOutSeparatorStore[5];
"MB4115" := #TRO377.arOutSeparatorStore[6];
"MB4116" := #TRO377.arOutSeparatorStore[7];
"MB4117" := #TRO377.arOutSeparatorStore[8];
"MB4120" := #TRO377.arOutSeparatorStore[9];
"MB4121" := #TRO377.arOutSeparatorStore[10];
"MB4122" := #TRO377.arOutSeparatorStore[11];
"MB4123" := #TRO377.arOutSeparatorStore[12];
"MB4124" := #TRO377.arOutSeparatorStore[13];
"MB4125" := #TRO377.arOutSeparatorStore[14];
"MB4126" := #TRO377.arOutSeparatorStore[15];
"MB4127" := #TRO377.arOutSeparatorStore[16];
"MB4130" := #TRO377.arOutSeparatorStore[17];
"MB4131" := #TRO377.arOutSeparatorStore[18];
"MB4132" := #TRO377.arOutSeparatorStore[19];
"MB4133" := #TRO377.arOutSeparatorStore[20];
"MB4134" := #TRO377.arOutSeparatorStore[21];
END_REGION
REGION Unlaoding Stations Out
"MB4350" := #TRO377.arOutSwitch[1];
"MB4351" := #TRO377.arOutSwitch[2];
"MB4352" := #TRO377.arOutSwitch[3];
"MB4353" := #TRO377.arOutSwitch[4];
"MB4354" := #TRO377.arOutSwitch[5];
"MB4355" := #TRO377.arOutSwitch[6];
"MB4356" := #TRO377.arOutSwitch[7];
"MB4357" := #TRO377.arOutSwitch[8];
"MB4360" := #TRO377.arOutSwitch[9];
"MB4361" := #TRO377.arOutSwitch[10];
"MB4362" := #TRO377.arOutSwitch[11];
"MB4363" := #TRO377.arOutSwitch[12];
"MB4364" := #TRO377.arOutSwitch[13];
"MB4365" := #TRO377.arOutSwitch[14];
"MB4366" := #TRO377.arOutSwitch[15];
"MB4367" := #TRO377.arOutSwitch[16];
"MB4370" := #TRO377.arOutSwitch[17];
"MB4371" := #TRO377.arOutSwitch[18];
"MB4372" := #TRO377.arOutSwitch[19];
"MB4373" := #TRO377.arOutSwitch[20];
"MB4374" := #TRO377.arOutSwitch[21];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 21 DO
IF #TRO377.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO377.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest23300" + #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 2.3.4 (TRO 380)
REGION Encoder Settings
#TRO380.stInEncoderParameter.nPosActDif := #fbEncoderGF3205.nOutPosActDif;
#TRO380.stInEncoderParameter.nPosPitchPart := #fbEncoderGF3205.nPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO380.stInSettings.nDestGeneral := "cDest23400";
#TRO380.stInSettings.nConvStations := "cHooksSorterMaxPin234"; //Konstante todo
#TRO380.stInSettings.nStationsMax := "cStationsMax234"; // Konstante todo
#TRO380.stInSettings.nStorageThreshold := "cNoPositionsBlock3";
#TRO380.stInSettings.nNoOfLines := 15;
END_REGION
REGION Pin Query / "Zappler"
#TRO380.stInSensorReference := "DB_Inputs".Sensors["cInBG4381"];
END_REGION
REGION Barcode Reader In (BX4381)
#TRO380.stInBarcodeReader.Settings.nStation := 234; // todo Konstante
#TRO380.stInBarcodeReader.Settings.nScannerPurpose := 0; // todo Konstante
#TRO380.stInBarcodeReader.Settings.tTimeout := T#5s; // todo Konstante
#TRO380.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX3136"].xInCamTriggerReady := "bx3136-TriggerReady";
#arCognexInterface["cScannerBX3136"].xInCamTriggerAck := "bx3136-TriggerAck";
#arCognexInterface["cScannerBX3136"].xInCamResultsAvailable := "bx3136-Results Available";
#arCognexInterface["cScannerBX3136"].xInCamGeneralFault := "bx3136-General Fault";
#arCognexInterface["cScannerBX3136"].hwInCamInspectionResults := "=A01+UC033-BX3136~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Pin
#TRO380.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG4380"];
#TRO380.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO380.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO380.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam1";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4170"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam2";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4171"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam3";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4172"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 4
#nActNo := 4;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam4";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4173"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 5
#nActNo := 5;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam5";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4174"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 6
#nActNo := 6;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam6";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4175"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 7
#nActNo := 7;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam7";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4176"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 8
#nActNo := 8;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam8";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4177"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 9
#nActNo := 9;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam9";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4180"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 10
#nActNo := 10;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam10";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4181"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 11
#nActNo := 11;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam11";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4182"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 12
#nActNo := 12;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam12";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4183"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 13
#nActNo := 13;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam13";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4184"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 14
#nActNo := 14;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam14";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4185"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 15
#nActNo := 15;
#TRO380.arInSep[#nActNo].stSettings.nJamLength := "cStorage234ExitJam15";
#TRO380.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG4186"];
#TRO380.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO380.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
END_REGION
REGION UnloadingStations Settings
#TRO380.xInQuitLocal := "SF0247" OR "SF0237";
#TRO380.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG4410"];
#TRO380.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG4411"];
#TRO380.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG4412"];
#TRO380.arInJamSensor[4] := "DB_Inputs".Sensors["cInBG4413"];
#TRO380.arInJamSensor[5] := "DB_Inputs".Sensors["cInBG4414"];
#TRO380.arInJamSensor[6] := "DB_Inputs".Sensors["cInBG4415"];
#TRO380.arInJamSensor[7] := "DB_Inputs".Sensors["cInBG4416"];
#TRO380.arInJamSensor[8] := "DB_Inputs".Sensors["cInBG4417"];
#TRO380.arInJamSensor[9] := "DB_Inputs".Sensors["cInBG4420"];
#TRO380.arInJamSensor[10] := "DB_Inputs".Sensors["cInBG4421"];
#TRO380.arInJamSensor[11] := "DB_Inputs".Sensors["cInBG4422"];
#TRO380.arInJamSensor[12] := "DB_Inputs".Sensors["cInBG4423"];
#TRO380.arInJamSensor[13] := "DB_Inputs".Sensors["cInBG4424"];
#TRO380.arInJamSensor[14] := "DB_Inputs".Sensors["cInBG4425"];
#TRO380.arInJamSensor[15] := "DB_Inputs".Sensors["cInBG4426"];
END_REGION
REGION Aufruf: TRO380
#TRO380.stInPriorityManager.xReleaseOk := "cTodoTRUE";
#TRO380(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
nInTestTarget := "IBN".nTestTarget234,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := TRUE, //"DB_TRO_Test".TRO380,
xInConveyorRunIn := #fbSortConv2304.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv2302.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF4,
arInOutStorageLines := "DB_Storage2.3.4".arLine,
xOutSeparatorPin => "MB4380",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTRO380"],
arInOutJamEntr := "DB_JamArea2304".stJam2304_4.arCarrier,
stInOutJamEntr := "DB_JamArea2304".stJam2304_4.stData,
arInOutJamExit := "DB_JamArea2302".stJam2302_1.arCarrier,
stInOutJamExit := "DB_JamArea2302".stJam2302_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO380,
stMFRStorageRemovalInterface:= "DB_HandshakeStorage".str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl2[12],
stCognexInterfacePin := #arCognexInterface["cScannerBX3136"],
stConveyorStations := "DB_ConveyorStations".stConveyorStations234);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO380.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO380.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2304".stJam2304_4.arCarrier[1]);
END_REGION
REGION Barcode Reader Out (BX3136)
"bx3136-TriggerEnable" := #arCognexInterface["cScannerBX3136"].xOutCamTriggerEnable;
"bx3136-Trigger" := #arCognexInterface["cScannerBX3136"].xOutCamTrigger;
"bx3136-ResultsAck" := #arCognexInterface["cScannerBX3136"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB4170" := #TRO380.arOutSeparatorStore[1];
"MB4171" := #TRO380.arOutSeparatorStore[2];
"MB4172" := #TRO380.arOutSeparatorStore[3];
"MB4173" := #TRO380.arOutSeparatorStore[4];
"MB4174" := #TRO380.arOutSeparatorStore[5];
"MB4175" := #TRO380.arOutSeparatorStore[6];
"MB4176" := #TRO380.arOutSeparatorStore[7];
"MB4177" := #TRO380.arOutSeparatorStore[8];
"MB4180" := #TRO380.arOutSeparatorStore[9];
"MB4181" := #TRO380.arOutSeparatorStore[10];
"MB4182" := #TRO380.arOutSeparatorStore[11];
"MB4183" := #TRO380.arOutSeparatorStore[12];
"MB4184" := #TRO380.arOutSeparatorStore[13];
"MB4185" := #TRO380.arOutSeparatorStore[14];
"MB4186" := #TRO380.arOutSeparatorStore[15];
END_REGION
REGION Unloading Stations Out
"MB4410" := #TRO380.arOutSwitch[1];
"MB4411" := #TRO380.arOutSwitch[2];
"MB4412" := #TRO380.arOutSwitch[3];
"MB4413" := #TRO380.arOutSwitch[4];
"MB4414" := #TRO380.arOutSwitch[5];
"MB4415" := #TRO380.arOutSwitch[6];
"MB4416" := #TRO380.arOutSwitch[7];
"MB4417" := #TRO380.arOutSwitch[8];
"MB4420" := #TRO380.arOutSwitch[9];
"MB4421" := #TRO380.arOutSwitch[10];
"MB4422" := #TRO380.arOutSwitch[11];
"MB4423" := #TRO380.arOutSwitch[12];
"MB4424" := #TRO380.arOutSwitch[13];
"MB4425" := #TRO380.arOutSwitch[14];
"MB4426" := #TRO380.arOutSwitch[15];
END_REGION
REGION Send Container Store Response Message (CSRespM)
FOR #nIdxUnloading := 1 TO 15 DO
IF #TRO380.arfbStationUnloadPin[#nIdxUnloading].xOutUnloadingDone THEN //1 Zyklus
"FC_Send_CSRespM"(sInPLCID := 'PLCID003',
nInBarcode := #TRO380.arfbStationUnloadPin[#nIdxUnloading].nOutBarcode,
nInLocation := "cDest23400" + #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 300 (Vario)
#TRO300.stInSeparator1.Settings.nSeparatorNo := "cSep300.1";
#TRO300.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO300.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO300.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO300.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO300.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO300.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO300.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO300.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4624"];
#TRO300.stInSeparator1.Settings.tSenFree := T#2000ms;
#TRO300.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO300.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4623"]; //Pusher Dog in Pos
#TRO300.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4625"];
#TRO300.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4621"]; // Conveyor full
#TRO300.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4622"]; // Jam detector
#TRO300.stInVario.Settings.xContinousEmptying := FALSE;
#TRO300.stInVario.Settings.tWaitForJog := T#400ms;
#TRO300.stInVario.Settings.tConvEmpty := T#75000ms;
#TRO300.stInVario.Settings.nCountCarrier := 1;
#TRO300.stInVario.Settings.tWaitForStop := T#3s;
#TRO300.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO300.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO300.stInSettings.xIsBorner := TRUE;
#TRO300(nInMainTroNo := "cMainTro300",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1 AND "fbPreMain_DB".fbMonFPG_Open.xOutOk AND "fbPreMain_DB".fbMonFPG_Fault.xOutOk,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0090",
xInRelease := "DB_TRO_Test".TRO300,
arInOutJamEntr := "DB_JamArea4102".stJam4102_1.arCarrier,
stInOutJamEntr := "DB_JamArea4102".stJam4102_1.stData,
arInOutJamFinger := "DB_JamArea4101".stJam4101_1.arCarrier,
stInOutJamFinger := "DB_JamArea4101".stJam4101_1.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO300,
xOutStopper => "MB4624",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro300"],
xOutVarioMotor => "MA0090");
// "MA0090" := FALSE; //BST zu
END_REGION
REGION TRO 301(1Sep)
#TRO301.stInSeparator1.Settings.nSeparatorNo := "cSep301.1";
#TRO301.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO301.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO301.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO301.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO301.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO301.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4620"];
#TRO301.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO301(nInMainTroNo := "cMainTro301",
xInSftyOk := "cTodoTRUE",
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
// xInCarouselRun := #arInCarouselRun["cExitConv4102"],
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea4102".stJam4102_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea4102".stJam4102_2.stData,
arInOutJamExit2 := "DB_JamArea4101".stJam4101_1.arCarrier,
stInOutJamExit2 := "DB_JamArea4101".stJam4101_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO301,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro301"],
xOutStopper1 => "MB4620");
#arCarrierPlaceHolder[1] := #stEmptyCarrier;
END_REGION
REGION TRO 302 (Vario)
#TRO302.stInSeparator1.Settings.nSeparatorNo := "cSep302.1";
#TRO302.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO302.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO302.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO302.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO302.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO302.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO302.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO302.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4566"];
#TRO302.stInSeparator1.Settings.tSenFree := T#2000ms;
#TRO302.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO302.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4567"]; //Pusher Dog in Pos
#TRO302.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4570"];
#TRO302.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4565"]; // Conveyor full
#TRO302.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4564"]; // Jam detector
#TRO302.stInVario.Settings.xContinousEmptying := FALSE;
#TRO302.stInVario.Settings.tWaitForJog := T#400ms;
#TRO302.stInVario.Settings.tConvEmpty := T#10000ms;
#TRO302.stInVario.Settings.nCountCarrier := 1;
#TRO302.stInVario.Settings.tWaitForStop := T#3s;
#TRO302.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO302.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO302(nInMainTroNo := "cMainTro302",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0074",
xInRelease := "DB_TRO_Test".TRO302,
arInOutJamEntr := "DB_JamArea4101".stJam4101_1.arCarrier,
stInOutJamEntr := "DB_JamArea4101".stJam4101_1.stData,
arInOutJamFinger := "DB_JamArea4101".stJam4101_2.arCarrier,
stInOutJamFinger := "DB_JamArea4101".stJam4101_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO302,
xOutStopper => "MB4566",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro302"],
xOutVarioMotor => "MA0074");
END_REGION
REGION TRO 303 (Vario)
#TRO303.stInSeparator1.Settings.nSeparatorNo := "cSep303.1";
#TRO303.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO303.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO303.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO303.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO303.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO303.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO303.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO303.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4633"];
#TRO303.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO303.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO303.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4634"]; //Pusher Dog in Pos
#TRO303.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4635"];
#TRO303.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4632"]; // Conveyor full
#TRO303.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4631"]; // Jam detector
#TRO303.stInVario.Settings.xContinousEmptying := FALSE;
#TRO303.stInVario.Settings.tWaitForJog := T#400ms;
#TRO303.stInVario.Settings.tConvEmpty := T#75000ms;
#TRO303.stInVario.Settings.nCountCarrier := 1;
#TRO303.stInVario.Settings.tWaitForStop := T#3s;
#TRO303.stInVario.Settings.tRasterHigh := T#8000ms;
#TRO303.stInVario.Settings.tRasterLow := T#8000ms;
#TRO303.stInVario.Settings.tCarrierInPosDelay := T#1200ms;
#TRO303.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO303.stInSettings.xIsBorner := TRUE;
#TRO303(nInMainTroNo := "cMainTro303",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1 AND "fbPreMain_DB".fbMonFPG_Open.xOutOk AND "fbPreMain_DB".fbMonFPG_Fault.xOutOk,
xInReset := "cTodoFalse",
xInErrorQuit := "DB_Interface_HMI".stTRO.TRO303.UDT_Ctrl.xErrorQuit,
xInMotorProtection := "FC0091",
xInRelease := "DB_TRO_Test".TRO303,
arInOutJamEntr := "DB_JamArea4202".stJam4202_1.arCarrier,
stInOutJamEntr := "DB_JamArea4202".stJam4202_1.stData,
arInOutJamFinger := "DB_JamArea4201".stJam4201_1.arCarrier,
stInOutJamFinger := "DB_JamArea4201".stJam4201_1.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO303,
xOutStopper => "MB4633",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro303"],
xOutVarioMotor => "MA0091");
// "MA0091" := FALSE; //BST zu
END_REGION
REGION TRO 304(1Sep)
#TRO304.stInSeparator1.Settings.nSeparatorNo := "cSep304.1";
#TRO304.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO304.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO304.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO304.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO304.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO304.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4630"];
#TRO304.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO304(nInMainTroNo := "cMainTro304",
xInSftyOk := "cTodoTRUE",
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbExitConv2104.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea4202".stJam4202_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea4202".stJam4202_2.stData,
arInOutJamExit2 := "DB_JamArea4201".stJam4201_1.arCarrier,
stInOutJamExit2 := "DB_JamArea4201".stJam4201_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO304,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro304"],
xOutStopper1 => "MB4630");
#arCarrierPlaceHolder[1] := #stEmptyCarrier;
END_REGION
REGION TRO 305 (Vario)
#TRO305.stInSeparator1.Settings.nSeparatorNo := "cSep305.1";
#TRO305.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO305.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO305.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO305.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO305.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO305.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO305.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO305.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4572"];
#TRO305.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO305.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO305.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4573"]; //Pusher Dog in Pos
#TRO305.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4571"];
#TRO305.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4574"]; // Conveyor full
#TRO305.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4563"]; // Jam detector
#TRO305.stInVario.Settings.xContinousEmptying := FALSE;
#TRO305.stInVario.Settings.tWaitForJog := T#200ms;
#TRO305.stInVario.Settings.tConvEmpty := T#10000ms;
#TRO305.stInVario.Settings.nCountCarrier := 1;
#TRO305.stInVario.Settings.tWaitForStop := T#3s;
#TRO305.stInVario.Settings.tCarrierInPosDelay := T#1200ms;
#TRO305.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO305(nInMainTroNo := "cMainTro305",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0075",
xInRelease := "DB_TRO_Test".TRO305,
arInOutJamEntr := "DB_JamArea4201".stJam4201_1.arCarrier,
stInOutJamEntr := "DB_JamArea4201".stJam4201_1.stData,
arInOutJamFinger := "DB_JamArea4201".stJam4201_2.arCarrier,//Todo
stInOutJamFinger := "DB_JamArea4201".stJam4201_2.stData, //Todo
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO305,
xOutStopper => "MB4572",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro305"],
xOutVarioMotor => "MA0075");
END_REGION
REGION TRO 306 (Vario)
#TRO306.stInSeparator1.Settings.nSeparatorNo := "cSep306.1";
#TRO306.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO306.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO306.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO306.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO306.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO306.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO306.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO306.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4640"];
#TRO306.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO306.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO306.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4642"]; //Pusher Dog in Pos
#TRO306.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4641"]; // MT in Pos
#TRO306.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4644"]; // Conveyor full
#TRO306.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4643"]; // Jam detector
#TRO306.stInVario.Settings.xContinousEmptying := FALSE;
#TRO306.stInVario.Settings.tWaitForJog := T#50ms;
#TRO306.stInVario.Settings.tConvEmpty := T#90s;
#TRO306.stInVario.Settings.nCountCarrier := 1;
#TRO306.stInVario.Settings.tWaitForStop := T#3s;
#TRO306.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO306.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
#TRO306.stInVario.Settings.tTimeOutCarrierInPos := t#10s;
#TRO306.stInVario.Settings.xJamSenDelayActive := TRUE; // Sehr langes Gefälle nach Vario, Staureaktion muss nicht "schnell" sein
#TRO306.stInVario.Settings.tJamSenDelay := T#2s; //Zeit wie lange Stausensor belegt sein muss, damit Vario sofort anhält
#TRO306.stInVario.Settings.tRasterHigh := T#2500ms;
#TRO306.stInVario.Settings.tRasterLow := T#2500ms;
#TRO306.stInVario.Settings.xLongSlope := TRUE;
#TRO306.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO306.stInSettings.xIsBorner := TRUE;
#stJamDataHandoverJam4301.Config.nCapacitySet := 1;
#TRO306(nInMainTroNo := "cMainTro306",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1 AND "fbPreMain_DB".fbMonFPG_Open.xOutOk AND "fbPreMain_DB".fbMonFPG_Fault.xOutOk,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0092",
xInRelease := "DB_TRO_Test".TRO306,
arInOutJamEntr := "DB_JamArea4301".stJam4301_1.arCarrier,
stInOutJamEntr := "DB_JamArea4301".stJam4301_1.stData,
arInOutJamFinger := #arCarrierHandoverJam4301,
stInOutJamFinger := #stJamDataHandoverJam4301,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO306,
xOutStopper => "IO_Device_UH03_TO_UH01".xJAM_3,////"MB4640",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro306"],
xOutVarioMotor => "MA0092");
REGION UH02 <-> UH03
// #rTrig_TRO271_TRO306(CLK:="IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL.%X3);
// //Carrier kommt von UH02
// //Ready an UH02 melden
// "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X3 := "DB_JamArea4301".stJam4301_1.stData.Status.nCount <= 2;// 0 AND (NOT "DB_Inputs".Sensors["cInBG4640"].xDbncdSensor);
// IF #rTrig_TRO271_TRO306.Q THEN //Release von UH02 zu UH03, nur Flanke
// "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X4 := TRUE; //Busy von UH03 zu UH02
// END_IF;
// IF "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X4 AND #TRO306.nState = 2600 AND #TRO306.fbSeparator1.xOutTrolleyReleasedEdge THEN
// "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X4 := FALSE; //Carrier verarbeitet, Busy zurücksetzen
// END_IF;
END_REGION
END_REGION
REGION TRO 307 (Vario)
#TRO307.stInSeparator1.Settings.nSeparatorNo := "cSep307.1";
#TRO307.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO307.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO307.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO307.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO307.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO307.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO307.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO307.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4650"]; // IO-Device Eingang
#TRO307.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO307.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO307.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4652"]; //Pusher Dog in Pos
#TRO307.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4651"]; // MT in Pos
#TRO307.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4654"]; // Conveyor full
#TRO307.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4653"]; // Jam detector
#TRO307.stInVario.Settings.xContinousEmptying := FALSE;
#TRO307.stInVario.Settings.tWaitForJog := T#200ms;
#TRO307.stInVario.Settings.tConvEmpty := T#90s;
#TRO307.stInVario.Settings.nCountCarrier := 1;
#TRO307.stInVario.Settings.tWaitForStop := T#3s;
#TRO307.stInVario.Settings.xJamSenDelayActive := TRUE; // Sehr langes Gefälle nach Vario, Staureaktion muss nicht "schnell" sein
#TRO307.stInVario.Settings.tJamSenDelay := T#3s; //Zeit wie lange Stausensor belegt sein muss, damit Vario sofort anhält
#TRO307.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO307.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
#TRO307.stInVario.Settings.tTimeOutCarrierInPos := t#10s;
#TRO307.stInVario.Settings.xLongSlope := TRUE;
#stJamDataHandoverJam4401.Config.nCapacitySet := 1; //
#TRO307.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO307.stInSettings.xIsBorner := TRUE;
#TRO307(nInMainTroNo := "cMainTro307",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1 AND "fbPreMain_DB".fbMonFPG_Open.xOutOk AND "fbPreMain_DB".fbMonFPG_Fault.xOutOk,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0093",
xInRelease := "DB_TRO_Test".TRO307,
arInOutJamEntr := "DB_JamArea4401".stJam4401_1.arCarrier,
stInOutJamEntr := "DB_JamArea4401".stJam4401_1.stData,
arInOutJamFinger := #arCarrierHandoverJam4401,
stInOutJamFinger := #stJamDataHandoverJam4401,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO307,
xOutStopper => "IO_Device_UH03_TO_UH01".xJAM_2,//"MB4650", //
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro307"],
xOutVarioMotor => "MA0093");
REGION UH02 <-> UH03
// #rTrig_TRO273_TRO307(CLK := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL.%X4);
// //Carrier kommt von UH02
// //Ready an UH02 melden
// "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X5 := "DB_JamArea4401".stJam4401_1.stData.Status.nCount < 2; //= 0 AND (NOT "DB_Inputs".Sensors["cInBG4650"].xDbncdSensor);
// IF #rTrig_TRO273_TRO307.Q THEN //Release von UH02 zu UH03
// "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X6 := TRUE; //Busy von UH03 zu UH02
// END_IF;
// IF "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X6 AND "DB_JamArea4401".stJam4401_1.stData.Status.nCount > 0 THEN
// "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X6 := FALSE; //Carrier verarbeitet, Busy zurücksetzen
// END_IF;
END_REGION
END_REGION
REGION TRO 308 (Vario)
#TRO308.stInSeparator1.Settings.nSeparatorNo := "cSep308.1";
#TRO308.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO308.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO308.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO308.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO308.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO308.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO308.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO308.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4450"];
#TRO308.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO308.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO308.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4451"]; //Pusher Dog in Pos
#TRO308.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4452"];
#TRO308.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4442"]; // Conveyor full
#TRO308.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4441"]; // Jam detector
#TRO308.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO308.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
#TRO308.stInVario.Settings.xContinousEmptying := FALSE;
#TRO308.stInVario.Settings.tWaitForJog := T#200ms;
#TRO308.stInVario.Settings.tConvEmpty := T#60000ms;
#TRO308.stInVario.Settings.nCountCarrier := 1;
#TRO308.stInVario.Settings.tWaitForStop := T#3s;
#TRO308.stInVario.Settings.xJamSenDelayActive := TRUE; // Sehr langes Gefälle nach Vario, Staureaktion muss nicht "schnell" sein
#TRO308.stInVario.Settings.tJamSenDelay := T#750ms; //T#1s Zeit wie lange Stausensor belegt sein muss, damit Vario sofort anhält
#TRO308.stInVario.Settings.xLongSlope := TRUE;
#TRO308.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO308.stInSettings.xIsBorner := TRUE;
#TRO308(nInMainTroNo := "cMainTro308",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0073",
xInRelease := "DB_TRO_Test".TRO308,
arInOutJamEntr := "DB_JamArea2111".stJam2111_1.arCarrier,
stInOutJamEntr := "DB_JamArea2111".stJam2111_1.stData,
arInOutJamFinger := "DB_JamArea2111".stJam2111_2.arCarrier,
stInOutJamFinger := "DB_JamArea2111".stJam2111_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO308,
xOutStopper => "MB4450",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro308"],
xOutVarioMotor => "MA0073");
END_REGION
REGION TRO 309 (1Sep)
#TRO309.stInSeparator1.Settings.nSeparatorNo := "cSep309.1";
#TRO309.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO309.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO309.stInSeparator1.Settings.tTrailingTime := t#500ms;
#TRO309.stInSeparator1.Settings.tHandlingTime := t#200ms;
#TRO309.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO309.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO309.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO309.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4440"];
#TRO309.stInSenJam2 := "DB_Inputs".Sensors["cInBG4443"];
#TRO309.stInSeparator1.Settings.tSenFree := T#1000ms;
#TRO309.stInSeparator1.Settings.tSenWait := T#4000ms;
#TRO309.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO309(nInMainTroNo := "cMainTro309",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO309,
xInCarouselRun := #fbCarousel2110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2111".stJam2111_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2111".stJam2111_2.stData,
arInOutJamExit2 := "DB_JamArea2110".stJam2110_5.arCarrier,
stInOutJamExit2 := "DB_JamArea2110".stJam2110_5.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro309"],
xOutStopper1 => "MB4440",
stInOutHMI := "DB_Interface_HMI".stTRO.TRO309);
END_REGION
REGION TRO 386 (1Sep) - kam später dazu
#TRO386.stInSeparator1.Settings.nSeparatorNo := "cSep386.1";
#TRO386.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO386.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO386.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO386.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO386.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO386.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO386.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO386.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4576"];
#TRO386.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO386.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO386.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO386(nInMainTroNo := "cMainTro386",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO386,
xInCarouselRun := #fbCarousel2110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2110".stJam2110_5.arCarrier,
stInOutJamEntr1 := "DB_JamArea2110".stJam2110_5.stData,
arInOutJamExit2 := "DB_JamArea2110".stJam2110_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2110".stJam2110_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro386"],
xOutStopper1 => "MB4576",
stInOutHMI := "DB_Interface_HMI".stTRO.TRO386);
END_REGION
REGION TRO 310 (1Sep)+Scanner (BX3102)
#TRO310.stInSeparator1.Settings.nSeparatorNo := "cSep310.1";
#TRO310.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO310.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO310.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO310.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO310.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO310.stInSeparator1.Settings.xPluggedPart := TRUE;
// #TRO310.stInSettings.bSepType.%X0 := TRUE;
#TRO310.stInSettings.bSepType.%X2 := TRUE;
#TRO310.stInSettings.tPartSenHigh := T#500ms;
#TRO310.stInSettings.tInSenHigh := T#500ms;
#TRO310.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO310.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4560"];
#TRO310.stInSenJam2 := "DB_Inputs".Sensors["cInBG4577"]; // würde nur bis BG4577 stauen (BG4561, BG4576)
#TRO310.stInSeparator1.stSenPart := "DB_Inputs".Sensors["cInBG4561"];
#TRO310.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO310.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3102"].xInCamTriggerReady := "bx3102-TriggerReady";
#arCognexInterface["cScannerBX3102"].xInCamTriggerAck := "bx3102-TriggerAck";
#arCognexInterface["cScannerBX3102"].xInCamResultsAvailable := "bx3102-Results Available";
#arCognexInterface["cScannerBX3102"].xInCamGeneralFault := "bx3102-General Fault";
#arCognexInterface["cScannerBX3102"].hwInCamInspectionResults := "=A01+UH03-BX3102~Ergebnisse__64_Bytes_1";
#TRO310(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO310.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO310.TroOut,
nInMainTroNo := "cMainTro310",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO310, //AND NOT "DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible,
xInCarouselRun := #fbCarousel2110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3102"],
arInOutJamEntr1 := "DB_JamArea2110".stJam2110_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2110".stJam2110_1.stData,
arInOutJamExit2 := "DB_JamArea2110".stJam2110_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2110".stJam2110_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO310,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro310"],
xOutStopper1 => "MB4560");
"bx3102-TriggerEnable" := #arCognexInterface["cScannerBX3102"].xOutCamTriggerEnable;
"bx3102-Trigger" := #arCognexInterface["cScannerBX3102"].xOutCamTrigger;
"bx3102-ResultsAck" := #arCognexInterface["cScannerBX3102"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO310.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO310.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2110".stJam2110_1.arCarrier[1]);
END_REGION
REGION Clear MES Buffer IBN
IF "IBN".xDeleteMESBufferStorageManagement THEN
FOR #nIdx := 0 TO 100 DO
"DB_Prozessdaten".stStorageManagement.CarrierBuffer[#nIdx] := "IBN".stEmptyTeleGOHDReqM;
END_FOR;
END_IF;
"IBN".xDeleteMESBufferStorageManagement := FALSE;
END_REGION
REGION Provisorium - Zielvorgabe
// IF #TRO310.xOutNewScan THEN
IF #TRO310.nState = 1500 AND #TRO310.fbSeparator1.xOutTrolleyReleasedEdge AND "DB_JamArea2110".stJam2110_1.arCarrier[1].bStatus.%X0 AND "DB_JamArea2110".stJam2110_1.arCarrier[1].bStatus.%X1 THEN
"DB_HandshakeStorage".str_StorageManagement.str_TelegramMES.udtIn_DataMES.stPayload.nBarcode := #TRO310.nOutScanResult;
"DB_HandshakeStorage".str_StorageManagement.str_TelegramMES.udtIn_DataMES.stPayload.arActions[0] := 'lang';
"DB_HandshakeStorage".str_StorageManagement.str_TelegramMES.udtIn_DataMES.stPayload.arActions[1] := 'lang';
"DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible := TRUE;
END_IF;
IF "DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Status.xNewDataSaved
THEN
"DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible := FALSE;
END_IF;
END_REGION;
END_REGION
REGION TRO 311 (1Sep)+Scanner(BX3101)
#TRO311.stInSeparator1.Settings.nSeparatorNo := "cSep311.1";
#TRO311.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO311.stInSeparator1.Settings.tTrailingTime := T#400ms;
#TRO311.stInSeparator1.Settings.tHandlingTime := t#200ms;
#TRO311.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO311.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO311.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO311.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO311.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4562"];
#TRO311.stInSenJam2 := "DB_Inputs".Sensors["cInBG4577"]; //würde nur diesen Stausensor betrachten
#TRO311.stInSeparator1.Settings.tSenFree := t#2s;
#TRO311.stInSeparator1.Settings.tSenWait := t#4s;
#TRO311.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO311.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3101"].xInCamTriggerReady := "bx3101-TriggerReady";
#arCognexInterface["cScannerBX3101"].xInCamTriggerAck := "bx3101-TriggerAck";
#arCognexInterface["cScannerBX3101"].xInCamResultsAvailable := "bx3101-Results Available";
#arCognexInterface["cScannerBX3101"].xInCamGeneralFault := "bx3101-General Fault";
#arCognexInterface["cScannerBX3101"].hwInCamInspectionResults := "=A01+UH03-BX3101~Ergebnisse__64_Bytes_1";
"DB_JamArea4101".stJam4101_2.arCarrier[1].bStatus.%X1 := TRUE;
#TRO311(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO311.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO311.TroOut,
nInMainTroNo := "cMainTro311",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO311,
xInCarouselRun := #fbCarousel2110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3101"],
arInOutJamEntr1 := "DB_JamArea4101".stJam4101_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea4101".stJam4101_2.stData,
arInOutJamExit2 := "DB_JamArea2110".stJam2110_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2110".stJam2110_2.stData,
xOutStopper1 => "MB4562",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro311"],
stInOutHMI := "DB_Interface_HMI".stTRO.TRO311);
"bx3101-TriggerEnable" := #arCognexInterface["cScannerBX3101"].xOutCamTriggerEnable;
"bx3101-Trigger" := #arCognexInterface["cScannerBX3101"].xOutCamTrigger;
"bx3101-ResultsAck" := #arCognexInterface["cScannerBX3101"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO311.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO311.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea4101".stJam4101_2.arCarrier[1]);
END_REGION
REGION Provisorium - Zielvorgabe
// IF #TRO311.xOutNewScan THEN
REGION DecisionRequest to Fortna WCS
// Wenn SSCC Read abgeschlossen, dann Telegram mit spezifizierten Daten generieren und in TCP Sende-FIFO schieben
IF #TRO311.xOutNewScan THEN
"FC_Send_GOHDReqM"(sInPLCID := "cPLCID",
xInSSCCReq := FALSE,
xInLengthReq := FALSE,
xInDockDoorReq := FALSE,
xInLaneStatusReq := FALSE,
nInBarcode := "DB_JamArea4101".stJam4101_2.arCarrier[1].nBarcode,
sInSSCC := '',//#TRO110.fbBarcodeReaderSSCC.sOutBarcode,//DELETE(IN := LINT_TO_STRING(#TRO110.nOutScanResultSSCC), L := 1, P := 1),
sInDecisionPoint := 'GOH.Rec.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
(* "DB_HandshakeStorage".str_StorageManagement.str_TelegramMES.udtIn_DataMES.stPayload.nBarcode := #TRO311.nOutScanResult;
"DB_HandshakeStorage".str_StorageManagement.str_TelegramMES.udtIn_DataMES.stPayload.arActions[0] := 'lang';
"DB_HandshakeStorage".str_StorageManagement.str_TelegramMES.udtIn_DataMES.stPayload.arActions[1] := 'lang';
"DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible := TRUE;
END_IF;
IF "DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Status.xNewDataSaved
THEN
"DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible := FALSE;
END_IF; *)
END_REGION ;
END_REGION
REGION TRO 312 (1Sep)+Scanner(BX3100)
#TRO312.stInSeparator1.Settings.nSeparatorNo := "cSep312.1";
#TRO312.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO312.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO312.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO312.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO312.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO312.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO312.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO312.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4575"];
#TRO312.stInSenJam2 := "DB_Inputs".Sensors["cInBG4577"];
#TRO312.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO312.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3100"].xInCamTriggerReady := "bx3100-TriggerReady";
#arCognexInterface["cScannerBX3100"].xInCamTriggerAck := "bx3100-TriggerAck";
#arCognexInterface["cScannerBX3100"].xInCamResultsAvailable := "bx3100-Results Available";
#arCognexInterface["cScannerBX3100"].xInCamGeneralFault := "bx3100-General Fault";
#arCognexInterface["cScannerBX3100"].hwInCamInspectionResults := "=A01+UH03-BX3100~Ergebnisse__64_Bytes_1";
"DB_JamArea4201".stJam4201_2.arCarrier[1].bStatus.%X1 := FALSE;
#TRO312.stInSeparator1.Settings.tSenFree := t#2s;
#TRO312.stInSeparator1.Settings.tSenWait := t#4s;
#TRO312(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO312.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO312.TroOut,
nInMainTroNo := "cMainTro312",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO312,
xInCarouselRun := #fbCarousel2110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3100"],
arInOutJamEntr1 := "DB_JamArea4201".stJam4201_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea4201".stJam4201_2.stData,
arInOutJamExit2 := "DB_JamArea2110".stJam2110_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2110".stJam2110_2.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro312"],
xOutStopper1 => "MB4575",
stInOutHMI := "DB_Interface_HMI".stTRO.TRO312);
"bx3100-TriggerEnable" := #arCognexInterface["cScannerBX3100"].xOutCamTriggerEnable;
"bx3100-Trigger" := #arCognexInterface["cScannerBX3100"].xOutCamTrigger;
"bx3100-ResultsAck" := #arCognexInterface["cScannerBX3100"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO312.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO312.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea4201".stJam4201_2.arCarrier[1]);
END_REGION
END_REGION
REGION Priority Manager TRO 310/311/312
//TODO!!!
(* #stPrioTro413.TroOut.nTroId := "cMainTro413";
#stPrioTro413.TroOut.xTransportReq := #TRO413.fbSeparator1.stOutMainTro.xBtPresent;
#stPrioTro413.TroOut.stJamExit := "DB_JamArea4003".stJam4003_6.stData;
#stPrioTro415.TroOut.nTroId := "cMainTro415";
#stPrioTro415.TroOut.xTransportReq := #TRO415.fbSeparator1.stOutMainTro.xBtPresent;
#stPrioTro415.TroOut.stJamExit := "DB_JamArea4003".stJam4003_6.stData;
#stPrioParam_TRO413_TRO415.nPrioMode := 1;
#fbPrioManager_TRO413_TRO415(xInQuit := "cTodoFalse",
xInClearJam := FALSE,
tIn_ReleaseTime := T#10s,
udtIn_Source1Req := #stPrioTro413.TroOut,
udtIn_Source2Req := #stPrioTro415.TroOut,
udt_PrioParameter := #stPrioParam_TRO413_TRO415); *)
END_REGION
REGION TRO 313 (1Sep1Switch)+Scanner(BX3103)
#TRO313.stInSeparator1.Settings.nSeparatorNo := "cSep313.1";
#TRO313.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO313.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO313.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO313.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO313.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO313.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO313.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4503"];
#TRO313.stInSenJam2 := "DB_Inputs".Sensors["cInBG4507"];
#TRO313.stInSenJam3 := "DB_Inputs".Sensors["cInBG4504"];
#TRO313.stInSwitch1.Settings.nSwitchNo := "cSwi313.1";
#TRO313.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO313.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO313.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO313.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO313.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO313.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3103"].xInCamTriggerReady := "bx3103-TriggerReady";
#arCognexInterface["cScannerBX3103"].xInCamTriggerAck := "bx3103-TriggerAck";
#arCognexInterface["cScannerBX3103"].xInCamResultsAvailable := "bx3103-Results Available";
#arCognexInterface["cScannerBX3103"].xInCamGeneralFault := "bx3103-General Fault";
#arCognexInterface["cScannerBX3103"].hwInCamInspectionResults := "=A01+UH03-BX3103~Ergebnisse__64_Bytes_1";
#TRO313.stInSettings.xCar2NecLeft := TRUE;
#TRO313.stInSettings.xCar2NecRight := TRUE;
#TRO313.stInSettings.xPrioDir1 := FALSE;
#TRO313.stInSettings.xPrioDir2 := FALSE;
#TRO313(nInMainTroNo := "cMainTro313",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO313,
xInCarouselRun1 := #fbCarousel2110.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbCarousel2112.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO313,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3103"],
arInOutJamEntr1 := "DB_JamArea2110".stJam2110_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2110".stJam2110_2.stData,
arInOutJamExit2 := "DB_JamArea2112".stJam2112_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2112".stJam2112_1.stData,
arInOutJamExit3 := "DB_JamArea2110".stJam2110_3.arCarrier,
stInOutJamExit3 := "DB_JamArea2110".stJam2110_3.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro313"],
xOutStopper1 => "MB4503",
xOutSw1ExTo3 => "MB4505");
"bx3103-TriggerEnable" := #arCognexInterface["cScannerBX3103"].xOutCamTriggerEnable;
"bx3103-Trigger" := #arCognexInterface["cScannerBX3103"].xOutCamTrigger;
"bx3103-ResultsAck" := #arCognexInterface["cScannerBX3103"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO313.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO313.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2110".stJam2110_2.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi313.1",
nOutDirection => #TRO313.nInDirection,
InOutCarrier := "DB_JamArea2110".stJam2110_2.arCarrier[1]);
END_REGION
REGION Send DUM to Fortna WCS
IF #TRO313.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 314 (1Sep1Switch)+Scanner(BX3104)
#TRO314.stInSeparator1.Settings.nSeparatorNo := "cSep314.1";
#TRO314.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO314.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO314.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO314.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO314.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO314.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO314.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4500"];
#TRO314.stInSenJam2 := "DB_Inputs".Sensors["cInBG3674"];
#TRO314.stInSenJam3 := "DB_Inputs".Sensors["cInBG3673"];
#TRO314.stInSwitch1.Settings.nSwitchNo := "cSwi314.1";
#TRO314.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO314.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO314.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO314.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO314.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO314.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3104"].xInCamTriggerReady := "bx3104-TriggerReady";
#arCognexInterface["cScannerBX3104"].xInCamTriggerAck := "bx3104-TriggerAck";
#arCognexInterface["cScannerBX3104"].xInCamResultsAvailable := "bx3104-Results Available";
#arCognexInterface["cScannerBX3104"].xInCamGeneralFault := "bx3104-General Fault";
#arCognexInterface["cScannerBX3104"].hwInCamInspectionResults := "=A01+UH03-BX3104~Ergebnisse__64_Bytes_1";
#TRO314.stInSettings.xCar2NecLeft := TRUE;
#TRO314.stInSettings.xCar2NecRight := TRUE;
#TRO314.stInPriorityManagerDir1.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO314.stInPriorityManagerDir2.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO314(nInMainTroNo := "cMainTro314",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO314,
xInCarouselRun1 := #fbCarousel2110.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv2202.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO314,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3104"],
arInOutJamEntr1 := "DB_JamArea2110".stJam2110_3.arCarrier,
stInOutJamEntr1 := "DB_JamArea2110".stJam2110_3.stData,
arInOutJamExit2 := "DB_JamArea2202".stJam2202_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2202".stJam2202_1.stData,
arInOutJamExit3 := "DB_JamArea2110".stJam2110_4.arCarrier,
stInOutJamExit3 := "DB_JamArea2110".stJam2110_4.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro314"],
xOutStopper1 => "MB4500",
xOutSw1ExTo3 => "MB3673");
"bx3104-TriggerEnable" := #arCognexInterface["cScannerBX3104"].xOutCamTriggerEnable;
"bx3104-Trigger" := #arCognexInterface["cScannerBX3104"].xOutCamTrigger;
"bx3104-ResultsAck" := #arCognexInterface["cScannerBX3104"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO314.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO314.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2110".stJam2110_3.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi314.1",
nOutDirection => #TRO314.nInDirection,
InOutCarrier := "DB_JamArea2110".stJam2110_3.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 315 (1Sep)
#TRO315.stInSeparator1.Settings.nSeparatorNo := "cSep315.1";
#TRO315.stInSeparator1.Settings.tDelayToNextItem := T#30s;
#TRO315.stInSeparator1.Settings.xPluggedConfirm := FALSE;
#TRO315.stInSeparator1.Settings.xPluggedNullBT := FALSE;
#TRO315.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO315.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO315.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO315.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4444"];
#TRO315.stInSenJam2 := "DB_Inputs".Sensors["cInBG3194"];
#TRO315.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO315(nInMainTroNo := "cMainTro315",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO315,//"cTodoFalse",
xInCarouselRun := #fbCarousel2110.xOutConveyorFullSpeed AND #fbSortConv2102.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2110".stJam2110_4.arCarrier,
stInOutJamEntr1 := "DB_JamArea2110".stJam2110_4.stData,
arInOutJamExit2 := "DB_JamArea2102".stJam2102_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2102".stJam2102_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO315,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro315"],
xOutStopper1 => "MB4444");
END_REGION
REGION TRO 316 (1Sep)
#TRO316.stInSeparator1.Settings.nSeparatorNo := "cSep316.1";
#TRO316.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
#TRO316.stInSeparator1.Settings.xPluggedConfirm := FALSE;
#TRO316.stInSeparator1.Settings.xPluggedNullBT := FALSE;
#TRO316.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO316.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO316.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO316.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4395"];
#TRO316.stInSenJam2 := "DB_Inputs".Sensors["cInBG4392"];
#TRO316.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO316(nInMainTroNo := "cMainTro316",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO316,//"cTodoFalse",
xInCarouselRun := #fbCarousel2112.xOutConveyorFullSpeed AND #fbSortConv2304.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2112".stJam2112_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea2112".stJam2112_1.stData,
arInOutJamExit2 := "DB_JamArea2304".stJam2304_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2304".stJam2304_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO316,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro316"],
xOutStopper1 => "MB4395");
END_REGION
REGION TRO 317 (1Sep1Switch)+Scanner(BX3105)
#TRO317.stInSeparator1.Settings.nSeparatorNo := "cSep317.1";
#TRO317.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO317.stInSeparator1.Settings.xPluggedConfirm := FALSE;
#TRO317.stInSeparator1.Settings.xPluggedNullBT := FALSE;
#TRO317.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO317.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO317.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO317.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3134"];
#TRO317.stInSenJam2 := "DB_Inputs".Sensors["cInBG3136"];
#TRO317.stInSenJam3 := "DB_Inputs".Sensors["cInBG3135"];
#TRO317.stInSwitch1.Settings.nSwitchNo := "cSwi317.1";
#TRO317.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO317.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO317.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO317.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO317.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO317.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3105"].xInCamTriggerReady := "bx3105-TriggerReady";
#arCognexInterface["cScannerBX3105"].xInCamTriggerAck := "bx3105-TriggerAck";
#arCognexInterface["cScannerBX3105"].xInCamResultsAvailable := "bx3105-Results Available";
#arCognexInterface["cScannerBX3105"].xInCamGeneralFault := "bx3105-General Fault";
#arCognexInterface["cScannerBX3105"].hwInCamInspectionResults := "=A01+UC031-BX3105~Ergebnisse__64_Bytes_1";
#TRO317.stInPriorityManagerDir1.xReleaseOk := TRUE;
#TRO317.stInPriorityManagerDir2.xReleaseOk := TRUE;
#stJamDataHandoverJam1109.Config.nCapacitySet := 1; //
#TRO317(nInMainTroNo := "cMainTro317",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO317 AND ("IO_Device_UH03_TO_UH01".stCarrierL2toL1[1].nBarcode = 0), //zwecks Übergabe warten bis UH02 Daten abgeholt hat,
xInCarouselRun1 := #fbSortConv2102.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv2102.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO317,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #arCognexInterface["cScannerBX3105"],
arInOutJamEntr1 := "DB_JamArea2102".stJam2102_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2102".stJam2102_1.stData,
arInOutJamExit2 := "DB_JamArea2102".stJam2102_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2102".stJam2102_2.stData,
arInOutJamExit3 := "IO_Device_UH03_TO_UH01".stCarrierL2toL1, //#arCarrierHandoverJam1109,
stInOutJamExit3 := #stJamDataHandoverJam1109,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro317"],
xOutStopper1 => "MB3134",
xOutSw1ExTo4 => "MB3135");
"bx3105-TriggerEnable" := #arCognexInterface["cScannerBX3105"].xOutCamTriggerEnable;
"bx3105-Trigger" := #arCognexInterface["cScannerBX3105"].xOutCamTrigger;
"bx3105-ResultsAck" := #arCognexInterface["cScannerBX3105"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO317.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO317.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2102".stJam2102_1.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi317.1",
nOutDirection => #TRO317.nInDirection,
InOutCarrier := "DB_JamArea2102".stJam2102_1.arCarrier[1]);
END_REGION
REGION Übergabe Level 1
//todo: sicherstellen das UH02 ready ist, ansonsten sollte UH03 warten...
"FB_I-Device_SendCarrier_J1109"(xInTrigger := (#TRO317.nState = 2500) AND #TRO317.stActRequest.nDirection = 2 AND #TRO317.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X0, //von Empfänger
stInOutData := "IO_Device_UH03_TO_UH01".stCarrierL2toL1[1], //Daten
xOutReq := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL_1.%X0); //an Empfänger
END_REGION
END_REGION
REGION TRO 318 (1Sep1Switch) + Scanner(BX3106)
// IF (#TRO318.nState = "1Se1SwStep_CheckReqFinished") AND "IBN".nTestBlockSelection = 21300 THEN
// "IBN".nTestBlockSelection := 21200;
// ELSIF (#TRO318.nState = "1Se1SwStep_CheckReqFinished") AND "IBN".nTestBlockSelection = 21200 THEN
// "IBN".nTestBlockSelection := 21300;
// END_IF;
// "DB_JamArea2102".stJam2102_2.arCarrier[1].nDestination := 21400;//"IBN".nTestBlockSelection;
#TRO318.stInSeparator1.Settings.nSeparatorNo := "cSep318.1";
#TRO318.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO318.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO318.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO318.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO318.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO318.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO318.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3137"];
#TRO318.stInSenJam2 := "DB_Inputs".Sensors["cInBG3123"];
#TRO318.stInSenJam3 := "DB_Inputs".Sensors["cInBG3063"];
#TRO318.stInSwitch1.Settings.nSwitchNo := "cSwi318.1";
#TRO318.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO318.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO318.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO318.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO318.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO318.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3106"].xInCamTriggerReady := "bx3106-TriggerReady";
#arCognexInterface["cScannerBX3106"].xInCamTriggerAck := "bx3106-TriggerAck";
#arCognexInterface["cScannerBX3106"].xInCamResultsAvailable := "bx3106-Results Available";
#arCognexInterface["cScannerBX3106"].xInCamGeneralFault := "bx3106-General Fault";
#arCognexInterface["cScannerBX3106"].hwInCamInspectionResults := "=A01+UC031-BX3106~Ergebnisse__64_Bytes_1";
#TRO318.stInSettings.xCar2NecRight := TRUE;
#TRO318.stInSettings.xCar2NecLeft := TRUE;
#TRO318.stInSettings.xPrioDir1 := TRUE;
#TRO318.stInSettings.xPrioDir2 := TRUE;
#TRO318(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO318_3.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO318_3.TroOut,
stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO318_4.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO318_4.TroOut,
nInMainTroNo := "cMainTro318",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO318,
xInCarouselRun1 := #fbSortConv2102.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv2101.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO318,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #arCognexInterface["cScannerBX3106"],
arInOutJamEntr1 := "DB_JamArea2102".stJam2102_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea2102".stJam2102_2.stData,
arInOutJamExit2 := "DB_JamArea2102".stJam2102_3.arCarrier,
stInOutJamExit2 := "DB_JamArea2102".stJam2102_3.stData,
arInOutJamExit3 := "DB_JamArea2101".stJam2101_1.arCarrier,
stInOutJamExit3 := "DB_JamArea2101".stJam2101_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro318"],
xOutStopper1 => "MB3137",
xOutSw1ExTo3 => "MB3061");
"bx3106-TriggerEnable" := #arCognexInterface["cScannerBX3106"].xOutCamTriggerEnable;
"bx3106-Trigger" := #arCognexInterface["cScannerBX3106"].xOutCamTrigger;
"bx3106-ResultsAck" := #arCognexInterface["cScannerBX3106"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO318.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO318.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2102".stJam2102_2.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi318.1",
nOutDirection => #TRO318.nInDirection,
InOutCarrier := "DB_JamArea2102".stJam2102_2.arCarrier[1]);
END_REGION
// "DB_JamArea2102".stJam2102_2.arCarrier[1].nDestination := 21100;
END_REGION ;
REGION TRO 319 (1Sep1Switch) + Scanner (BX3111)
#TRO319.stInSeparator1.Settings.nSeparatorNo := "cSep319.1";
#TRO319.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO319.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO319.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO319.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO319.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO319.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO319.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3240"];
#TRO319.stInSenJam2 := "DB_Inputs".Sensors["cInBG3241"];
#TRO319.stInSwitch1.Settings.nSwitchNo := "cSwi319.1";
#TRO319.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO319.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO319.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO319.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO319.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO319.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3111"].xInCamTriggerReady := "bx3111-TriggerReady";
#arCognexInterface["cScannerBX3111"].xInCamTriggerAck := "bx3111-TriggerAck";
#arCognexInterface["cScannerBX3111"].xInCamResultsAvailable := "bx3111-Results Available";
#arCognexInterface["cScannerBX3111"].xInCamGeneralFault := "bx3111-General Fault";
#arCognexInterface["cScannerBX3111"].hwInCamInspectionResults := "=A01+UH03-BX3111~Ergebnisse__64_Bytes_1";
// "DB_JamArea2103".stJam2103_1.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO319.stInSettings.xCar2NecLeft := FALSE;
#TRO319.stInSettings.xCar2NecRight := FALSE;
#TRO319.stInSettings.xPrioDir1 := FALSE;
#TRO319.stInSettings.xPrioDir2 := TRUE;
#TRO319(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO319.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO319.TroOut,
nInMainTroNo := "cMainTro319",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO319,
xInCarouselRun1 := #fbExitConv2103.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2103.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO319,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3111"],
arInOutJamEntr1 := "DB_JamArea2103".stJam2103_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2103".stJam2103_1.stData,
arInOutJamExit2 := "DB_JamArea2105".stJam2105_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2105".stJam2105_1.stData,
arInOutJamExit3 := "DB_JamArea2103".stJam2103_2.arCarrier,
stInOutJamExit3 := "DB_JamArea2103".stJam2103_2.stData,
xOutStopper1 => "MB3240",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro319"],
xOutSw1ExTo3 => "MB3241");
"bx3111-TriggerEnable" := #arCognexInterface["cScannerBX3111"].xOutCamTriggerEnable;
"bx3111-Trigger" := #arCognexInterface["cScannerBX3111"].xOutCamTrigger;
"bx3111-ResultsAck" := #arCognexInterface["cScannerBX3111"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO319.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO319.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2103".stJam2103_1.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi319.1",
nOutDirection => #TRO319.nInDirection,
InOutCarrier := "DB_JamArea2103".stJam2103_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 320 (1Sep1Switch) + Scanner(BX3112)
#TRO320.stInSeparator1.Settings.nSeparatorNo := "cSep320.1";
#TRO320.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO320.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO320.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO320.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO320.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO320.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO320.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3300"];
#TRO320.stInSenJam2 := "DB_Inputs".Sensors["cInBG3301"];
#TRO320.stInSwitch1.Settings.nSwitchNo := "cSwi320.1";
#TRO320.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO320.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO320.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO320.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO320.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO320.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3112"].xInCamTriggerReady := "bx3112-TriggerReady";
#arCognexInterface["cScannerBX3112"].xInCamTriggerAck := "bx3112-TriggerAck";
#arCognexInterface["cScannerBX3112"].xInCamResultsAvailable := "bx3112-Results Available";
#arCognexInterface["cScannerBX3112"].xInCamGeneralFault := "bx3112-General Fault";
#arCognexInterface["cScannerBX3112"].hwInCamInspectionResults := "=A01+UH03-BX3112~Ergebnisse__64_Bytes_1";
#TRO320.stInSettings.xCar2NecLeft := FALSE;
#TRO320.stInSettings.xCar2NecRight := TRUE;
#TRO320.stInSettings.xPrioDir1 := FALSE;
#TRO320.stInSettings.xPrioDir2 := TRUE;
//"DB_JamArea2103".stJam2103_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO320(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO320.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO320.TroOut,
nInMainTroNo := "cMainTro320",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO320,
xInCarouselRun1 := #fbExitConv2103.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2104.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO320,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3112"],
arInOutJamEntr1 := "DB_JamArea2103".stJam2103_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2103".stJam2103_2.stData,
arInOutJamExit2 := "DB_JamArea2106".stJam2106_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2106".stJam2106_1.stData,
arInOutJamExit3 := "DB_JamArea2104".stJam2104_3.arCarrier,
stInOutJamExit3 := "DB_JamArea2104".stJam2104_3.stData,
xOutStopper1 => "MB3300",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro320"],
xOutSw1ExTo3 => "MB3301");
"bx3112-TriggerEnable" := #arCognexInterface["cScannerBX3112"].xOutCamTriggerEnable;
"bx3112-Trigger" := #arCognexInterface["cScannerBX3112"].xOutCamTrigger;
"bx3112-ResultsAck" := #arCognexInterface["cScannerBX3112"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO320.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO320.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2103".stJam2103_2.arCarrier[1]);
END_REGION
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi320.1",
nOutDirection => #TRO320.nInDirection,
InOutCarrier := "DB_JamArea2103".stJam2103_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 321 (1Sep1Switch) + Scanner(BX3114)
#TRO321.stInSeparator1.Settings.nSeparatorNo := "cSep321.1";
#TRO321.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO321.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO321.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO321.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO321.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO321.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO321.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3420"];
#TRO321.stInSenJam3 := "DB_Inputs".Sensors["cInBG3421"];
#TRO321.stInSwitch1.Settings.nSwitchNo := "cSwi321.1";
#TRO321.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO321.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO321.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO321.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO321.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO321.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3114"].xInCamTriggerReady := "bx3114-TriggerReady";
#arCognexInterface["cScannerBX3114"].xInCamTriggerAck := "bx3114-TriggerAck";
#arCognexInterface["cScannerBX3114"].xInCamResultsAvailable := "bx3114-Results Available";
#arCognexInterface["cScannerBX3114"].xInCamGeneralFault := "bx3114-General Fault";
#arCognexInterface["cScannerBX3114"].hwInCamInspectionResults := "=A01+UH03-BX3114~Ergebnisse__64_Bytes_1";
#TRO321.stInSettings.xCar2NecLeft := FALSE;
#TRO321.stInSettings.xCar2NecRight := FALSE;
#TRO321.stInSettings.xPrioDir1 := TRUE;
#TRO321.stInSettings.xPrioDir2 := FALSE;
#TRO321(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO321.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO321.TroOut,
nInMainTroNo := "cMainTro321",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO321,
xInCarouselRun1 := #fbExitConv2104.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2104.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO321,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3114"],
arInOutJamEntr1 := "DB_JamArea2104".stJam2104_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2104".stJam2104_1.stData,
arInOutJamExit2 := "DB_JamArea2104".stJam2104_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2104".stJam2104_2.stData,
arInOutJamExit3 := "DB_JamArea2108".stJam2108_1.arCarrier,
stInOutJamExit3 := "DB_JamArea2108".stJam2108_1.stData,
xOutStopper1 => "MB3420",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro321"],
xOutSw1ExTo4 => "MB3421");
"bx3114-TriggerEnable" := #arCognexInterface["cScannerBX3114"].xOutCamTriggerEnable;
"bx3114-Trigger" := #arCognexInterface["cScannerBX3114"].xOutCamTrigger;
"bx3114-ResultsAck" := #arCognexInterface["cScannerBX3114"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO321.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO321.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2104".stJam2104_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi321.1",
nOutDirection => #TRO321.nInDirection,
InOutCarrier := "DB_JamArea2104".stJam2104_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 322 (1Sep1Switch)+Scanner(BX3113)
#TRO322.stInSeparator1.Settings.nSeparatorNo := "cSep322.1";
#TRO322.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO322.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO322.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO322.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO322.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO322.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO322.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3360"];
#TRO322.stInSenJam3 := "DB_Inputs".Sensors["cInBG3361"];
#TRO322.stInSwitch1.Settings.nSwitchNo := "cSwi322.1";
#TRO322.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO322.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO322.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO322.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO322.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO322.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3113"].xInCamTriggerReady := "bx3113-TriggerReady";
#arCognexInterface["cScannerBX3113"].xInCamTriggerAck := "bx3113-TriggerAck";
#arCognexInterface["cScannerBX3113"].xInCamResultsAvailable := "bx3113-Results Available";
#arCognexInterface["cScannerBX3113"].xInCamGeneralFault := "bx3113-General Fault";
#arCognexInterface["cScannerBX3113"].hwInCamInspectionResults := "=A01+UH03-BX3113~Ergebnisse__64_Bytes_1";
#TRO322.stInSettings.xCar2NecLeft := TRUE;
#TRO322.stInSettings.xCar2NecRight := FALSE;
#TRO322.stInSettings.xPrioDir1 := TRUE;
#TRO322.stInSettings.xPrioDir2 := FALSE;
// "DB_JamArea2104".stJam2104_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO322(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO322.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO322.TroOut,
nInMainTroNo := "cMainTro322",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO322,
xInCarouselRun1 := #fbExitConv2104.xOutConveyorFullSpeed (* AND #fbExitConv2103.xOutConveyorFullSpeed *),
xInCarouselRun2 := #fbExitConv2103.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO322,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3113"],//Todo
arInOutJamEntr1 := "DB_JamArea2104".stJam2104_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2104".stJam2104_2.stData,
arInOutJamExit2 := "DB_JamArea2104".stJam2104_3.arCarrier,
stInOutJamExit2 := "DB_JamArea2104".stJam2104_3.stData,
arInOutJamExit3 := "DB_JamArea2107".stJam2107_1.arCarrier,
stInOutJamExit3 := "DB_JamArea2107".stJam2107_1.stData,
xOutStopper1 => "MB3360",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro322"],
xOutSw1ExTo4 => "MB3361");
"bx3113-TriggerEnable" := #arCognexInterface["cScannerBX3113"].xOutCamTriggerEnable;
"bx3113-Trigger" := #arCognexInterface["cScannerBX3113"].xOutCamTrigger;
"bx3113-ResultsAck" := #arCognexInterface["cScannerBX3113"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO322.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO322.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2104".stJam2104_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi322.1",
nOutDirection => #TRO322.nInDirection,
InOutCarrier := "DB_JamArea2104".stJam2104_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 323 (1Sep)
#TRO323.stInSeparator1.Settings.nSeparatorNo := "cSep323.1";
#TRO323.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO323.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO323.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO323.stInSeparator1.Settings.tHandlingTime := t#100ms;
#TRO323.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO323.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO323.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO323.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3425"];
#TRO323.stInSenJam2 := "DB_Inputs".Sensors["cInBG3426"];
//#TRO323.stInPriorityManager.xReleaseOk := "cTodoTRUE";//"cTodoFalse"; // Brauchen Prio zwischen TRO323 und TRO325
#TRO323(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO323.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO323.TroOut,
nInMainTroNo := "cMainTro323",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO323,//"cTodoFalse",
xInCarouselRun := #fbExitConv2104.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2104".stJam2104_3.arCarrier,
stInOutJamEntr1:= "DB_JamArea2104".stJam2104_3.stData,
arInOutJamExit2 := "DB_JamArea2104".stJam2104_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2104".stJam2104_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO323,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro323"],
xOutStopper1 => "MB3425");
END_REGION
REGION TRO 324 (Vario)
#TRO324.stInSeparator1.Settings.nSeparatorNo := "cSep324.1";
#TRO324.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO324.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO324.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO324.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO324.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO324.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO324.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO324.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3440"];
#TRO324.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO324.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO324.stInVario.Settings.xContinousEmptying := FALSE;
#TRO324.stInVario.Settings.tWaitForJog := T#400ms;
#TRO324.stInVario.Settings.tConvEmpty := T#25000ms;
#TRO324.stInVario.Settings.nCountCarrier := 1;
#TRO324.stInVario.Settings.tWaitForStop := t#3s;
#TRO324.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3442"]; //Pusher Dog in Pos
#TRO324.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3433"]; // Conveyor full
#TRO324.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3434"]; // Jam detector
#TRO324.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3441"]; // MT in Pos
#TRO324.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
// #TRO324.stInSettings.xIsBorner := TRUE;
#TRO324(nInMainTroNo := "cMainTro324",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0070",
xInRelease := "DB_TRO_Test".TRO324,
arInOutJamEntr := "DB_JamArea2109".stJam2109_1.arCarrier,//JAMS TO DO
stInOutJamEntr := "DB_JamArea2109".stJam2109_1.stData,
arInOutJamFinger := "DB_JamArea2109".stJam2109_2.arCarrier,
stInOutJamFinger := "DB_JamArea2109".stJam2109_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO324,
xOutStopper => "MB3440",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro324"],
xOutVarioMotor => "MA0070");
REGION Übernahme von Level 1
"FB_I-Device_Receive_J2109"(xInReq := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X3,
stInData := "IO_Device_UH02_FROM_UH01".stCARRIER_INFO[1],
xInOutAck := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL_1.%X3);
IF "FB_I-Device_Receive_J2109".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J2109".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea2109".stJam2109_1.arCarrier);
END_IF;
END_REGION
END_REGION
REGION TRO 325 (1Sep)
#TRO325.stInSeparator1.Settings.nSeparatorNo := "cSep325.1";
#TRO325.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO325.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO325.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO325.stInSeparator1.Settings.tHandlingTime := t#200ms;
#TRO325.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO325.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO325.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO325.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3432"];
#TRO325.stInSenJam2 := "DB_Inputs".Sensors["cInBG3435"];
#TRO325.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO325.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO325(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO325.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO325.TroOut,
nInMainTroNo := "cMainTro325",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO325,
xInCarouselRun := #fbExitConv2104.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2109".stJam2109_2.arCarrier,
stInOutJamEntr1:="DB_JamArea2109".stJam2109_2.stData,
arInOutJamExit2 := "DB_JamArea2104".stJam2104_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2104".stJam2104_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO325,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro325"],
xOutStopper1 => "MB3432");
END_REGION
REGION TRO 326 (1Sep)
#TRO326.stInSeparator1.Settings.nSeparatorNo := "cSep326.1";
#TRO326.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO326.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO326.stInSeparator1.Settings.tTrailingTime := t#300ms;
#TRO326.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO326.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO326.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO326.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO326.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3431"];
#TRO326.stInSenJam2 := "DB_Inputs".Sensors["cInBG3437"];
#TRO326.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam1401.Config.nCapacitySet := 1;
#TRO326(nInMainTroNo := "cMainTro326",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO326 AND ("IO_Device_UH03_TO_UH01".stCARRIER_INFO[1].nBarcode = 0), //zwecks Übergabe warten bis UH02 Daten abgeholt hat
xInCarouselRun := #fbExitConv2104.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2104".stJam2104_4.arCarrier,
stInOutJamEntr1 := "DB_JamArea2104".stJam2104_4.stData,
arInOutJamExit2 := "IO_Device_UH03_TO_UH01".stCARRIER_INFO,
stInOutJamExit2 := #stJamDataHandoverJam1401,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO326,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro326"],
xOutStopper1 => "MB3431");
REGION Übergabe Level 1
//todo: sicherstellen das UH02 ready ist, ansonsten sollte UH03 warten...
"FB_I-Device_SendCarrier_J1401"(xInTrigger := (#TRO326.nState = 2500) AND #TRO326.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL.%X0, //von Empfänger
stInOutData := "IO_Device_UH03_TO_UH01".stCARRIER_INFO[1], //Daten
xOutReq := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X0); //an Empfänger
END_REGION
END_REGION
REGION TRO 328 (Vario)
#TRO328.stInSeparator1.Settings.nSeparatorNo := "cSep328.1";
#TRO328.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO328.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO328.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO328.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO328.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO328.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO328.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO328.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3244"];
#TRO328.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO328.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO328.stInVario.Settings.xContinousEmptying := FALSE;
#TRO328.stInVario.Settings.tWaitForJog := T#400ms;
#TRO328.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO328.stInVario.Settings.nCountCarrier := 1;
// #TRO328.stInVario.Settings.tWaitForStop := T#3s; //NUR FÜR TESTMODUS, Im Normalbetrieb auskommentieren!
#TRO328.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3243"]; //Pusher Dog in Pos
#TRO328.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3006"]; // Conveyor full
#TRO328.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3005"]; // Jam detector
#TRO328.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3247"]; // MT in Pos
#TRO328.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO328(nInMainTroNo := "cMainTro328",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1 AND "SF0120" AND "SF0040",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0041" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0142",
xInRelease := "DB_TRO_Test".TRO328,
arInOutJamEntr := "DB_JamArea2105".stJam2105_1.arCarrier,
stInOutJamEntr := "DB_JamArea2105".stJam2105_1.stData,
arInOutJamFinger := "DB_JamArea2105".stJam2105_2.arCarrier,
stInOutJamFinger := "DB_JamArea2105".stJam2105_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO328,
xOutStopper => "MB3244",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro328"],
xOutVarioMotor => "MA0142");
END_REGION
REGION TRO 329 (1Sep)
#TRO329.stInSeparator1.Settings.nSeparatorNo := "cSep329.1";
#TRO329.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO329.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO329.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO329.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO329.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO329.stInSeparator1.Settings.xPluggedConfirm := FALSE;
#TRO329.stInSeparator1.Settings.xPluggedNullBT := FALSE;
#TRO329.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO329.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO329.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO329.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3004"];
#TRO329.stInSenJam2 := "DB_Inputs".Sensors["cInBG3003"];
#TRO329(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO329.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO329.TroOut,
nInMainTroNo := "cMainTro329",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO329,
xInCarouselRun := #fbSortConv2101.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2105".stJam2105_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2105".stJam2105_2.stData,
arInOutJamExit2 := "DB_JamArea2101".stJam2101_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2101".stJam2101_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO329,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro329"],
xOutStopper1 => "MB3004");
END_REGION
REGION TRO 331 (Vario)
#TRO331.stInSeparator1.Settings.nSeparatorNo := "cSep331.1";
#TRO331.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO331.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO331.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO331.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO331.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO331.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO331.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO331.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3304"];
#TRO331.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO331.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO331.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3303"]; //Pusher Dog in Pos
#TRO331.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3066"]; // Conveyor full
#TRO331.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3065"]; // Jam detector
#TRO331.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3307"]; // MT in Pos
#TRO331.stInVario.Settings.xContinousEmptying := FALSE;
#TRO331.stInVario.Settings.tWaitForJog := T#50ms;//T#400ms;
#TRO331.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO331.stInVario.Settings.nCountCarrier := 1;
//#TRO331.stInVario.Settings.tWaitForStop := T#3s; //NUR FÜR TESTMODUS, Im Normalbetrieb auskommentieren!
#TRO331.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO331(nInMainTroNo := "cMainTro331",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1 AND "SF0122" AND "SF0052",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0053" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0143",
xInRelease := "DB_TRO_Test".TRO331,
arInOutJamEntr := "DB_JamArea2106".stJam2106_1.arCarrier,
stInOutJamEntr := "DB_JamArea2106".stJam2106_1.stData,
arInOutJamFinger := "DB_JamArea2106".stJam2106_2.arCarrier,
stInOutJamFinger := "DB_JamArea2106".stJam2106_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO331,
xOutStopper => "MB3304",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro331"],
xOutVarioMotor => "MA0143");
END_REGION
REGION TRO 332 (1Sep)
#TRO332.stInSeparator1.Settings.nSeparatorNo := "cSep332.1";
#TRO332.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO332.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO332.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO332.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO332.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO332.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO332.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO332.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO332.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3064"];
#TRO332.stInSenJam2 := "DB_Inputs".Sensors["cInBG3063"];
#TRO332.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO332.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO332(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO332.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO332.TroOut,
nInMainTroNo := "cMainTro332",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO332,
xInCarouselRun := #fbSortConv2101.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2106".stJam2106_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea2106".stJam2106_2.stData,
arInOutJamExit2 := "DB_JamArea2101".stJam2101_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2101".stJam2101_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO332,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro332"],
xOutStopper1 => "MB3064");
END_REGION
REGION TRO 334 (Vario)
#TRO334.stInSeparator1.Settings.nSeparatorNo := "cSep334.1";
#TRO334.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO334.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO334.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO334.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO334.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO334.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO334.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO334.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3364"];
#TRO334.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO334.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO334.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3363"]; //Pusher Dog in Pos
#TRO334.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3126"]; // Conveyor full
#TRO334.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3125"]; // Jam detector
#TRO334.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3367"]; // MT in Pos
#TRO334.stInVario.Settings.xContinousEmptying := FALSE;
#TRO334.stInVario.Settings.tWaitForJog := T#400ms;
#TRO334.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO334.stInVario.Settings.nCountCarrier := 1;
// #TRO334.stInVario.Settings.tWaitForStop := T#3s; //NUR FÜR TESTMODUS, Im Normalbetrieb auskommentieren!
#TRO334.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO334(nInMainTroNo := "cMainTro334",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1 AND "SF0124" AND "SF0044",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0045" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0144",
xInRelease := "DB_TRO_Test".TRO334,
arInOutJamEntr := "DB_JamArea2107".stJam2107_1.arCarrier,
stInOutJamEntr := "DB_JamArea2107".stJam2107_1.stData,
arInOutJamFinger := "DB_JamArea2107".stJam2107_2.arCarrier,
stInOutJamFinger := "DB_JamArea2107".stJam2107_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO334,
xOutStopper => "MB3364",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro334"],
xOutVarioMotor => "MA0144");
END_REGION
REGION TRO 335 (1Sep)
#TRO335.stInSeparator1.Settings.nSeparatorNo := "cSep335.1";
#TRO335.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO335.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO335.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO335.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO335.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO335.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO335.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO335.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO335.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3124"];
#TRO335.stInSenJam2 := "DB_Inputs".Sensors["cInBG3123"];
#TRO335.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO335.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO335(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO335.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO335.TroOut,
nInMainTroNo := "cMainTro335",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO335,
xInCarouselRun := #fbSortConv2102.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2107".stJam2107_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2107".stJam2107_2.stData,
arInOutJamExit2 := "DB_JamArea2102".stJam2102_3.arCarrier,
stInOutJamExit2 := "DB_JamArea2102".stJam2102_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO335,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro335"],
xOutStopper1 => "MB3124");
END_REGION
REGION TRO 337 (Vario)
#TRO337.stInSeparator1.Settings.nSeparatorNo := "cSep337.1";
#TRO337.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO337.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO337.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO337.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO337.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO337.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO337.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO337.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3424"];
#TRO337.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO337.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO337.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3423"]; //Pusher Dog in Pos
#TRO337.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3186"]; // Conveyor full
#TRO337.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3185"]; // Jam detector
#TRO337.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3427"]; // MT in Pos
#TRO337.stInVario.Settings.xContinousEmptying := FALSE;
#TRO337.stInVario.Settings.tWaitForJog := T#400ms;
#TRO337.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO337.stInVario.Settings.nCountCarrier := 1;
// #TRO337.stInVario.Settings.tWaitForStop := T#3s; //NUR FÜR TESTMODUS, Im Normalbetrieb auskommentieren!
#TRO337.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO337(nInMainTroNo := "cMainTro337",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF1 AND "SF0126" AND "SF0046",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0047" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0145",
xInRelease := "DB_TRO_Test".TRO337,
arInOutJamEntr := "DB_JamArea2108".stJam2108_1.arCarrier,
stInOutJamEntr := "DB_JamArea2108".stJam2108_1.stData,
arInOutJamFinger := "DB_JamArea2108".stJam2108_2.arCarrier,
stInOutJamFinger := "DB_JamArea2108".stJam2108_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO337,
xOutStopper => "MB3424",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro337"],
xOutVarioMotor => "MA0145");
END_REGION
REGION TRO 338 (1Sep)
#TRO338.stInSeparator1.Settings.nSeparatorNo := "cSep338.1";
#TRO338.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO338.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO338.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO338.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO338.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO338.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO338.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO338.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO338.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3184"];
#TRO338.stInSenJam2 := "DB_Inputs".Sensors["cInBG3183"];
#TRO338.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO338.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO338(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO338.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO338.TroOut,
nInMainTroNo := "cMainTro338",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO338,
xInCarouselRun := #fbSortConv2102.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF2,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2108".stJam2108_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2108".stJam2108_2.stData,
arInOutJamExit2 := "DB_JamArea2102".stJam2102_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2102".stJam2102_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO338,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro338"],
xOutStopper1 => "MB3184");
END_REGION
// BLOCK 1 ENDE...
REGION TRO 339 (1Sep1Switch)+Scanner(BX3120)
#TRO339.stInSeparator1.Settings.nSeparatorNo := "cSep339.1";
#TRO339.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO339.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO339.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO339.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO339.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO339.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO339.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3614"];
#TRO339.stInSenJam2 := "DB_Inputs".Sensors["cInBG3616"];
#TRO339.stInSenJam3 := "DB_Inputs".Sensors["cInBG3615"];
#TRO339.stInSwitch1.Settings.nSwitchNo := "cSwi339.1";
#TRO339.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO339.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO339.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO339.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO339.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO339.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3120"].xInCamTriggerReady := "bx3120-TriggerReady";
#arCognexInterface["cScannerBX3120"].xInCamTriggerAck := "bx3120-TriggerAck";
#arCognexInterface["cScannerBX3120"].xInCamResultsAvailable := "bx3120-Results Available";
#arCognexInterface["cScannerBX3120"].xInCamGeneralFault := "bx3120-General Fault";
#arCognexInterface["cScannerBX3120"].hwInCamInspectionResults := "=A01+UH03-BX3120~Ergebnisse__64_Bytes_1";
#TRO339.stInPriorityManagerDir1.xReleaseOk := TRUE;
#TRO339.stInPriorityManagerDir2.xReleaseOk := TRUE;
#stJamDataHandoverJam1209.Config.nCapacitySet := 1; //
#TRO339(nInMainTroNo := "cMainTro339",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO339 AND ("IO_Device_UH03_TO_UH01".stCarrierL2toL1_2[1].nBarcode = 0), //zwecks Übergabe warten bis UH02 Daten abgeholt hat,
xInCarouselRun1 := #fbSortConv2202.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv2202.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO339,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3120"],
arInOutJamEntr1 := "DB_JamArea2202".stJam2202_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea2202".stJam2202_1.stData,
arInOutJamExit2 := "DB_JamArea2202".stJam2202_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2202".stJam2202_2.stData,
stInOutJamExit3 := #stJamDataHandoverJam1209,
arInOutJamExit3 := "IO_Device_UH03_TO_UH01".stCarrierL2toL1_2,//#arCarrierHandoverJam1209,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro339"],
xOutStopper1 => "MB3614",
xOutSw1ExTo4 => "MB3615");
"bx3120-TriggerEnable" := #arCognexInterface["cScannerBX3120"].xOutCamTriggerEnable;
"bx3120-Trigger" := #arCognexInterface["cScannerBX3120"].xOutCamTrigger;
"bx3120-ResultsAck" := #arCognexInterface["cScannerBX3120"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO339.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO339.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2202".stJam2202_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi339.1",
nOutDirection => #TRO339.nInDirection,
InOutCarrier := "DB_JamArea2202".stJam2202_1.arCarrier[1]);
END_REGION
REGION Übergabe Level 1
//todo: sicherstellen das UH02 ready ist, ansonsten sollte UH03 warten...
"FB_I-Device_SendCarrier_J1209"(xInTrigger := (#TRO339.nState = 2500) AND #TRO339.stActRequest.nDirection = 2 AND #TRO339.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X1, //von Empfänger
stInOutData := "IO_Device_UH03_TO_UH01".stCarrierL2toL1_2[1], //Daten
xOutReq := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL_1.%X1); //an Empfänger
END_REGION
END_REGION
REGION TRO 340 (1Sep1Switch)+Scanner(BX3121)
#TRO340.stInSeparator1.Settings.nSeparatorNo := "cSep340.1";
#TRO340.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO340.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO340.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO340.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO340.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO340.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO340.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3617"];
#TRO340.stInSenJam2 := "DB_Inputs".Sensors["cInBG3603"];
#TRO340.stInSenJam3 := "DB_Inputs".Sensors["cInBG3543"];
#TRO340.stInSwitch1.Settings.nSwitchNo := "cSwi340.1";
#TRO340.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO340.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO340.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO340.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO340.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO340.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3121"].xInCamTriggerReady := "bx3121-TriggerReady";
#arCognexInterface["cScannerBX3121"].xInCamTriggerAck := "bx3121-TriggerAck";
#arCognexInterface["cScannerBX3121"].xInCamResultsAvailable := "bx3121-Results Available";
#arCognexInterface["cScannerBX3121"].xInCamGeneralFault := "bx3121-General Fault";
#arCognexInterface["cScannerBX3121"].hwInCamInspectionResults := "=A01+UH03-BX3121~Ergebnisse__64_Bytes_1";
#TRO340.stInSettings.xCar2NecRight := TRUE;
#TRO340.stInSettings.xCar2NecLeft := TRUE;
#TRO340.stInSettings.xPrioDir1 := TRUE;
#TRO340.stInSettings.xPrioDir2 := TRUE;
#TRO340(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO340_3.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO340_3.TroOut,
stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO340_4.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO340_4.TroOut,
nInMainTroNo := "cMainTro340",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO340,
xInCarouselRun1 := #fbSortConv2202.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv2201.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO340,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX3121"],
arInOutJamEntr1 := "DB_JamArea2202".stJam2202_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2202".stJam2202_2.stData,
arInOutJamExit2 := "DB_JamArea2202".stJam2202_3.arCarrier,
stInOutJamExit2 := "DB_JamArea2202".stJam2202_3.stData,
arInOutJamExit3 := "DB_JamArea2201".stJam2201_1.arCarrier,
stInOutJamExit3 := "DB_JamArea2201".stJam2201_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro340"],
xOutStopper1 => "MB3617",
xOutSw1ExTo3 => "MB3541");
"bx3121-TriggerEnable" := #arCognexInterface["cScannerBX3121"].xOutCamTriggerEnable;
"bx3121-Trigger" := #arCognexInterface["cScannerBX3121"].xOutCamTrigger;
"bx3121-ResultsAck" := #arCognexInterface["cScannerBX3121"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO340.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO340.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2202".stJam2202_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi340.1",
nOutDirection => #TRO340.nInDirection,
InOutCarrier := "DB_JamArea2202".stJam2202_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 341 (1Sep1Switch)+Scanner(BX3126)
#TRO341.stInSeparator1.Settings.nSeparatorNo := "cSep341.1";
#TRO341.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO341.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO341.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO341.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO341.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO341.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO341.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3720"];
#TRO341.stInSenJam2 := "DB_Inputs".Sensors["cInBG3721"];
#TRO341.stInSwitch1.Settings.nSwitchNo := "cSwi341.1";
#TRO341.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO341.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO341.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO341.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO341.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO341.stInBarcodeReader.Settings.tTimeout := T#15s;
#arCognexInterface["cScannerBX3126"].xInCamTriggerReady := "bx3126-TriggerReady";
#arCognexInterface["cScannerBX3126"].xInCamTriggerAck := "bx3126-TriggerAck";
#arCognexInterface["cScannerBX3126"].xInCamResultsAvailable := "bx3126-Results Available";
#arCognexInterface["cScannerBX3126"].xInCamGeneralFault := "bx3126-General Fault";
#arCognexInterface["cScannerBX3126"].hwInCamInspectionResults := "=A01+UC032-BX3126~Ergebnisse__64_Bytes_1";
#TRO341.stInSettings.xCar2NecLeft := FALSE;
#TRO341.stInSettings.xCar2NecRight := FALSE;
#TRO341.stInSettings.xPrioDir1 := FALSE;
#TRO341.stInSettings.xPrioDir2 := TRUE;
// "DB_JamArea2203".stJam2203_1.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO341(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO341.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO341.TroOut,
nInMainTroNo := "cMainTro341",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO341,
xInCarouselRun1 := #fbExitConv2203.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2203.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO341,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3126"],
arInOutJamEntr1 := "DB_JamArea2203".stJam2203_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2203".stJam2203_1.stData,
arInOutJamExit2 := "DB_JamArea2205".stJam2205_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2205".stJam2205_1.stData,
arInOutJamExit3 := "DB_JamArea2203".stJam2203_2.arCarrier,
stInOutJamExit3 := "DB_JamArea2203".stJam2203_2.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro341"],
xOutStopper1 => "MB3720",
xOutSw1ExTo3 => "MB3721");
"bx3126-TriggerEnable" := #arCognexInterface["cScannerBX3126"].xOutCamTriggerEnable;
"bx3126-Trigger" := #arCognexInterface["cScannerBX3126"].xOutCamTrigger;
"bx3126-ResultsAck" := #arCognexInterface["cScannerBX3126"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO341.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO341.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2203".stJam2203_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi341.1",
nOutDirection => #TRO341.nInDirection,
InOutCarrier := "DB_JamArea2203".stJam2203_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 342 (1Sep1Switch)+Scanner(BX3127)
#TRO342.stInSeparator1.Settings.nSeparatorNo := "cSep342.1";
#TRO342.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO342.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO342.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO342.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO342.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO342.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO342.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3780"];
#TRO342.stInSenJam2 := "DB_Inputs".Sensors["cInBG3781"];
#TRO342.stInSenJam3 := "DB_Inputs".Sensors["cInBG3845"];
#TRO342.stInSwitch1.Settings.nSwitchNo := "cSwi342.1";
#TRO342.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO342.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO342.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO342.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO342.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO342.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3127"].xInCamTriggerReady := "bx3127-TriggerReady";
#arCognexInterface["cScannerBX3127"].xInCamTriggerAck := "bx3127-TriggerAck";
#arCognexInterface["cScannerBX3127"].xInCamResultsAvailable := "bx3127-Results Available";
#arCognexInterface["cScannerBX3127"].xInCamGeneralFault := "bx3127-General Fault";
#arCognexInterface["cScannerBX3127"].hwInCamInspectionResults := "=A01+UC032-BX3127~Ergebnisse__64_Bytes_1";
#TRO342.stInSettings.xCar2NecRight := TRUE;
#TRO342.stInSettings.xCar2NecLeft := FALSE;
#TRO342.stInSettings.xPrioDir1 := FALSE;
#TRO342.stInSettings.xPrioDir2 := TRUE;
// "DB_JamArea2203".stJam2203_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO342(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO342.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO342.TroOut,
nInMainTroNo := "cMainTro342",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO342,
xInCarouselRun1 := #fbExitConv2203.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2204.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO342,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3127"],
arInOutJamEntr1 := "DB_JamArea2203".stJam2203_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2203".stJam2203_2.stData,
arInOutJamExit2 := "DB_JamArea2206".stJam2206_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2206".stJam2206_1.stData,
arInOutJamExit3 := "DB_JamArea2204".stJam2204_3.arCarrier,
stInOutJamExit3 := "DB_JamArea2204".stJam2204_3.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro342"],
xOutStopper1 => "MB3780",
xOutSw1ExTo3 => "MB3781");
"bx3127-TriggerEnable" := #arCognexInterface["cScannerBX3127"].xOutCamTriggerEnable;
"bx3127-Trigger" := #arCognexInterface["cScannerBX3127"].xOutCamTrigger;
"bx3127-ResultsAck" := #arCognexInterface["cScannerBX3127"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO342.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO342.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2203".stJam2203_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi342.1",
nOutDirection => #TRO342.nInDirection,
InOutCarrier := "DB_JamArea2203".stJam2203_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 343 (1Sep1Switch)+Scanner(BX3129)
#TRO343.stInSeparator1.Settings.nSeparatorNo := "cSep343.1";
#TRO343.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO343.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO343.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO343.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO343.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO343.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO343.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3900"];
#TRO343.stInSenJam3 := "DB_Inputs".Sensors["cInBG3901"];
#TRO343.stInSwitch1.Settings.nSwitchNo := "cSwi343.1";
#TRO343.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO343.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO343.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO343.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO343.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO343.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3129"].xInCamTriggerReady := "bx3129-TriggerReady";
#arCognexInterface["cScannerBX3129"].xInCamTriggerAck := "bx3129-TriggerAck";
#arCognexInterface["cScannerBX3129"].xInCamResultsAvailable := "bx3129-Results Available";
#arCognexInterface["cScannerBX3129"].xInCamGeneralFault := "bx3129-General Fault";
#arCognexInterface["cScannerBX3129"].hwInCamInspectionResults := "=A01+UC032-BX3129~Ergebnisse__64_Bytes_1";
#TRO343.stInSettings.xCar2NecLeft := FALSE;
#TRO343.stInSettings.xCar2NecRight := FALSE;
#TRO343.stInSettings.xPrioDir2 := FALSE;
#TRO343.stInSettings.xPrioDir1 := TRUE;
// "DB_JamArea2204".stJam2204_1.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO343(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO343.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO343.TroOut,
nInMainTroNo := "cMainTro343",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO343,
xInCarouselRun1 := #fbExitConv2204.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2204.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO343,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3129"],
arInOutJamEntr1 := "DB_JamArea2204".stJam2204_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2204".stJam2204_1.stData,
arInOutJamExit2 := "DB_JamArea2204".stJam2204_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2204".stJam2204_2.stData,
arInOutJamExit3 := "DB_JamArea2208".stJam2208_1.arCarrier,
stInOutJamExit3 := "DB_JamArea2208".stJam2208_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro343"],
xOutStopper1 => "MB3900",
xOutSw1ExTo4 => "MB3901");
"bx3129-TriggerEnable" := #arCognexInterface["cScannerBX3129"].xOutCamTriggerEnable;
"bx3129-Trigger" := #arCognexInterface["cScannerBX3129"].xOutCamTrigger;
"bx3129-ResultsAck" := #arCognexInterface["cScannerBX3129"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO343.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO343.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2204".stJam2204_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi343.1",
nOutDirection => #TRO343.nInDirection,
InOutCarrier := "DB_JamArea2204".stJam2204_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 344 (1Sep1Switch)+Scanner(BX3128)
#TRO344.stInSeparator1.Settings.nSeparatorNo := "cSep344.1";
#TRO344.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO344.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO344.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO344.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO344.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO344.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO344.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3840"];
#TRO344.stInSenJam2 := "DB_Inputs".Sensors["cInBG3845"];
#TRO344.stInSenJam3 := "DB_Inputs".Sensors["cInBG3841"];
#TRO344.stInSwitch1.Settings.nSwitchNo := "cSwi344.1";
#TRO344.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO344.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO344.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO344.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO344.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO344.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3128"].xInCamTriggerReady := "bx3128-TriggerReady";
#arCognexInterface["cScannerBX3128"].xInCamTriggerAck := "bx3128-TriggerAck";
#arCognexInterface["cScannerBX3128"].xInCamResultsAvailable := "bx3128-Results Available";
#arCognexInterface["cScannerBX3128"].xInCamGeneralFault := "bx3128-General Fault";
#arCognexInterface["cScannerBX3128"].hwInCamInspectionResults := "=A01+UC032-BX3128~Ergebnisse__64_Bytes_1";
#TRO344.stInSettings.xCar2NecLeft := TRUE;
#TRO344.stInSettings.xCar2NecRight := FALSE;
#TRO344.stInSettings.xPrioDir2 := FALSE;
#TRO344.stInSettings.xPrioDir1 := TRUE;
// "DB_JamArea2204".stJam2204_2.arCarrier[1].nDestination := "cDestF2HLoaded";
#TRO344(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO344.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO344.TroOut,
nInMainTroNo := "cMainTro344",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO344,
xInCarouselRun1 := #fbExitConv2204.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2203.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO344,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3128"],
arInOutJamEntr1 := "DB_JamArea2204".stJam2204_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2204".stJam2204_2.stData,
arInOutJamExit2 := "DB_JamArea2204".stJam2204_3.arCarrier,
stInOutJamExit2 := "DB_JamArea2204".stJam2204_3.stData,
arInOutJamExit3 := "DB_JamArea2207".stJam2207_1.arCarrier,
stInOutJamExit3 := "DB_JamArea2207".stJam2207_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro344"],
xOutStopper1 => "MB3840",
xOutSw1ExTo4 => "MB3841");
"bx3128-TriggerEnable" := #arCognexInterface["cScannerBX3128"].xOutCamTriggerEnable;
"bx3128-Trigger" := #arCognexInterface["cScannerBX3128"].xOutCamTrigger;
"bx3128-ResultsAck" := #arCognexInterface["cScannerBX3128"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO344.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO344.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2204".stJam2204_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi344.1",
nOutDirection => #TRO344.nInDirection,
InOutCarrier := "DB_JamArea2204".stJam2204_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 345 (1Sep)
#TRO345.stInSeparator1.Settings.nSeparatorNo := "cSep345.1";
#TRO345.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO345.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO345.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO345.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO345.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO345.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO345.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO345.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3905"];
#TRO345.stInSenJam2 := "DB_Inputs".Sensors["cInBG3906"];
#TRO345(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO345.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO345.TroOut,
nInMainTroNo := "cMainTro345",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO345,
xInCarouselRun := #fbExitConv2204.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2204".stJam2204_3.arCarrier,
stInOutJamEntr1:= "DB_JamArea2204".stJam2204_3.stData,
arInOutJamExit2 := "DB_JamArea2204".stJam2204_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2204".stJam2204_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO345,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro345"],
xOutStopper1 => "MB3905");
END_REGION
REGION TRO 346 (Vario)
#TRO346.stInSeparator1.Settings.nSeparatorNo := "cSep346.1";
#TRO346.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO346.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO346.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO346.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO346.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO346.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO346.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO346.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3920"];
#TRO346.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO346.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO346.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3922"]; //Finger in Pos
#TRO346.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3921"]; //MT in Pos
#TRO346.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3913"]; // Conveyor full
#TRO346.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3915"]; // Jam detector
#TRO346.stInVario.Settings.xContinousEmptying := FALSE;
#TRO346.stInVario.Settings.tWaitForJog := T#400ms;
#TRO346.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO346.stInVario.Settings.nCountCarrier := 1;
#TRO346.stInVario.Settings.tWaitForStop := T#3s;
#TRO346.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
// #TRO346.stInSettings.xIsBorner := TRUE;
#TRO346(nInMainTroNo := "cMainTro346",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO346,
xInAutomatic := #t_Automatik_OF3,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0205",
arInOutJamEntr := "DB_JamArea2209".stJam2209_1.arCarrier,
stInOutJamEntr := "DB_JamArea2209".stJam2209_1.stData,
arInOutJamFinger := "DB_JamArea2209".stJam2209_2.arCarrier,
stInOutJamFinger := "DB_JamArea2209".stJam2209_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO346,
xOutStopper => "MB3920",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro346"],
xOutVarioMotor => "MA0205");
REGION Übernahme von Level 1
"FB_I-Device_Receive_J2209"(xInReq := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X4,
stInData := "IO_Device_UH02_FROM_UH01".stCARRIER_INFO_1[1],
xInOutAck := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL_1.%X4);
IF "FB_I-Device_Receive_J2209".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J2209".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea2209".stJam2209_1.arCarrier);
END_IF;
END_REGION
END_REGION
REGION TRO 347 (1Sep)
#TRO347.stInSeparator1.Settings.nSeparatorNo := "cSep347.1";
#TRO347.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO347.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO347.stInSeparator1.Settings.tHandlingTime := t#200ms;
#TRO347.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO347.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO347.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO347.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO347.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3912"];
#TRO347.stInSenJam2 := "DB_Inputs".Sensors["cInBG3915"];
#TRO347.stInPriorityManager.xReleaseOk := TRUE;
#TRO347.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO347.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO347(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO347.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO347.TroOut,
nInMainTroNo := "cMainTro347",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO347,
xInCarouselRun := #fbExitConv2204.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2209".stJam2209_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2209".stJam2209_2.stData,
arInOutJamExit2 := "DB_JamArea2204".stJam2204_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2204".stJam2204_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO347,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro347"],
xOutStopper1 => "MB3912");
END_REGION
REGION TRO 348 (1Sep)
#TRO348.stInSeparator1.Settings.nSeparatorNo := "cSep348.1";
#TRO348.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO348.stInSeparator1.Settings.tTrailingTime := t#0ms;
#TRO348.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO348.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO348.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO348.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO348.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO348.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3910"];
#TRO348.stInSenJam2 := "DB_Inputs".Sensors["cInBG3911"];
#TRO348.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam1501.Config.nCapacitySet := 1;
#TRO348(nInMainTroNo := "cMainTro348",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO348 AND ("IO_Device_UH03_TO_UH01".stCARRIER_INFO_1[1].nBarcode = 0), //zwecks Übergabe warten bis UH02 Daten abgeholt hat,
xInCarouselRun := #fbExitConv2204.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3130"],
arInOutJamEntr1 := "DB_JamArea2204".stJam2204_4.arCarrier,
stInOutJamEntr1:= "DB_JamArea2204".stJam2204_4.stData,
arInOutJamExit2 := "IO_Device_UH03_TO_UH01".stCARRIER_INFO_1,
stInOutJamExit2 := #stJamDataHandoverJam1501,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO348,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro348"],
xOutStopper1 => "MB3910");
REGION Übergabe Level 1
//todo: sicherstellen das UH02 ready ist, ansonsten sollte UH03 warten...
"FB_I-Device_SendCarrier_J1501"(xInTrigger := (#TRO348.nState = 2500) AND #TRO348.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL.%X1, //von Empfänger
stInOutData := "IO_Device_UH03_TO_UH01".stCARRIER_INFO_1[1], //Daten
xOutReq := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X1); //an Empfänger
END_REGION
END_REGION
REGION TRO 350 (Vario)
#TRO350.stInSeparator1.Settings.nSeparatorNo := "cSep350.1";
#TRO350.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO350.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO350.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO350.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO350.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO350.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO350.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO350.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3724"];
#TRO350.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO350.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO350.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3723"]; // Finger in Pos
#TRO350.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3727"]; //Mt in Pos
#TRO350.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3486"]; // Conveyor full
#TRO350.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3485"]; // Jam detector
#TRO350.stInVario.Settings.xContinousEmptying := FALSE;
#TRO350.stInVario.Settings.tWaitForJog := T#400ms;
#TRO350.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO350.stInVario.Settings.nCountCarrier := 1;
#TRO350.stInVario.Settings.tWaitForStop := T#3s;
#TRO350.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO350(nInMainTroNo := "cMainTro350",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO350,
xInAutomatic := #t_Automatik_OF3 AND "SF0050" AND "SF0180",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0181" OR"SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0064",
arInOutJamEntr := "DB_JamArea2205".stJam2205_1.arCarrier,
stInOutJamEntr := "DB_JamArea2205".stJam2205_1.stData,
arInOutJamFinger := "DB_JamArea2205".stJam2205_2.arCarrier,
stInOutJamFinger := "DB_JamArea2205".stJam2205_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO350,
xOutStopper => "MB3724",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro350"],
xOutVarioMotor => "MA0064");
END_REGION
REGION TRO 351 (1Sep)
#TRO351.stInSeparator1.Settings.nSeparatorNo := "cSep351.1";
#TRO351.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO351.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO351.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO351.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO351.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO351.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO351.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO351.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO351.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3484"];
#TRO351.stInSenJam2 := "DB_Inputs".Sensors["cInBG3483"];
#TRO351.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO351.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO351(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO351.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO351.TroOut,
nInMainTroNo := "cMainTro351",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO351,
xInCarouselRun := #fbSortConv2201.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2205".stJam2205_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2205".stJam2205_2.stData,
arInOutJamExit2 := "DB_JamArea2201".stJam2201_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2201".stJam2201_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO351,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro351"],
xOutStopper1 => "MB3484");
END_REGION
REGION TRO 353 (Vario)
#TRO353.stInSeparator1.Settings.nSeparatorNo := "cSep353.1";
#TRO353.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO353.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO353.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO353.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO353.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO353.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO353.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO353.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3784"];
#TRO353.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO353.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO353.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3783"]; //Finger in Pos
#TRO353.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3787"];
#TRO353.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3546"]; // Conveyor full
#TRO353.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3545"]; // Jam detector
#TRO353.stInVario.Settings.xContinousEmptying := FALSE;
#TRO353.stInVario.Settings.tWaitForJog := T#400ms;
#TRO353.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO353.stInVario.Settings.nCountCarrier := 1;
#TRO353.stInVario.Settings.tWaitForStop := T#3s;
#TRO353.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO353(nInMainTroNo := "cMainTro353",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO353,
xInAutomatic := #t_Automatik_OF3 AND "SF0052" AND "SF0182",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0183" OR"SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0065",
arInOutJamEntr := "DB_JamArea2206".stJam2206_1.arCarrier,
stInOutJamEntr := "DB_JamArea2206".stJam2206_1.stData,
arInOutJamFinger := "DB_JamArea2206".stJam2206_2.arCarrier,
stInOutJamFinger := "DB_JamArea2206".stJam2206_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO353,
xOutStopper => "MB3784",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro353"],
xOutVarioMotor => "MA0065");
END_REGION
REGION TRO 354 (1Sep)
#TRO354.stInSeparator1.Settings.nSeparatorNo := "cSep354.1";
#TRO354.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO354.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO354.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO354.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO354.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO354.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO354.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO354.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO354.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3544"];
#TRO354.stInSenJam2 := "DB_Inputs".Sensors["cInBG3543"];
#TRO354.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO354.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO354(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO354.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO354.TroOut,
nInMainTroNo := "cMainTro354",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO354,
xInCarouselRun := #fbSortConv2201.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2206".stJam2206_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2206".stJam2206_2.stData,
arInOutJamExit2 := "DB_JamArea2201".stJam2201_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2201".stJam2201_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO354,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro354"],
xOutStopper1 => "MB3544");
END_REGION
REGION TRO 356 (Vario)
#TRO356.stInSeparator1.Settings.nSeparatorNo := "cSep356.1";
#TRO356.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO356.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO356.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO356.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO356.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO356.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO356.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO356.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3844"];
#TRO356.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO356.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO356.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3843"]; // Finger in Pos
#TRO356.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3847"]; // MT in Pos
#TRO356.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3606"]; // Conveyor full
#TRO356.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3605"]; // Jam detector
#TRO356.stInVario.Settings.xContinousEmptying := FALSE;
#TRO356.stInVario.Settings.tWaitForJog := T#400ms;
#TRO356.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO356.stInVario.Settings.nCountCarrier := 1;
#TRO356.stInVario.Settings.tWaitForStop := T#3s;
#TRO356.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO356(nInMainTroNo := "cMainTro356",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO356,
xInAutomatic := #t_Automatik_OF3 AND "SF0054" AND "SF0184",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0185" OR"SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0066",
arInOutJamEntr := "DB_JamArea2207".stJam2207_1.arCarrier,
stInOutJamEntr := "DB_JamArea2207".stJam2207_1.stData,
arInOutJamFinger := "DB_JamArea2207".stJam2207_2.arCarrier,
stInOutJamFinger := "DB_JamArea2207".stJam2207_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO356,
xOutStopper => "MB3844",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro356"],
xOutVarioMotor => "MA0066");
END_REGION
REGION TRO 357 (1Sep)
#TRO357.stInSeparator1.Settings.nSeparatorNo := "cSep357.1";
#TRO357.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO357.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO357.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO357.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO357.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO357.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO357.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO357.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO357.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3604"];
#TRO357.stInSenJam2 := "DB_Inputs".Sensors["cInBG3603"];
#TRO357.stInSeparator1.Settings.tSenFree := T#3500ms;
#TRO357.stInSeparator1.Settings.tSenWait := T#5000ms;
#TRO357(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO357.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO357.TroOut,
nInMainTroNo := "cMainTro357",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO357,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbSortConv2202.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2207".stJam2207_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2207".stJam2207_2.stData,
arInOutJamExit2 := "DB_JamArea2202".stJam2202_3.arCarrier,
stInOutJamExit2 := "DB_JamArea2202".stJam2202_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO357,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro357"],
xOutStopper1 => "MB3604");
END_REGION
REGION TRO 359 (Vario)
#TRO359.stInSeparator1.Settings.nSeparatorNo := "cSep359.1";
#TRO359.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO359.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO359.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO359.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO359.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO359.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO359.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO359.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3904"];
#TRO359.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO359.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO359.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3903"]; // Finger in Pos
#TRO359.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3907"]; // MT in Pos
#TRO359.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3666"]; // Conveyor full
#TRO359.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3665"]; // Jam detector
#TRO359.stInVario.Settings.xContinousEmptying := FALSE;
#TRO359.stInVario.Settings.tWaitForJog := T#400ms;
#TRO359.stInVario.Settings.tConvEmpty := T#35000ms;
#TRO359.stInVario.Settings.nCountCarrier := 1;
#TRO359.stInVario.Settings.tWaitForStop := T#3s;
#TRO359.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO359(nInMainTroNo := "cMainTro359",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO359,
xInAutomatic := #t_Automatik_OF3 AND "SF0056" AND "SF0186",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0187" OR"SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0067",
arInOutJamEntr := "DB_JamArea2208".stJam2208_1.arCarrier,
stInOutJamEntr := "DB_JamArea2208".stJam2208_1.stData,
arInOutJamFinger := "DB_JamArea2208".stJam2208_2.arCarrier,
stInOutJamFinger := "DB_JamArea2208".stJam2208_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO359,
xOutStopper => "MB3904",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro359"],
xOutVarioMotor => "MA0067");
END_REGION
REGION TRO 360 (1Sep)
#TRO360.stInSeparator1.Settings.nSeparatorNo := "cSep360.1";
#TRO360.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO360.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO360.stInSeparator1.Settings.tHandlingTime := t#400ms;
#TRO360.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO360.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO360.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO360.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO360.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO360.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3664"];
#TRO360.stInSenJam2 := "DB_Inputs".Sensors["cInBG3663"];
#TRO360.stInSeparator1.Settings.tSenFree := T#2500ms;
#TRO360.stInSeparator1.Settings.tSenWait := T#2500ms;
#TRO360(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO360.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO360.TroOut,
nInMainTroNo := "cMainTro360",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO360,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbSortConv2202.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2208".stJam2208_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea2208".stJam2208_2.stData,
arInOutJamExit2 := "DB_JamArea2202".stJam2202_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2202".stJam2202_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO360,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro360"],
xOutStopper1 => "MB3664");
END_REGION
//Block 2 ENDE
REGION TRO 361 (1Sep1Switch)+Scanner(BX3131)
#TRO361.stInSeparator1.Settings.nSeparatorNo := "cSep361.1";
#TRO361.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO361.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO361.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO361.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO361.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4334"];
#TRO361.stInSenJam2 := "DB_Inputs".Sensors["cInBG4335"];
#TRO361.stInSenJam3 := "DB_Inputs".Sensors["cInBG4336"];
#TRO361.stInSwitch1.Settings.nSwitchNo := "cSwi361.1";
#TRO361.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO361.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO361.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO361.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO361.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO361.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3131"].xInCamTriggerReady := "bx3131-TriggerReady";
#arCognexInterface["cScannerBX3131"].xInCamTriggerAck := "bx3131-TriggerAck";
#arCognexInterface["cScannerBX3131"].xInCamResultsAvailable := "bx3131-Results Available";
#arCognexInterface["cScannerBX3131"].xInCamGeneralFault := "bx3131-General Fault";
#arCognexInterface["cScannerBX3131"].hwInCamInspectionResults := "=A01+UC033-BX3131~Ergebnisse__64_Bytes_1";
#TRO361.stInPriorityManagerDir1.xReleaseOk := TRUE;
#TRO361.stInPriorityManagerDir2.xReleaseOk := TRUE;
#stJamDataHandoverJam1309.Config.nCapacitySet := 1; //
#TRO361(nInMainTroNo := "cMainTro361",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO361 AND ("IO_Device_UH03_TO_UH01".stCarrierL2toL1_3[1].nBarcode = 0), //zwecks Übergabe warten bis UH02 Daten abgeholt hat,
xInCarouselRun1 := #fbSortConv2304.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv2304.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO361,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #arCognexInterface["cScannerBX3131"],
arInOutJamEntr1 := "DB_JamArea2304".stJam2304_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2304".stJam2304_1.stData,
arInOutJamExit2 := "IO_Device_UH03_TO_UH01".stCarrierL2toL1_3, //#arCarrierHandoverJam1309, // Übergabe
stInOutJamExit2 := #stJamDataHandoverJam1309,
arInOutJamExit3 := "DB_JamArea2304".stJam2304_2.arCarrier,
stInOutJamExit3 := "DB_JamArea2304".stJam2304_2.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro361"],
xOutStopper1 => "MB4334",
xOutSw1ExTo3 => "MB4335");
"bx3131-TriggerEnable" := #arCognexInterface["cScannerBX3131"].xOutCamTriggerEnable;
"bx3131-Trigger" := #arCognexInterface["cScannerBX3131"].xOutCamTrigger;
"bx3131-ResultsAck" := #arCognexInterface["cScannerBX3131"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO361.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO361.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2304".stJam2304_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi361.1",
nOutDirection => #TRO361.nInDirection,
InOutCarrier := "DB_JamArea2304".stJam2304_1.arCarrier[1]);
END_REGION
REGION Übergabe Level 1
//todo: sicherstellen das UH02 ready ist, ansonsten sollte UH03 warten...
"FB_I-Device_SendCarrier_J1309"(xInTrigger := (#TRO361.nState = 2500) AND #TRO361.stActRequest.nDirection = 1 AND #TRO361.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X2, //von Empfänger
stInOutData := "IO_Device_UH03_TO_UH01".stCarrierL2toL1_3[1], //Daten
xOutReq := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL_1.%X2); //an Empfänger
END_REGION
END_REGION
REGION TRO 362 (1Sep1Switch)+Scanner(BX3132)
#TRO362.stInSeparator1.Settings.nSeparatorNo := "cSep362.1";
#TRO362.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO362.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO362.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO362.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO362.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4337"];
#TRO362.stInSenJam2 := "DB_Inputs".Sensors["cInBG4263"];
#TRO362.stInSenJam3 := "DB_Inputs".Sensors["cInBG4323"];
#TRO362.stInSwitch1.Settings.nSwitchNo := "cSwi362.1";
#TRO362.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO362.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO362.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO362.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO362.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO362.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3132"].xInCamTriggerReady := "bx3132-TriggerReady";
#arCognexInterface["cScannerBX3132"].xInCamTriggerAck := "bx3132-TriggerAck";
#arCognexInterface["cScannerBX3132"].xInCamResultsAvailable := "bx3132-Results Available";
#arCognexInterface["cScannerBX3132"].xInCamGeneralFault := "bx3132-General Fault";
#arCognexInterface["cScannerBX3132"].hwInCamInspectionResults := "=A01+UC033-BX3132~Ergebnisse__64_Bytes_1";
#TRO362.stInSettings.xCar2NecRight := TRUE;
#TRO362.stInSettings.xCar2NecLeft := TRUE;
#TRO362.stInSettings.xPrioDir1 := TRUE;
#TRO362.stInSettings.xPrioDir2 := TRUE;
#TRO362(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO362_3.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO362_3.TroOut,
stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO362_4.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO362_4.TroOut,
nInMainTroNo := "cMainTro362",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO362,
xInCarouselRun1 := #fbSortConv2303.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbSortConv2304.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO362,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #arCognexInterface["cScannerBX3132"],
arInOutJamEntr1 := "DB_JamArea2304".stJam2304_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2304".stJam2304_2.stData,
arInOutJamExit2 := "DB_JamArea2303".stJam2303_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2303".stJam2303_1.stData,
arInOutJamExit3 := "DB_JamArea2304".stJam2304_3.arCarrier,
stInOutJamExit3 := "DB_JamArea2304".stJam2304_3.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro362"],
xOutStopper1 => "MB4337",
xOutSw1ExTo3 => "MB4261");
"bx3132-TriggerEnable" := #arCognexInterface["cScannerBX3132"].xOutCamTriggerEnable;
"bx3132-Trigger" := #arCognexInterface["cScannerBX3132"].xOutCamTrigger;
"bx3132-ResultsAck" := #arCognexInterface["cScannerBX3132"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO362.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO362.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2304".stJam2304_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi362.1",
nOutDirection => #TRO362.nInDirection,
InOutCarrier := "DB_JamArea2304".stJam2304_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 363 (1Sep1Switch)+Scanner(BX3137)
#TRO363.stInSeparator1.Settings.nSeparatorNo := "cSep363.1";
#TRO363.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO363.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO363.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO363.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO363.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3960"];
#TRO363.stInSenJam3 := "DB_Inputs".Sensors["cInBG3961"];
#TRO363.stInSwitch1.Settings.nSwitchNo := "cSwi363.1";
#TRO363.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO363.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO363.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO363.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO363.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO363.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3137"].xInCamTriggerReady := "bx3137-TriggerReady";
#arCognexInterface["cScannerBX3137"].xInCamTriggerAck := "bx3137-TriggerAck";
#arCognexInterface["cScannerBX3137"].xInCamResultsAvailable := "bx3137-Results Available";
#arCognexInterface["cScannerBX3137"].xInCamGeneralFault := "bx3137-General Fault";
#arCognexInterface["cScannerBX3137"].hwInCamInspectionResults := "=A01+UC032-BX3137~Ergebnisse__64_Bytes_1";
#TRO363.stInSettings.xCar2NecRight := FALSE;
#TRO363.stInSettings.xCar2NecLeft := FALSE;
#TRO363.stInSettings.xPrioDir1 := TRUE;
#TRO363.stInSettings.xPrioDir2 := FALSE;
// "DB_JamArea2301".stJam2301_1.arCarrier[1].nDestination := "cDestF2HEmpty";
#TRO363(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO363.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO363.TroOut,
nInMainTroNo := "cMainTro363",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO363,
xInCarouselRun1 := #fbExitConv2301.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2301.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO363,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3137"],
arInOutJamEntr1 := "DB_JamArea2301".stJam2301_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2301".stJam2301_1.stData,
arInOutJamExit2 := "DB_JamArea2301".stJam2301_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2301".stJam2301_2.stData,
arInOutJamExit3 := "DB_JamArea2305".stJam2305_1.arCarrier,
stInOutJamExit3 := "DB_JamArea2305".stJam2305_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro363"],
xOutStopper1 => "MB3960",
xOutSw1ExTo4 => "MB3961");
"bx3137-TriggerEnable" := #arCognexInterface["cScannerBX3137"].xOutCamTriggerEnable;
"bx3137-Trigger" := #arCognexInterface["cScannerBX3137"].xOutCamTrigger;
"bx3137-ResultsAck" := #arCognexInterface["cScannerBX3137"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO363.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO363.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2301".stJam2301_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi363.1",
nOutDirection => #TRO363.nInDirection,
InOutCarrier := "DB_JamArea2301".stJam2301_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 364 (1Sep1Switch)+Scanner(BX3138)
#TRO364.stInSeparator1.Settings.nSeparatorNo := "cSep364.1";
#TRO364.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO364.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO364.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO364.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO364.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4020"];
#TRO364.stInSenJam2 := "DB_Inputs".Sensors["cInBG4021"];
#TRO364.stInSwitch1.Settings.nSwitchNo := "cSwi361.1";
#TRO364.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO364.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO364.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO364.stInSwitch1.Settings.nTo1Destinations := 4; //Info nötig für HMI
#TRO364.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO364.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3138"].xInCamTriggerReady := "bx3138-TriggerReady";
#arCognexInterface["cScannerBX3138"].xInCamTriggerAck := "bx3138-TriggerAck";
#arCognexInterface["cScannerBX3138"].xInCamResultsAvailable := "bx3138-Results Available";
#arCognexInterface["cScannerBX3138"].xInCamGeneralFault := "bx3138-General Fault";
#arCognexInterface["cScannerBX3138"].hwInCamInspectionResults := "=A01+UC032-BX3138~Ergebnisse__64_Bytes_1";
#TRO364.stInSettings.xCar2NecLeft := TRUE;
#TRO364.stInSettings.xCar2NecRight := FALSE;
#TRO364.stInSettings.xPrioDir2 := FALSE;
#TRO364.stInSettings.xPrioDir1 := TRUE;
#TRO364(stInPriorityManagerDir1 := "DB_Prozessdaten".stPriorityManager.udt_TRO364.TroIn,
stOutPriorityManagerDir1 => "DB_Prozessdaten".stPriorityManager.udt_TRO364.TroOut,
nInMainTroNo := "cMainTro364",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO364,
xInCarouselRun1 := #fbExitConv2301.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2302.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO364,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3138"],
arInOutJamEntr1 := "DB_JamArea2301".stJam2301_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2301".stJam2301_2.stData,
arInOutJamExit2 := "DB_JamArea2302".stJam2302_3.arCarrier,
stInOutJamExit2 := "DB_JamArea2302".stJam2302_3.stData,
arInOutJamExit3 := "DB_JamArea2306".stJam2306_1.arCarrier,
stInOutJamExit3 := "DB_JamArea2306".stJam2306_1.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro364"],
xOutStopper1 => "MB4020",
xOutSw1ExTo4 => "MB4021");
"bx3138-TriggerEnable" := #arCognexInterface["cScannerBX3138"].xOutCamTriggerEnable;
"bx3138-Trigger" := #arCognexInterface["cScannerBX3138"].xOutCamTrigger;
"bx3138-ResultsAck" := #arCognexInterface["cScannerBX3138"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO364.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO364.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2301".stJam2301_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi364.1",
nOutDirection => #TRO364.nInDirection,
InOutCarrier := "DB_JamArea2301".stJam2301_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 365 (1Sep1Switch)+Scanner(BX3140)
#TRO365.stInSeparator1.Settings.nSeparatorNo := "cSep365.1";
#TRO365.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO365.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO365.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO365.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO365.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4140"];
#TRO365.stInSenJam2 := "DB_Inputs".Sensors["cInBG4141"];
#TRO365.stInSwitch1.Settings.nSwitchNo := "cSwi365.1";
#TRO365.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO365.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO365.stInSwitch1.Settings.tTransitEx := T#5s;
#TRO365.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO365.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO365.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3140"].xInCamTriggerReady := "bx3140-TriggerReady";
#arCognexInterface["cScannerBX3140"].xInCamTriggerAck := "bx3140-TriggerAck";
#arCognexInterface["cScannerBX3140"].xInCamResultsAvailable := "bx3140-Results Available";
#arCognexInterface["cScannerBX3140"].xInCamGeneralFault := "bx3140-General Fault";
#arCognexInterface["cScannerBX3140"].hwInCamInspectionResults := "=A01+UC032-BX3140~Ergebnisse__64_Bytes_1";
#TRO365.stInSettings.xCar2NecRight := FALSE;
#TRO365.stInSettings.xCar2NecLeft := FALSE;
#TRO365.stInSettings.xPrioDir1 := FALSE;
#TRO365.stInSettings.xPrioDir2 := TRUE;
#TRO365(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO365.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO365.TroOut,
nInMainTroNo := "cMainTro365",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO365,
xInCarouselRun1 := #fbExitConv2302.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2302.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO365,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3140"],
arInOutJamEntr1 := "DB_JamArea2302".stJam2302_1.arCarrier,
stInOutJamEntr1:= "DB_JamArea2302".stJam2302_1.stData,
arInOutJamExit2 := "DB_JamArea2308".stJam2308_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2308".stJam2308_1.stData,
arInOutJamExit3 := "DB_JamArea2302".stJam2302_2.arCarrier,
stInOutJamExit3 := "DB_JamArea2302".stJam2302_2.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro365"],
xOutStopper1 => "MB4140",
xOutSw1ExTo3 => "MB4141");
"bx3140-TriggerEnable" := #arCognexInterface["cScannerBX3140"].xOutCamTriggerEnable;
"bx3140-Trigger" := #arCognexInterface["cScannerBX3140"].xOutCamTrigger;
"bx3140-ResultsAck" := #arCognexInterface["cScannerBX3140"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO365.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO365.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2302".stJam2302_1.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi365.1",
nOutDirection => #TRO365.nInDirection,
InOutCarrier := "DB_JamArea2302".stJam2302_1.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 366 (1Sep1Switch)+Scanner(BX3139)
#TRO366.stInSeparator1.Settings.nSeparatorNo := "cSep366.1";
#TRO366.stInSeparator1.Settings.SendOverJamTimeOut := TRUE; //true = alter Sep
#TRO366.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO366.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO366.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO366.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO366.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4080"];
#TRO366.stInSenJam2 := "DB_Inputs".Sensors["cInBG4081"];
#TRO366.stInSwitch1.Settings.nSwitchNo := "cSwi366.1";
#TRO366.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO366.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO366.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO366.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO366.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX3139"].xInCamTriggerReady := "bx3139-TriggerReady";
#arCognexInterface["cScannerBX3139"].xInCamTriggerAck := "bx3139-TriggerAck";
#arCognexInterface["cScannerBX3139"].xInCamResultsAvailable := "bx3139-Results Available";
#arCognexInterface["cScannerBX3139"].xInCamGeneralFault := "bx3139-General Fault";
#arCognexInterface["cScannerBX3139"].hwInCamInspectionResults := "=A01+UC032-BX3139~Ergebnisse__64_Bytes_1";
#TRO366.stInSettings.xCar2NecRight := TRUE;
#TRO366.stInSettings.xCar2NecLeft := FALSE;
#TRO366.stInSettings.xPrioDir1 := FALSE;
#TRO366.stInSettings.xPrioDir2 := TRUE;
#TRO366(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO366.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO366.TroOut,
nInMainTroNo := "cMainTro366",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO366,
xInCarouselRun1 := #fbExitConv2302.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbExitConv2301.xOutConveyorFullSpeed,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO366,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #arCognexInterface["cScannerBX3139"],
arInOutJamEntr1 := "DB_JamArea2302".stJam2302_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2302".stJam2302_2.stData,
arInOutJamExit2 := "DB_JamArea2307".stJam2307_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2307".stJam2307_1.stData,
arInOutJamExit3 := "DB_JamArea2302".stJam2302_3.arCarrier,
stInOutJamExit3 := "DB_JamArea2302".stJam2302_3.stData,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro366"],
xOutStopper1 => "MB4080",
xOutSw1ExTo3 => "MB4081");
"bx3139-TriggerEnable" := #arCognexInterface["cScannerBX3139"].xOutCamTriggerEnable;
"bx3139-Trigger" := #arCognexInterface["cScannerBX3139"].xOutCamTrigger;
"bx3139-ResultsAck" := #arCognexInterface["cScannerBX3139"].xOutCamResultsAck;
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO366.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO366.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea2302".stJam2302_2.arCarrier[1]);
END_REGION ;
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi366.1",
nOutDirection => #TRO366.nInDirection,
InOutCarrier := "DB_JamArea2302".stJam2302_2.arCarrier[1]);
END_REGION
END_REGION
REGION TRO 367 (1Sep)
#TRO367.stInSeparator1.Settings.nSeparatorNo := "cSep360.1";
#TRO367.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO367.stInSeparator1.Settings.tTrailingTime := T#300ms;
#TRO367.stInSeparator1.Settings.tHandlingTime := t#0ms;
#TRO367.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO367.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO367.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO367.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO367.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4085"];
#TRO367.stInSenJam2 := "DB_Inputs".Sensors["cInBG4092"];
#TRO367(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO367.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO367.TroOut,
nInMainTroNo := "cMainTro367",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO367,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbExitConv2302.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2302".stJam2302_3.arCarrier,
stInOutJamEntr1 := "DB_JamArea2302".stJam2302_3.stData,
arInOutJamExit2 := "DB_JamArea2302".stJam2302_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2302".stJam2302_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO367,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro367"],
xOutStopper1 => "MB4085");
END_REGION
REGION TRO 368 (Vario, from Lvl1)
#TRO368.stInSeparator1.Settings.nSeparatorNo := "cSep368.1";
#TRO368.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO368.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO368.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO368.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO368.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO368.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO368.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO368.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4095"];
#TRO368.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO368.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO368.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4097"]; //Finger in Pos
#TRO368.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4096"]; //MT in Pos
#TRO368.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4093"]; // Conveyor full
#TRO368.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4090"]; // Jam detector
#TRO368.stInVario.Settings.xContinousEmptying := FALSE;
#TRO368.stInVario.Settings.tWaitForJog := T#400ms;
#TRO368.stInVario.Settings.tConvEmpty := T#25000ms;
#TRO368.stInVario.Settings.nCountCarrier := 1;
#TRO368.stInVario.Settings.tWaitForStop := t#3s;
#TRO368.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
// #TRO368.stInSettings.xIsBorner := TRUE;
#TRO368(nInMainTroNo := "cMainTro368",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO368,
xInAutomatic := #t_Automatik_OF3,
xInReset := "cTodoFalse",
xInMotorProtection := "FC0204",
arInOutJamEntr := "DB_JamArea2309".stJam2309_1.arCarrier,
stInOutJamEntr := "DB_JamArea2309".stJam2309_1.stData,
arInOutJamFinger := "DB_JamArea2309".stJam2309_2.arCarrier,
stInOutJamFinger := "DB_JamArea2309".stJam2309_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO368,
xOutStopper => "MB4095",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro368"],
xOutVarioMotor => "MA0204");
REGION Übernahme von Level 2
"FB_I-Device_Receive_J2309"(xInReq := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL_1.%X5,
stInData := "IO_Device_UH02_FROM_UH01".stCARRIER_INFO_2[1],
xInOutAck := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL_1.%X5);
IF "FB_I-Device_Receive_J2309".xOutNewData THEN //1 Zyklus vom Baustein
//Daten von UH03 in UH02 Jam schieben
"FC_TSHR_AddAtEnd"(stInTrolley := "FB_I-Device_Receive_J2309".stOutData,
nOutCounter => #tmpTSHRCounter,
xOutResult => #tmpTSHRResult,
arTSHR := "DB_JamArea2309".stJam2309_1.arCarrier);
END_IF;
END_REGION
END_REGION
REGION TRO 369 (1Sep)
#TRO369.stInSeparator1.Settings.nSeparatorNo := "cSep369.1";
#TRO369.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO369.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO369.stInSeparator1.Settings.tHandlingTime := t#200ms;
#TRO369.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO369.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO369.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO369.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO369.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4091"];
#TRO369.stInSenJam2 := "DB_Inputs".Sensors["cInBG4092"];
#TRO369.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO369.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO369(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO369.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO369.TroOut,
nInMainTroNo := "cMainTro369",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO369,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbExitConv2302.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2309".stJam2309_2.arCarrier,
stInOutJamEntr1 := "DB_JamArea2309".stJam2309_2.stData,
arInOutJamExit2 := "DB_JamArea2302".stJam2302_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2302".stJam2302_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO369,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro369"],
xOutStopper1 => "MB4091");
END_REGION
REGION TRO 370 (1Sep)
#TRO370.stInSeparator1.Settings.nSeparatorNo := "cSep370.1";
#TRO370.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO370.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO370.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO370.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO370.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO370.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4145"];
#TRO370.stInSenJam2 := "DB_Inputs".Sensors["cInBG4152"];
#TRO370.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#stJamDataHandoverJam1601.Config.nCapacitySet := 1;
#TRO370(nInMainTroNo := "cMainTro370",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO370 AND ("IO_Device_UH03_TO_UH01".stCARRIER_INFO_2[1].nBarcode = 0), //zwecks Übergabe warten bis UH02 Daten abgeholt hat,
xInCarouselRun := #fbExitConv2302.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2302".stJam2302_4.arCarrier,
stInOutJamEntr1 := "DB_JamArea2302".stJam2302_4.stData,
arInOutJamExit2 := "IO_Device_UH03_TO_UH01".stCARRIER_INFO_2,
stInOutJamExit2 := #stJamDataHandoverJam1601,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO370,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro370"],
xOutStopper1 => "MB4145");
"MB4146" := TRUE;
REGION Übergabe Level 1
//todo: sicherstellen das UH02 ready ist, ansonsten sollte UH03 warten...
"FB_I-Device_SendCarrier_J1601"(xInTrigger := (#TRO370.nState = 2500) AND #TRO370.fbSeparator1.xOutTrolleyReleasedEdge, //Trigger
xInAck := "IO_Device_UH02_FROM_UH01".bCARRIER_CONTROL.%X2, //von Empfänger
stInOutData := "IO_Device_UH03_TO_UH01".stCARRIER_INFO_2[1], //Daten
xOutReq := "IO_Device_UH03_TO_UH01".bCARRIER_CONTROL.%X2); //an Empfänger
END_REGION
END_REGION;
REGION TRO 372 (Vario)
#TRO372.stInSeparator1.Settings.nSeparatorNo := "cSep372.1";
#TRO372.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO372.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO372.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO372.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO372.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO372.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO372.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO372.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3964"];
#TRO372.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO372.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO372.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3963"]; //Pusher Dog in Pos
#TRO372.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3967"]; //MT in Pos
#TRO372.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4206"]; // Conveyor full
#TRO372.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4205"]; // Jam detector
#TRO372.stInVario.Settings.xContinousEmptying := FALSE;
#TRO372.stInVario.Settings.tWaitForJog := T#400ms;
#TRO372.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO372.stInVario.Settings.nCountCarrier := 1;
#TRO372.stInVario.Settings.tWaitForStop := T#3s;
#TRO372.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO372(nInMainTroNo := "cMainTro372",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF3 AND "SF0190" AND "SF0240",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0191" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0262",
xInRelease := "DB_TRO_Test".TRO372,
arInOutJamEntr := "DB_JamArea2305".stJam2305_1.arCarrier,
stInOutJamEntr := "DB_JamArea2305".stJam2305_1.stData,
arInOutJamFinger := "DB_JamArea2305".stJam2305_2.arCarrier,
stInOutJamFinger := "DB_JamArea2305".stJam2305_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO372,
xOutStopper => "MB3964",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro372"],
xOutVarioMotor => "MA0262");
END_REGION
REGION TRO 373 (1Sep)
#TRO373.stInSeparator1.Settings.nSeparatorNo := "cSep373.1";
#TRO373.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO373.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO373.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO373.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO373.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO373.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO373.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO373.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO373.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4204"];
#TRO373.stInSenJam2 := "DB_Inputs".Sensors["cInBG4203"];
#TRO373.stInSeparator1.Settings.tSenFree := T#3500ms;
#TRO373.stInSeparator1.Settings.tSenWait := T#5000ms;
#TRO373(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO373.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO373.TroOut,
nInMainTroNo := "cMainTro373",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO373,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbSortConv2303.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2305".stJam2305_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2305".stJam2305_2.stData,
arInOutJamExit2 := "DB_JamArea2303".stJam2303_2.arCarrier,
stInOutJamExit2 := "DB_JamArea2303".stJam2303_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO373,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro373"],
xOutStopper1 => "MB4204");
END_REGION
REGION TRO 375 (Vario)
#TRO375.stInSeparator1.Settings.nSeparatorNo := "cSep375.1";
#TRO375.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO375.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO375.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO375.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO375.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO375.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO375.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO375.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4024"];
#TRO375.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO375.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO375.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4023"]; //Pusher Dog in Pos
#TRO375.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4027"]; //MT in Pos
#TRO375.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4266"]; // Conveyor full
#TRO375.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4265"]; // Jam detector
#TRO375.stInVario.Settings.xContinousEmptying := FALSE;
#TRO375.stInVario.Settings.tWaitForJog := T#400ms;
#TRO375.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO375.stInVario.Settings.nCountCarrier := 1;
#TRO375.stInVario.Settings.tWaitForStop := T#3s;
#TRO375.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO375(nInMainTroNo := "cMainTro375",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF3 AND "SF0192" AND "SF0242",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0193" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0263",
xInRelease := "DB_TRO_Test".TRO375,
arInOutJamEntr := "DB_JamArea2306".stJam2306_1.arCarrier,
stInOutJamEntr := "DB_JamArea2306".stJam2306_1.stData,
arInOutJamFinger := "DB_JamArea2306".stJam2306_2.arCarrier,
stInOutJamFinger := "DB_JamArea2306".stJam2306_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO375,
xOutStopper => "MB4024",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro375"],
xOutVarioMotor => "MA0263");
END_REGION
REGION TRO 376 (1Sep)
#TRO376.stInSeparator1.Settings.nSeparatorNo := "cSep376.1";
#TRO376.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO376.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO376.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO376.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO376.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO376.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO376.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO376.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO376.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4264"];
#TRO376.stInSenJam2 := "DB_Inputs".Sensors["cInBG4263"];
#TRO376.stInSeparator1.Settings.tSenFree := T#3500ms;
#TRO376.stInSeparator1.Settings.tSenWait := T#5000ms;
// "DB_JamArea2306".stJam2306_2.arCarrier[1].nDestination := 23200;
#TRO376(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO376.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO376.TroOut,
nInMainTroNo := "cMainTro376",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO376,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbSortConv2303.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2306".stJam2306_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2306".stJam2306_2.stData,
arInOutJamExit2 := "DB_JamArea2303".stJam2303_1.arCarrier,
stInOutJamExit2 := "DB_JamArea2303".stJam2303_1.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO376,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro376"],
xOutStopper1 => "MB4264");
END_REGION
REGION TRO 378 (Vario)
#TRO378.stInSeparator1.Settings.nSeparatorNo := "cSep378.1";
#TRO378.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO378.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO378.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO378.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO378.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO378.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO378.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO378.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO378.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO378.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4084"];
#TRO378.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO378.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO378.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4083"]; //Pusher Dog in Pos
#TRO378.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4087"]; //MT in Pos
#TRO378.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4326"]; // Conveyor full
#TRO378.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4325"]; // Jam detector
#TRO378.stInVario.Settings.xContinousEmptying := FALSE;
#TRO378.stInVario.Settings.tWaitForJog := T#400ms;
#TRO378.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO378.stInVario.Settings.nCountCarrier := 1;
#TRO378.stInVario.Settings.tWaitForStop := T#3s;
#TRO378.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO378(nInMainTroNo := "cMainTro378",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF3 AND "SF0194" AND "SF0244",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0195" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0264",
xInRelease := "DB_TRO_Test".TRO378,
arInOutJamEntr := "DB_JamArea2307".stJam2307_1.arCarrier,
stInOutJamEntr := "DB_JamArea2307".stJam2307_1.stData,
arInOutJamFinger := "DB_JamArea2307".stJam2307_2.arCarrier,
stInOutJamFinger := "DB_JamArea2307".stJam2307_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO378,
xOutStopper => "MB4084",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro378"],
xOutVarioMotor => "MA0264");
END_REGION
REGION TRO 379 (1Sep)
#TRO379.stInSeparator1.Settings.nSeparatorNo := "cSep379.1";
#TRO379.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO379.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO379.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO379.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO379.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO379.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO379.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO379.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO379.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4324"];
#TRO379.stInSenJam2 := "DB_Inputs".Sensors["cInBG4323"];
#TRO379.stInSeparator1.Settings.tSenFree := T#3500ms;
#TRO379.stInSeparator1.Settings.tSenWait := T#5000ms;
// "DB_JamArea2307".stJam2307_2.arCarrier[1].nDestination := 23300;
#TRO379(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO379.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO379.TroOut,
nInMainTroNo := "cMainTro379",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInRelease := "DB_TRO_Test".TRO379,
xInCancel := "cTodoFalse",
xInCarouselRun := #fbSortConv2304.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2307".stJam2307_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2307".stJam2307_2.stData,
arInOutJamExit2 := "DB_JamArea2304".stJam2304_3.arCarrier,
stInOutJamExit2 := "DB_JamArea2304".stJam2304_3.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO379,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro379"],
xOutStopper1 => "MB4324");
END_REGION
REGION TRO 381 (Vario)
#TRO381.stInSeparator1.Settings.nSeparatorNo := "cSep381.1";
#TRO381.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO381.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO381.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO381.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO381.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO381.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO381.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO381.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO381.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO381.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4144"];
#TRO381.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO381.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO381.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4143"]; //Pusher Dog in Pos
#TRO381.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG4147"]; //MT in Pos
#TRO381.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4386"]; // Conveyor full
#TRO381.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4385"]; // Jam detector
#TRO381.stInVario.Settings.xContinousEmptying := FALSE;
#TRO381.stInVario.Settings.tWaitForJog := T#400ms;
#TRO381.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO381.stInVario.Settings.nCountCarrier := 1;
#TRO381.stInVario.Settings.tWaitForStop := T#3s;
#TRO381.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO381(nInMainTroNo := "cMainTro381",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF3.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_Automatik_OF3 AND "SF0196" AND "SF0246",
xInReset := "cTodoFalse",
xInErrorQuit := "SF0197" OR "SF0002" OR "IBN".xQuitGlob,
xInMotorProtection := "FC0265",
xInRelease := "DB_TRO_Test".TRO381,
arInOutJamEntr := "DB_JamArea2308".stJam2308_1.arCarrier,
stInOutJamEntr := "DB_JamArea2308".stJam2308_1.stData,
arInOutJamFinger := "DB_JamArea2308".stJam2308_2.arCarrier,
stInOutJamFinger := "DB_JamArea2308".stJam2308_2.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF3,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO381,
xOutStopper => "MB4144",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro381"],
xOutVarioMotor => "MA0265");
END_REGION
REGION TRO 382 (1Sep)
#TRO382.stInSeparator1.Settings.nSeparatorNo := "cSep382.1";
#TRO382.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO382.stInSeparator1.Settings.tHandlingTime := T#400ms;
#TRO382.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO382.stInSeparator1.Settings.DoNotDeleteOnScanCorrection := TRUE; //unterdrückt den Fehler "Carrier kommt nicht an", weil Sep nach Vario
#TRO382.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO382.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO382.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO382.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO382.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4384"];
#TRO382.stInSenJam2 := "DB_Inputs".Sensors["cInBG4383"];
#TRO382.stInSeparator1.Settings.tSenFree := T#3500ms;
#TRO382.stInSeparator1.Settings.tSenWait := T#5000ms;
// "DB_JamArea2308".stJam2308_2.arCarrier[1].nDestination := 23400;
#TRO382(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO382.TroIn,
stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO382.TroOut,
nInMainTroNo := "cMainTro382",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF4.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO382,
xInCarouselRun := #fbSortConv2304.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF4,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea2308".stJam2308_2.arCarrier,
stInOutJamEntr1:= "DB_JamArea2308".stJam2308_2.stData,
arInOutJamExit2 := "DB_JamArea2304".stJam2304_4.arCarrier,
stInOutJamExit2 := "DB_JamArea2304".stJam2304_4.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO382,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro382"],
xOutStopper1 => "MB4384");
END_REGION
REGION TRO 383 (1Sep)
(* #TRO383.stInSeparator1.Settings.nSeparatorNo := "cSep381.1";//to do
#TRO383.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO383.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO383.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO383.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO383.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO383.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO383.stInSeparator1.Settings.xPluggedScanner := FALSE;
// #TRO383.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4450"];
#TRO383.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO383.stInSeparator1.Settings.tSenWait := T#4300ms;
// #TRO383.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG4451"]; //Pusher Dog in Pos
//MT in Pos "DB_Inputs".Sensors["cInBG4452"]
#TRO383.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG4442"]; // Conveyor full
#TRO383.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG4441"]; // Jam detector
#TRO383.stInVario.Settings.xContinousEmptying := FALSE;
#TRO383.stInVario.Settings.tWaitForJog := T#400ms;
// #TRO383.stInVario.Settings.tConvEmpty := T#8000ms;
#TRO383.stInVario.Settings.nCountCarrier := 1;
// #TRO383.stInSettings.sJamSrc := 'xxx';
// #TRO383.stInSettings.sJamDest := 'yyy';
#TRO383(nInMainTroNo := "cMainTro381",//to do
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
xInAllRdyToStart := TRUE,
xInReset := "cTodoFalse",
// xInMotorProtection := "FC0265", to do
// xInRelease := "DB_Interface_HMI".arJams[x].stJamConfig.xLockExit,
arInOutJamEntr := "DB_JamArea2308".stJam2308_1.arCarrier,//JAMS TO DO
stInOutJamEntr := "DB_JamArea2308".stJam2308_1.stData,
arInOutJamFinger := "DB_JamArea2308".stJam2308_2.arCarrier,
stInOutJamFinger := "DB_JamArea2308".stJam2308_2.stData,
stInOutMachineState := #stInOutControlUnitCabinet,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO381,//to do
// xOutStopper => "MB4450",
// nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro383"],
xOutVarioMotor => "MA0073"); *)
END_REGION
END_REGION
END_FUNCTION_BLOCK