scl_templates: Aufruf-Template FB_ILS_MTRO_2Sep2Swi (ohne Referenz-Aufrufstelle)
Mubea wird damit vollstaendig aus Templates erzeugt. Der FB existiert noch nicht in der ILSLib; die Schnittstelle ist aus 2Sep1Swi (Separatoren) und 1Sep2Swi (Weichen) angenommen und steht im Template-Kopf - mit den SPS-Kollegen abzustimmen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
dd955999a9
commit
25ab362c0a
7 files changed
+215
-52
No files matched your search
+63
-34
@@ -16,8 +16,8 @@
|
||||
// Reihenfolge der REGIONs = Materialfluss.
|
||||
// Anfang bei TRO03: Materialeingang ueber SYS1.
|
||||
//
|
||||
// Aus Template : FB_ILS_MTRO_1Sep, FB_ILS_MTRO_1Sep1Swi, FB_ILS_MTRO_PinStore_Auto, FB_ILS_MTRO_Vario
|
||||
// Generisch : FB_ILS_MTRO_2Sep2Swi (kein Template - von Hand pruefen)
|
||||
// Aus Template : FB_ILS_MTRO_1Sep, FB_ILS_MTRO_1Sep1Swi, FB_ILS_MTRO_2Sep2Swi, FB_ILS_MTRO_PinStore_Auto, FB_ILS_MTRO_Vario
|
||||
// Generisch : - (kein Template - von Hand pruefen)
|
||||
// ============================================================
|
||||
|
||||
FUNCTION_BLOCK "FB_Main"
|
||||
@@ -514,42 +514,46 @@ REGION TRO10 (2Sep2Swi) Sep 0005, 0036
|
||||
// Vorgaenger: TRO01, TRO06, TRO18
|
||||
// Nachfolger: TRO01, TRO02, TRO11
|
||||
// Einstufung: hoch
|
||||
// Aufbau nach Template FB_ILS_MTRO_2Sep2Swi.scl.j2 (Referenz: doc/TRO_Katalog/scl_templates)
|
||||
// ACHTUNG: FB_ILS_MTRO_2Sep2Swi existiert noch nicht in der ILSLib - Schnittstelle
|
||||
// angenommen (2Sep1Swi + 1Sep2Swi), mit den SPS-Kollegen abzustimmen.
|
||||
|
||||
// Separator 1 = Bauteil 0005 aus dem Layout
|
||||
#TRO10.stInSeparator1.Settings.nSeparatorNo := "cSep_____"; // TODO(E-Planung)
|
||||
#TRO10.stInSeparator1.Settings.nSeparatorNo := "cSep_____"; // TODO(E-Planung)
|
||||
#TRO10.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
|
||||
#TRO10.stInSeparator1.Settings.tTrailingTime := t#600ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator1.Settings.tHandlingTime := t#200ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator1.Settings.tTrailingTime := t#100ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator1.Settings.tHandlingTime := t#50ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator1.Settings.tJam := "TimeForSepJam";
|
||||
#TRO10.stInSeparator1.Settings.xPluggedJam := TRUE;
|
||||
#TRO10.stInSeparator1.Settings.xPluggedPart := FALSE;
|
||||
#TRO10.stInSeparator1.Settings.xPluggedScanner := TRUE;
|
||||
#TRO10.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG____"]; // TODO(E-Planung)
|
||||
#TRO10.stInSeparator1.Settings.tSenFree := T#1500ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator1.Settings.tSenWait := T#4000ms; // TODO(E-Planung): pruefen
|
||||
|
||||
// Separator 2 = Bauteil 0036 aus dem Layout
|
||||
#TRO10.stInSeparator2.Settings.nSeparatorNo := "cSep_____"; // TODO(E-Planung)
|
||||
#TRO10.stInSeparator2.Settings.nSeparatorNo := "cSep_____"; // TODO(E-Planung)
|
||||
#TRO10.stInSeparator2.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
|
||||
#TRO10.stInSeparator2.Settings.tTrailingTime := t#600ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator2.Settings.tHandlingTime := t#200ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator2.Settings.tTrailingTime := t#100ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator2.Settings.tHandlingTime := t#50ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator2.Settings.tJam := "TimeForSepJam";
|
||||
#TRO10.stInSeparator2.Settings.xPluggedJam := TRUE;
|
||||
#TRO10.stInSeparator2.Settings.xPluggedPart := FALSE;
|
||||
#TRO10.stInSeparator2.Settings.xPluggedScanner := TRUE;
|
||||
#TRO10.stInSeparator2.stSenInSep := "DB_Inputs".Sensors["cInBG____"]; // TODO(E-Planung)
|
||||
#TRO10.stInSeparator2.Settings.tSenFree := T#1500ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSeparator2.Settings.tSenWait := T#4000ms; // TODO(E-Planung): pruefen
|
||||
#TRO10.stInSenJam2 := "DB_Inputs".Sensors["cInBG____"]; // TODO(E-Planung)
|
||||
#TRO10.stInSenJam3 := "DB_Inputs".Sensors["cInBG____"]; // TODO(E-Planung)
|
||||
#TRO10.stInSenJam4 := "DB_Inputs".Sensors["cInBG____"]; // TODO(E-Planung)
|
||||
|
||||
#TRO10.stInSwitch1.Settings.nSwitchNo := "cSwi_____"; // TODO(E-Planung)
|
||||
#TRO10.stInSwitch1.Settings.nSwitchNo := "cSwi_____"; // TODO(E-Planung)
|
||||
#TRO10.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
|
||||
#TRO10.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
|
||||
#TRO10.stInSwitch1.Settings.nTo1Destinations := _; // TODO(E-Planung): dieser TRO hat 3 Abgaenge auf 2 Weichen - Aufteilung festlegen
|
||||
#TRO10.stInSwitch1.Settings.xNewSwitch := TRUE;
|
||||
#TRO10.stInSwitch1.Settings.nTo1Destinations := _; // TODO(E-Planung): 3 Abgaenge auf 2 Weichen - Aufteilung festlegen
|
||||
|
||||
#TRO10.stInSwitch2.Settings.nSwitchNo := "cSwi_____"; // TODO(E-Planung)
|
||||
#TRO10.stInSwitch2.Settings.nSwitchNo := "cSwi_____"; // TODO(E-Planung)
|
||||
#TRO10.stInSwitch2.Settings.xPluggedExSen3 := FALSE;
|
||||
#TRO10.stInSwitch2.Settings.xPluggedExSen4 := FALSE;
|
||||
#TRO10.stInSwitch2.Settings.nTo1Destinations := _; // TODO(E-Planung): dieser TRO hat 3 Abgaenge auf 2 Weichen - Aufteilung festlegen
|
||||
#TRO10.stInSwitch2.Settings.xNewSwitch := TRUE;
|
||||
#TRO10.stInSwitch2.Settings.nTo1Destinations := _; // TODO(E-Planung): 3 Abgaenge auf 2 Weichen - Aufteilung festlegen
|
||||
|
||||
// Zielliste je Abgang (aus dem TRO-Graphen berechnet) -
|
||||
// Grundlage fuer die Zuordnung Ziel -> Richtung in FC_Direction:
|
||||
@@ -558,31 +562,47 @@ REGION TRO10 (2Sep2Swi) Sep 0005, 0036
|
||||
// ueber TRO11: TRO03, TRO04, TRO05, TRO07, TRO11, TRO12, TRO18
|
||||
|
||||
#TRO10.stInBarcodeReader1.Settings.xActivateCheckASCI := TRUE;
|
||||
#TRO10.stInBarcodeReader1.Settings.tTimeout := T#3000ms;
|
||||
// TODO(E-Planung): Cognex-Interface verdrahten (#arCognexInterface["cScanner____"])
|
||||
#TRO10.stInBarcodeReader1.Settings.tTimeout := T#5s;
|
||||
|
||||
#arCognexInterface["cScanner____"].xInCamTriggerReady := "bx____-TriggerReady"; // TODO(E-Planung)
|
||||
#arCognexInterface["cScanner____"].xInCamTriggerAck := "bx____-TriggerAck"; // TODO(E-Planung)
|
||||
#arCognexInterface["cScanner____"].xInCamResultsAvailable := "bx____-Results Available"; // TODO(E-Planung)
|
||||
#arCognexInterface["cScanner____"].xInCamGeneralFault := "bx____-General Fault"; // TODO(E-Planung)
|
||||
#arCognexInterface["cScanner____"].hwInCamInspectionResults := "BX____~Ergebnisse_–_64_Bytes_1"; // TODO(E-Planung)
|
||||
|
||||
#TRO10.stInBarcodeReader2.Settings.xActivateCheckASCI := TRUE;
|
||||
#TRO10.stInBarcodeReader2.Settings.tTimeout := T#3000ms;
|
||||
// TODO(E-Planung): Cognex-Interface verdrahten (#arCognexInterface["cScanner____"])
|
||||
#TRO10.stInBarcodeReader2.Settings.tTimeout := T#5s;
|
||||
|
||||
#TRO10.stInPriorityManager.xReleaseOk := TRUE;
|
||||
#arCognexInterface["cScanner____"].xInCamTriggerReady := "bx____-TriggerReady"; // TODO(E-Planung)
|
||||
#arCognexInterface["cScanner____"].xInCamTriggerAck := "bx____-TriggerAck"; // TODO(E-Planung)
|
||||
#arCognexInterface["cScanner____"].xInCamResultsAvailable := "bx____-Results Available"; // TODO(E-Planung)
|
||||
#arCognexInterface["cScanner____"].xInCamGeneralFault := "bx____-General Fault"; // TODO(E-Planung)
|
||||
#arCognexInterface["cScanner____"].hwInCamInspectionResults := "BX____~Ergebnisse_–_64_Bytes_1"; // TODO(E-Planung)
|
||||
|
||||
// Vorfahrtsregelung: nicht verdrahtet - TODO(E-Planung): Schnittstelle des FB klaeren
|
||||
#TRO10.stInSettings.bSep1Type.%X2 := TRUE; // TODO(E-Planung): pruefen (Bedeutung)
|
||||
#TRO10.stInSettings.bSep2Type.%X2 := TRUE; // TODO(E-Planung): pruefen (Bedeutung)
|
||||
|
||||
#TRO10(nInMainTroNo := "cMainTro____", // TODO(E-Planung)
|
||||
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q, // TODO(E-Planung)
|
||||
xInAllRdyToStart := TRUE,
|
||||
xInCancel := "cTodoFalse",
|
||||
xInRelease := "DB_TRO_TEST".TRO10,
|
||||
stInOutMachineState := #stInOutControlUnitCabinet,
|
||||
stInOutCognexInterface := #stCognexInterfaceDummy,
|
||||
xInCarouselRun1 := #fbCarousel____.xOutConveyorFullSpeed, // TODO(E-Planung) - Kreisel an Weiche 1
|
||||
xInCarouselRun2 := #fbCarousel____.xOutConveyorFullSpeed, // TODO(E-Planung) - Kreisel an Weiche 2
|
||||
stInOutMachineState := #stInOutControlUnitCabinet, // TODO(E-Planung) - Schaltschrank
|
||||
stInOutCognexInterface1 := #arCognexInterface["cScanner____"], // TODO(E-Planung)
|
||||
stInOutCognexInterface2 := #arCognexInterface["cScanner____"], // TODO(E-Planung)
|
||||
arInOutJamEntr1 := "DB_JamArea____".stJam____.arCarrier, // TODO(E-Planung) - Staubereich J0005 von TRO01, TRO06, TRO18 (Aufteilung der Vorgaenger auf die Eingaenge offen)
|
||||
stInOutJamEntr1 := "DB_JamArea____".stJam____.stData,
|
||||
stInOutJamEntr1 := "DB_JamArea____".stJam____.stData, // TODO(E-Planung)
|
||||
arInOutJamEntr2 := "DB_JamArea____".stJam____.arCarrier, // TODO(E-Planung) - Staubereich J0036 von - (Aufteilung der Vorgaenger auf die Eingaenge offen)
|
||||
stInOutJamEntr2 := "DB_JamArea____".stJam____.stData,
|
||||
stInOutJamEntr2 := "DB_JamArea____".stJam____.stData, // TODO(E-Planung)
|
||||
arInOutJamExit2 := "DB_JamArea____".stJam____.arCarrier, // TODO(E-Planung) - Staubereich J0040 vor TRO01
|
||||
stInOutJamExit2 := "DB_JamArea____".stJam____.stData,
|
||||
stInOutJamExit2 := "DB_JamArea____".stJam____.stData, // TODO(E-Planung)
|
||||
arInOutJamExit3 := "DB_JamArea____".stJam____.arCarrier, // TODO(E-Planung) - Staubereich J0012 vor TRO02
|
||||
stInOutJamExit3 := "DB_JamArea____".stJam____.stData,
|
||||
stInOutJamExit3 := "DB_JamArea____".stJam____.stData, // TODO(E-Planung)
|
||||
arInOutJamExit4 := "DB_JamArea____".stJam____.arCarrier, // TODO(E-Planung) - Staubereich J0058 vor TRO11
|
||||
stInOutJamExit4 := "DB_JamArea____".stJam____.stData,
|
||||
stInOutJamExit4 := "DB_JamArea____".stJam____.stData, // TODO(E-Planung)
|
||||
xOutStopper1 => "MB____", // TODO(E-Planung)
|
||||
xOutStopper2 => "MB____", // TODO(E-Planung)
|
||||
xOutSw1ExTo3 => "MB____", // TODO(E-Planung)
|
||||
@@ -590,14 +610,23 @@ REGION TRO10 (2Sep2Swi) Sep 0005, 0036
|
||||
stInOutHMI := "DB_Interface_HMI".stTRO.TRO10,
|
||||
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro____"]); // TODO(E-Planung)
|
||||
|
||||
REGION Direction
|
||||
"FC_Direction"(nInSwitchNo := "cSwi_____", // TODO(E-Planung)
|
||||
nOutDirection => #TRO10.nInDirection1,
|
||||
InOutCarrier := "DB_JamArea____".stJam____.arCarrier[1]);
|
||||
"bx____-TriggerEnable" := #arCognexInterface["cScanner____"].xOutCamTriggerEnable; // TODO(E-Planung)
|
||||
"bx____-Trigger" := #arCognexInterface["cScanner____"].xOutCamTrigger; // TODO(E-Planung)
|
||||
"bx____-ResultsAck" := #arCognexInterface["cScanner____"].xOutCamResultsAck; // TODO(E-Planung)
|
||||
|
||||
"FC_Direction"(nInSwitchNo := "cSwi_____", // TODO(E-Planung)
|
||||
"bx____-TriggerEnable" := #arCognexInterface["cScanner____"].xOutCamTriggerEnable; // TODO(E-Planung)
|
||||
"bx____-Trigger" := #arCognexInterface["cScanner____"].xOutCamTrigger; // TODO(E-Planung)
|
||||
"bx____-ResultsAck" := #arCognexInterface["cScanner____"].xOutCamResultsAck; // TODO(E-Planung)
|
||||
|
||||
REGION Direction
|
||||
"FC_Direction"(nInSwitchNo := "cSwi_____", // TODO(E-Planung)
|
||||
nOutDirection => #TRO10.nInDirection1,
|
||||
InOutCarrier := "DB_JamArea____".stJam____.arCarrier[1]); // TODO(E-Planung)
|
||||
|
||||
"FC_Direction"(nInSwitchNo := "cSwi_____", // TODO(E-Planung)
|
||||
nOutDirection => #TRO10.nInDirection2,
|
||||
InOutCarrier := "DB_JamArea____".stJam____.arCarrier[1]);
|
||||
InOutCarrier := "DB_JamArea____".stJam____.arCarrier[1]); // TODO(E-Planung)
|
||||
|
||||
END_REGION
|
||||
END_REGION
|
||||
|
||||
|
||||
Reference in new issue
Block a user