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