Zum Hauptinhalt springen

Tools

Diese Bibliothek stellt grundlegende Bausteine und Funktionen zur Verfügung, welche teilweise auch von weiterführenden Bibliotheken verwendet werden. Diese wird mit dem Engineering Framwork ProMaster standardmäßig mit ausgeliefert.

TB_Blinker

TB_Blinker

Diese Technologiefunktion realisiert einen Blinker mit seperat einstellbarer Dauer für Ein und Aus. Wenn der Eingang "x_Const_Out = 1" ist der Ausgang dauerhaft High. Wird an diesem Eingang eine HL-Flanke erkannt beginnt der Blinker automatisch zu blinken.

Empfohlene Task: CYCLIC/ EVENT

Verwendete Bibliotheken: -

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLFALSE: Die Funktion ist deaktiviert
TRUE: Die Funktion ist aktiviert, ist bei einer LH-Flanke der Eingang "x_ConstOut = FALSE", beginnt der Ausgang automatisch zu blinken
x_Const_OutBOOLFALSE: Der Ausgang blinkt, bei einer HL-Flanke beginnt der Ausgang automatisch wieder zu blinken
TRUE: Der Ausgang ist konstant High
t_BlinkON_TimeTIMEDauer ínnerhalb eines Blinkintervalls in der der Ausgang High ist.
t_BlinkOFF_TimeTIMEDauer ínnerhalb eines Blinkintervalls in der der Ausgang Low ist.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_Blink_OutBOOLBlinkausgang
Darstellung in FBD

TB_DriveReadConfig

TB_DriveReadConfig

Dieser Baustein liest bestimmte Konfigurationsparameter aus einem Baumüller Antrieb aus. Nähere Informationen siehe Allgemeine Beschreibung.

Aktuell können die Fehler folgender Regler ausgelesen werden:
BmaXX 32xx, BmaXX 33xx, BmaXX 52xx, BmaXX 53xx

Empfohlene Task: Event / Cyclic

Verwendete Bibliotheken: TECH_TYPES_xxbd07 oder höherMOTION_CONTROL_xxbd08 oder höherMOTION_TYPES_xxbd08 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_ExecuteBOOLMit einer LH-Flanke wird das Auslesen der Konfiguration gestartet.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_BusyBOOLTRUE: ist beschäftigt und liest die Konfiguration aus
FALSE: ist im StandBy
x_DoneBOOLTRUE: Auslesen der Konfiguration war erfolgreich, x_Busy muss in diesem Zustand FALSE sein.
x_ErrorBOOLTRUE: Baustein hat einen Fehler.
w_ErrorIDWORDWenn x_Error = TRUE wird an diesem Ausgang eine detaillierte Fehlermeldung ausgegeben.
a_DriveCfgAXS_PARStruktur in der alle Konfigurationsparameter eingetragen werden und der Inhalt ausgelesen werden kann.

Ein-/Ausgänge

Bezeichnung:Datentyp:Beschreibung:
_AxisAXIS_REFReferenz auf die Achse
Darstellung in FBD

TB_DriveReadError

TB_DriveReadError

Mit diesem Baustein werden Fehler eines Baumüller Antriebs ausgelesen. Sobald ein (oder mehrere) Fehler am Regler ansteht werden einmalig alle ausgelesen und im Array "a_ErrorList" gespeichert. Darin wird ebenfalls die Anzahl aller anstehenden Fehler eingetragen. Ein erfolgreiches Auslesen wird durch "x_ListDone = TRUE" gekennzeichnet. Durch eine fallende Flanke am Eingang "x_Acknowledge" wird die Fehlerliste des Bausteins gelöscht und die automatische Fehlerüberwachung wieder aktiviert.

Ebenfalls kann man die aktuell anstehenden Fehlermeldungen durch den Baustein zyklisch auslesen lassen. Diese Funktion muss durch "x_ContCheck = TRUE" aktiviert werden. Hierbei muss beachtet werden, dass t_CheckCycle größer als 0 gewählt werden muss, da sonst das Auslesen nicht mehr funktioniert. Die De- bzw. Aktivierung der Funktion kann jederzeit vorgenommen werden. Achtung: Das Auslesen findet via Bedarfsdatenkommunikation zum Antrieb statt.

Aktuell können die Fehler folgender Regler ausgelesen werden:
BmaXX 32xx, BmaXX 33xx, BmaXX 44xx ab Firmwareversion 3.11, BmaXX 52xx, BmaXX 53xx

Empfohlene Task: Event

Verwendete Bibliotheken: BM_TYPES_xxbd01 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLTRUE: Baustein ist eingeschalten
x_AcknowledgeBOOLHL-Flanke: Nach erfolgreichem Auslesen der Fehler einer Achse wird die Überwachung auf neue Fehler wieder eingeschaltet und die Liste der Fehler gelöscht.
x_ContCheckBOOLTRUE: zyklisches Auslesen einschalten
x_CheckCycleTIMEIntervall für das zyklische Auslesen; Achtung: dieser Wert muss größer als 0 sein, da ansonsten das Auslesen nicht mehr funktioniert.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_ErrorBOOLTRUE: Der Baustein hat einen Fehler
x_ListDoneBOOLTRUE: Fehlerliste wurde erfolgreich erzeugt und kann benutzt werden.
x_DriveErrorBOOLTRUE: am Antrieb liegt mindestens ein Fehler an.
x_DriveWarningBOOLTRUE: am Antrieb liegt mindestens eine Warnung an.
x_ActiveBOOLTRUE: Baustein ist aktiv und wartet auf einen Fehler an der Achse um dann automatisch das Fehler auslesen zu starten.
w_ErrorIDWORDFehlernummer des Bausteins, für weitere Informationen siehe Fehlerliste des Bausteins.
a_ErrorListINT_32_BMARRAYListe der ausgelesen Fehlernummern (1 bis 20) einer Achse.

Ein-/Ausgänge

Bezeichnung:Datentyp:Beschreibung:
_AxisAXIS_REFReferenz auf die Achse
Darstellung in FBD

TB_FIFO

TB_FIFO

Mit dem TB_FIFO (First In–First Out) werden sequentiell Datensätze gespeichert, die zu einem späteren Zeitpunkt in der gleichen Reihefolge wieder ausgelesen werden können. Es können bis zu 256 Datensätze gespeichert werden.

Mit x_Enable=TRUE wird der Baustein aktiviert. Die erfolgte Aktivierung wird mit TRUE am Ausgang x_Active gemeldet. Ab diesem Zeitpunkt können Datensätze gespeichert und gelesen werden. Ein Datensatz besteht aus ein bis vier Datenworten.

Daten speichern:
Gespeichert wird der an di_InVal0..3 angelegte Datensatz mit der positiven Flanke am Eingang x_Put. Wurde der Datensatz übernommen, wird dies mit TRUE am Ausgang x_PutDone für einen Zyklus gemeldet. Konnte der Datensatz nicht gespeichert werden (FIFO voll), so bleibt x_PutDone FALSE und es wird ein Fehler ausgegeben. Es können bis zu 256 Datensätze gespeichert werden.

Daten lesen:
Mit einer positiven Flanke am Eingang x_Get wird der älteste Datensatz gelesen an di_OutVal0..3 ausgegeben und intern gelöscht. Das heißt ein bereits gelesener Datensatz kann kein zweites Mal ausgelesen werden. Die erfolgreiche Ausgabe wird mit TRUE am Ausgang x_GetDone für einen Zyklus angezeigt. Konnte kein Datensatz gelesen werden (FIFO leer), so bleibt x_GetDone FALSE und es wird ein Fehler ausgegeben.

FIFO löschen:
Mit Wegnahme der Freigabe (x_Enable=FALSE) wird der FIFO gelöscht und alle gespeicherten Datensätze werden gelöscht.

Fehler quittieren:
Fehler werden durch einen gültigen Befehl automatisch gelöscht. Wird z.B. nach einem Fehler -2 (FIFO leer) ein Datensatz gespeichert, so wird damit x_Error=FALSE und i_Error=0.

Empfohlene Task: Event / Cyclic

Verwendete Bibliotheken: -

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLTRUE: Freigabe des Bausteins und löschen des FIFOs. Die erfolgreiche Freigabe wird an x_Active angezeigt.
x_GetBOOLMit der positiven Flanke wird der älteste Datensatz an di_OutVal0..3 ausgegeben. Die erfolgreiche Ausgabe wird an x_PutDone angezeigt.
x_PutBOOLMit der positiven Flanke wird der Datensatz an di_InVal0..3 übernommen. Die erfolgreiche Übernahme wird an x_PutDone angezeigt.
di_InVal0DINTErstes Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_OutVal1DINTZweites Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_OutVal2DINTDrittes Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_OutVal3DINTViertes Datenwort des Datensatzes, der in den FIFO eingetragen wird.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_ActiveBOOLTRUE: Baustein aktiv. Es können Datensätze geschrieben und gelesen werden.
x_GetDoneBOOLTRUE: Zeigt für einen Zyklus an, dass die an di_OutVal0..3 ausgegebenen Daten gültig sind.
x_PutDoneBOOLTRUE: Zeigt für einen Zyklus an, dass die an di_InVal0..3 angelegten Daten übernommen sind.
di_OutVal0DINTErstes Datenwort des Datensatzes, das aus dem FIFO ausgelesen wurde.
di_OutVal1DINTZweites Datenwort des Datensatzes, das aus dem FIFO ausgelesen wurde.
di_OutVal2DINTDrittes Datenwort des Datensatzes, das aus dem FIFO ausgelesen wurde.
OutVal3DINTViertes Datenwort des Datensatzes, das aus dem FIFO ausgelesen wurde.
i_ElementsINTAnzahl der aktuell im FIFO gespeicherten Datensätze.
x_ErrorBOOLTRUE: Es wurde ein Fehler festgestellt.
i_ErrorINTAktuelle Fehlernummer. Siehe Tabelle oben.
Darstellung in FBD

TB_FilterReal

TB_FilterReal

Der Funktionsbaustein TB_FilterReal implementiert einen Tiefpassfilter mit programmierbarer Zeitkonstante (T) für REAL-Werte. Bei jedem Zyklus berechnet der Baustein den gefilterten Wert basierend auf dem aktuellen Eingangswert und dem vorherigen gefilterten Wert. Die Zeitkonstante T bestimmt, wie schnell der Filter auf Änderungen im Eingangswert reagiert. Der gefilterte Wert wird im Ausgang Y bereitgestellt.

Der FB eignet sich zur Dämpfung hochfrequenter Eingangswerte und zur Erzeugung geglätteter Ausgangswerte. Die Wahl der Zeitkonstante T beeinflusst die Filterreaktionsgeschwindigkeit. Ein größerer T-Wert führt zu einer langsameren Reaktion auf Änderungen.

Empfohlene Task: Cyclic/Event

Verwendete Bibliotheken: keine

Eingänge

Bezeichnung:Datentyp:Beschreibung:
XREALWert, der gefiltert werden soll.
TTIMEZeitkonstante des Tiefpassfilters.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
YREALGefilterter Wert.
Darstellung in FBD

TB_NormCamCreate

TB_NormCamCreate

Dieser Baustein erstellt die Stützpunkttabelle der Standardkurven für die Verwendung in Technologiebausteinen wie TB_SyncLin. TB_SyncRot, TB_CamStretch.

In der Stützpunkttabelle sind die Kurvenstützpunkte für die Technologiebausteine abgelegt.

Die Tabelle bietet Platz für 32 Kurven á 512 Stützpunkte. Die ersten 16 Plätze sind reserviert. Die Plätze 17 bis 32 können mit Anwenderkurven gefüllt werden. Bausteine mit CamId-Eingang (wie z.B: TB_CamStretch), können die Anwenderkurven verarbeiten. Siehe Beschreibung der entsprechenden Bausteine.

Empfohlene Task: Kaltstart/Warmstart oder Zyklus

Verwendete Bibliotheken: TECH_TYPES_xxbd05 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLTRUE: Erstellen der Stützpunkttabelle. Die Erstellung erfolgt in einem Zyklus.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_DoneBOOLTRUE: Die Stützpunkttabelle ist erstellt und kann verwendet werden.

Ein-/Ausgänge

Bezeichnung:Datentyp:Beschreibung:
a_CamTableCAM_TABLEStützpunkttabelle.
Darstellung in FBD

TB_PosAdd

TB_PosAdd

Dieser Baustein erzeugt zyklische Sollpositionen in Anwendereinheiten und kann in Verbindung mit Technologiebausteinen wie TB_SyncRot oder TB_SyncLin Zusatzpositionierungen ausführen.

Der Baustein erzeugt Sollpositionen abhängig einer Leitposition. Die Bewegung startet aus der Rast, sobald die Leitposition (di_xPos) gleich der Startposition (di_xOffs) ist. Die Bewegung der Achse (di_yFact) wird ausgeführt während der Leitweg di_xFact zurücklegt. Es wird ein Geschwindigkeitsprofil ohne Geschwindigkeits-Plateau erzeugt.

Empfohlene Task: Event

Verwendete Bibliotheken: ARITHMETIC_xxbd00 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLTRUE: Freigabe des Bausteins.
di_xPosDINTAktuelle Leitposition in Anwendereinheiten.
di_xOffsDINTStartposition der Leitachse für die Bewegung in Anwendereinheiten.
di_xFactDINTWeg der Leitachse für die Bewegung in Anwendereinheiten.
di_yFactDINTVerfahrweg der Achse in Anwendereinheiten.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_ActiveBOOLTRUE: Baustein ist aktiv und wartet, dass die Leitposition die Startposition di_xOffs erreicht.
x_CamActiveBOOLTRUE: Die Bewegungsausführung ist gestartet. Die Achse bewegt sich in Abhängigkeit der Masterbewegung.
di_yPosDINTSollposition der Achse in 1/100 Anwendereinheiten. Diese Position kann z.B. direkt an die Technologiebausteine TB_SyncLin oder TB_SyncRot am Eingang di_yPosAdd angeschlossen werden.
Darstellung in FBD

TB_ReadGCodeBuffer

TB_ReadGCodeBuffer

Mit diesem Funktionsbaustein wird der G-Code-Puffer des MC_MovePath gelesen. Die G-Code-Befehle werden aufsteigend sortiert, beginnend mit dem gerade aktiven Befehl. Die Tabelle wird automatisch aktualisiert, bei Änderung des G-Code-Buffer ArrayIndex.

Empfohlene Task: Event

Verwendete Bibliotheken: MC_SYS_40bd09 oder höherMOTION_CONTROL_40bd11 oder höherMOTION_TYPES_40bd11 oder höherTECH_TYPES_40bd12 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLTRUE: Freigabe des Bausteins, damit wird das Auslesen des G-Code-Puffers gestartet.
i_GetGCodeLinesINTAnzahl der benötigten G-Code-Zeilen [1..20]
i_CurrentGCodeDisplayBufferINTAktueller Schritt/Index des G-Code-Puffers

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_ActiveBOOLTRUE: Baustein ist beschäftigt und liest den G-Code-Puffer aus
FALSE: Baustein ist im StandBy
x_ErrorBOOLTRUE: Baustein hat einen Fehler.
w_ErrorIDWORDWenn x_Error = TRUE wird an diesem Ausgang eine detaillierte Fehlermeldung ausgegeben.

Ein-/Ausgänge

Bezeichnung:Datentyp:Beschreibung:
a_GCodeDisplayMC_GCodeDisplayString_BMARRAYMovePath G-Code-Puffer
a_GCodeBuffera_GCodeBufferStringArrayG-Code array
Darstellung in FBD

TB_RtcDateToString

TB_RtcDateToString

Der Funktionsbaustein TB_RtcDateToString konvertiert das RTC-Datum von HEX in einen String.

Die Ausgabe erfolgt in zwei Formaten:

Empfohlene Task: Cyclic/Event

Verwendete Bibliotheken: keine

Eingänge

Bezeichnung:Datentyp:Beschreibung:
dw_PSB02_RTC_DateDWORDEingangswert, der das Datum im RTC-Format (hexadezimal) enthält.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
s_RTC_String_DESTRINGAusgabewert, der das Datum im Format DD.MM.YYYY (deutsches Format) enthält.
s_RTC_String_ENSTRINGAusgabewert, der das Datum im Format YYYY-MM-DD (internationales Format) enthält.
Darstellung in FBD

TB_RtcTimeToString

TB_RtcTimeToString

Der Funktionsbaustein TB_RtcTimeToString konvertiert die empfangene RTC-Zeit (im HEX-Format) in ein HH:MM:SS-Format. Optional ist eine Anzeige im 12h-Format möglich, in diesem Fall wird entsprechend der AM/PM-Suffix ergänzt.

Empfohlene Task: Cyclic/Event

Verwendete Bibliotheken: keine

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_IsAMPMBOOLGibt an, ob die Uhrzeit im 12h-Format angezeigt werden soll (TRUE) oder nicht (FALSE). Wenn ja, wird der AM/PM-Suffix entsprechend ergänzt.
dw_PSB02_RTC_TimeDWORDEingangswert, der die Zeit im RTC-Format (hexadezimal) enthält.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
s_RTC_StringSTRINGAusgabewert, der die konvertierte Uhrzeit im HH:MM:SS-Format enthält, wenn x_IsAMPM auf TRUE gesetzt ist, wird das AM/PM-Suffix hinzugefügt.
Darstellung in FBD

TB_Select_PT1

TB_Select_PT1

Der Funktionsbaustein TB_Select_PT1 dient dazu, zwischen zwei Eingangswerten (r_InValue_1 und r_InValue_2) basierend auf dem Schalter x_Switch auszuwählen. Wenn x_Switch auf FALSE gesetzt ist, wird der Wert von r_InValue_1 ausgewählt, andernfalls wird der Wert von r_InValue_2 ausgewählt. Der ausgewählte Wert wird dann durch ein PT1-Übertragungsglied mit den Zeitkonstanten t_Time_1 oder t_Time_2 (abhängig von der Auswahl) und dem Verstärkungsfaktor r_Multiplier verarbeitet.

Der Funktionsbaustein überwacht die Wertübertragung und setzt die Statussignale x_Busy und x_Done entsprechend. Wenn die Übertragung aktiv ist (d.h., die Differenz zwischen Ausgangs- und Eingangswert größer als 0.25 ist), wird x_Busy auf TRUE gesetzt. Wenn der Zielwert erreicht ist (d.h., x_Switch aktiv ist und die Differenz zwischen Ausgangs- und Eingangswert kleiner oder gleich 0.25 ist), wird x_Done auf TRUE gesetzt.

Der Funktionsbaustein kann mit dem Eingang x_Enable ein- oder ausgeschaltet werden. Wenn x_Enable auf FALSE gesetzt ist, werden alle Ausgänge zurückgesetzt, und der Funktionsbaustein ist inaktiv.

Hinweis: Falls der Wert von r_Multiplier kleiner oder gleich 0 ist, wird der Verstärkungsfaktor auf 1 gesetzt, um eine korrekte Funktionsweise sicherzustellen.

Empfohlene Task: Cyclic/Event

Verwendete Bibliotheken: keine

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLSchaltet den Funktionsbaustein ein oder aus. Wenn FALSE, werden alle Ausgänge zurückgesetzt.
x_SwitchBOOLSchalter zur Auswahl des Eingangswerts. FALSE wählt InValue_1 aus, TRUE wählt InValue_2 aus.
r_InValue_1REALErster Eingangswert, der ausgewählt werden kann.
r_InValue_2REALZweiter Eingangswert, der ausgewählt werden kann.
t_Time_1TIMEZeitkonstante für den PT1-Übertragungsglied bei Auswahl von InValue_1.
t_Time_2TIMEZeitkonstante für den PT1-Übertragungsglied bei Auswahl von InValue_2.
r_MultiplierREALProportionalitäts- oder Verstärkungsfaktor für den PT1-Übertragungsglied.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
r_OutValueREALAusgangswert nach der Verarbeitung durch das PT1-Übertragungsglied.
x_ActiveBOOLSignalisiert, ob der Funktionsbaustein aktiv ist.
x_BusyBOOLSignalisiert, dass eine Wertübertragung aktiv ist, wenn der Betrag der Differenz zwischen Ausgangs- und Eingangswert größer als 0.25 ist.
x_DoneBOOLSignalisiert, dass der Zielwert erreicht wurde, wenn x_Switch aktiv ist und die Differenz zwischen Ausgangs- und Eingangswert kleiner oder gleich 0.25 ist.
Darstellung in FBD

TB_ShiftReg

TB_ShiftReg

Mit dem TB_ShiftReg steht ein Schieberegister zur Verfügung, mit dem z.B. eine Produktverfolgung implementiert werden kann. Es können vier DINT-Variable geschoben werden. Das Schieberegister kann bis zu 256 Fächer enthalten.

Mit x_Enable=TRUE wird der Baustein aktiviert. Dabei werden alle Daten gelöscht (auf 0 gesetzt). Die erfolgte Aktivierung wird mit TRUE am Ausgang x_Active gemeldet. Ab diesem Zeitpunkt können Datensätze gespeichert und gelesen werden. Ein Datensatz besteht aus ein bis vier Datenworten.

Daten speichern:
Gespeichert wird der an di_InVal0..3 angelegte Datensatz mit der positiven Flanke am Eingang x_Put an der Position us_Position. Wurde der Datensatz übernommen, wird dies mit TRUE am Ausgang x_PutDone für einen Zyklus gemeldet.

Daten lesen:
Mit einer positiven Flanke am Eingang x_Get wird der Datensatz an der Position us_Position an di_OutVal0..3 ausgegeben. Die erfolgreiche Ausgabe wird mit TRUE am Ausgang x_GetDone für einen Zyklus angezeigt.

Daten schieben:
Mit einer positiven Flanke am Eingang x_Clock werden alle Datensätze an die nächste Position geschoben.

Schieberegister löschen:
Mit Wegnahme der Freigabe (x_Enable=FALSE) wird das Schieberegister gelöscht und alle gespeicherten Datensätze werden gelöscht.

Empfohlene Task: Event / Cyclic

Verwendete Bibliotheken: -

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLTRUE: Freigabe des Bausteins und löschen des Schieberegisters. Die erfolgreiche Freigabe wird an x_Active angezeigt.
x_GetBOOLMit der positiven Flanke wird der Datensatz an der Position us_Position an di_OutVal0..3 ausgegeben. Die erfolgreiche Ausgabe wird an x_PutDone angezeigt.
x_PutBOOLMit der positiven Flanke wird der Datensatz an di_InVal0..3 an der Position us_Position übernommen. Die erfolgreiche Übernahme wird an x_PutDone angezeigt.
di_InVal0DINTErstes Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_InVal1DINTZweites Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_InVal2DINTDrittes Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_InVal3DINTViertes Datenwort des Datensatzes, der in den FIFO eingetragen wird.
us_PositionUSINTPosition an der geschrieben/gelesen wird.
x_ClockBOOLMit einer positiven Flanke werden alle Fächer eine Position weiter geschoben.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_ActiveBOOLTRUE: Baustein aktiv. Es können Datensätze geschrieben und gelesen werden.
x_GetDoneBOOLTRUE: Zeigt für einen Zyklus an, dass die an di_OutVal0..3 ausgegebenen Daten gültig sind.
x_PutDoneDINTTRUE: Zeigt für einen Zyklus an, dass die an di_InVal0..3 angelegten Daten übernommen sind.
di_OutVal0DINTErstes Datenwort des Datensatzes, das aus dem Schieberegister ausgelesen wurde.
di_OutVal1DINTZweites Datenwort des Datensatzes, das aus dem Schieberegister ausgelesen wurde.
di_OutVal2DINTDrittes Datenwort des Datensatzes, das aus dem Schieberegister ausgelesen wurde.
di_OutVal3DINTViertes Datenwort des Datensatzes, das aus dem Schieberegister ausgelesen wurde.
Darstellung in FBD

TB_SlipCtrl

TB_SlipCtrl

Bei Vorschubsystemen, wie z.B. Folienvorschub, kann aufgrund mangelnder Reibung Schlupf entstehen.
Dieser Schlupf wird durch den FB TB_SlipCtrl kompensiert. Hierfür wird der Geschwindigkeits-Istwert des Encoders des Vorschubmotors mit dem Geschwindigkeits-Istwert eines zusätzlichen Encoders, der über ein Encoderrad direkt auf dem Material, z.B. der Folie, sitzt, verglichen.

Aufgrund des gut geeigneten Regelalgorithmus ist es möglich, Schlupf bis maximal ca. 50% zu kompensieren. Dies geschieht ohne bleibende Regelabweichung.

Der maximale Einfluss bezüglich der Drehzahl kann durch di_CtrlLim begrenzt werden. Mit Hilfe des Ausgangs di_SlipPerc kann der aktuelle Schlupf überwacht und bei Bedarf auf zu großen Schlupf reagiert werden, wie z.B. Bahnriss oder Materialstau.

Im folgenden Bild sieht man, wie sich der Funktionsblock verhält, wenn die Materialgeschwindigkeit (z.B. Encoderrad) langsamer wird als der Vorschub.
Dann wird der Ausgang di_Vel insofern kompensiert, als dass dessen Wert im gleichen Maße erhöht wird, sodass der Materialvorschub weiterhin konstant bleibt.

Empfohlene Task: Event

Verwendete Bibliotheken: ARITHMETIC_xxbd00 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLTRUE:Aktivierung der Schlupfregelung, Ausgabe des korrigierten Drehzahlsollwerts di_Vel=di_SetVel+Korrektur.
FALSE:Deaktivierung der Schlupfregelung, es wird di_Vel=di_SetVel ausgegeben.
Es kann jederzeit während des Betriebs bzw. des laufenden Antriebs die Regelung aktiviert und deaktiviert werden.
di_SetVelDINTDrehzahlsollwert des Vorschubantriebs. Die Einheiten von di_SetVel und di_ActVel müssen gleich sein, in der Regel sind es Anwendereinheiten/Ts oder z.B. 1/100 Anwendereinheiten/Ts bei vorgeschalteten Technologiebausteinen. Ts ist die Zykluszeit der Sollwert-Eventtask.
di_ActVelDINTDrehzahlistwert des Zusatzencoders. Die Einheiten von di_SetVel und di_ActVel müssen gleich sein, in der Regel sind es Anwendereinheiten/Ts oder z.B. 1/100 Anwendereinheiten/Ts bei vorgeschalteten Technologiebausteinen. Ts ist die Zykluszeit der Sollwert-Eventtask.
di_CtrlLimDINTBegrenzung des Drehzahlkorrekturwertes in Prozent. Bei Nichtbelegung des Eingangs ist der Defaultwert 50 (%) wirksam, d.h. di_Vel ist somit maximal di_SetVel*1,5.
i_KpINTProportionalverstärkung der Schlupfregelung. Bei Nichtbelegung des Eingangs ist der Defaultwert 1 wirksam. Der optimale Wert für Kp ist 1.
u_SmoothNumUINTGlättung der Kompensation. Der Wert entspricht der Anzahl der Werte, über die geglättet wird. Bei Nichtbelegung des Eingangs ist der Defaultwert 20 wirksam, d.h. es wird über 20 Werte geglättet.
i_T_CycleINTAufrufintervall der Event-Task in der TB_SlipCtrl aufgerufen wird in ms. Gültige Werte sind 1ms, 2ms, 4ms, 8ms.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_ActiveBOOLTRUE:Schlupfregelung aktiv.
FALSE:Schlupfregelung nicht aktiv.
di_VelDINTKorrigierte Solldrehzahl in der gleichen Einheit wie di_SetVel und di_ActVel!
di_SlipPercDINTAktueller Schlupf in Prozent. Wert dient der Anzeige und/oder Überwachung.
di_CompPercDINTAktuelle Kompensation in Prozent. Wert dient der Anzeige und/oder Überwachung.
di_SlipUnitsDINTAktueller Schlupf in Einheiten oder 1/x Einheiten. Wert dient der Anzeige, Überwachung oder als Messwert für eine Optimierung.
Darstellung in FBD

TB_StateMonitor_IAX

TB_StateMonitor_IAX

Dieser Baustein kann eingesetzt werden, um die States einer Statemachine (CASE) in einer POE zu monitoren und zu loggen

Allgemeine Beschreibung

Dieser Baustein kann zur detailierten Diagnose einer Statemachine genutzt werden. Dabei wird jeder State in einem Statustrace in Form seines Wertes, seiner Bezeichnung mitgeloggt. Auch die jeweilige Zeit in dem State wird in Millisekunden erfasst. Zusätzlich kann über den Eingang "x_EnableUsrLog" ein Userlogging auf dem PCC aktiviert werden, wobei die erfassten Werte dann auch in dem Kommandozeilen-Fenster des PCCs erscheinen. Außerdem kann man die Ausgagen auch unter D:\bm\log\PLC.log einsehen.
Dieser FB wird einfach an das Ende einer Statemachine gehängt und dort instanziert. Er arbeitet sobald er aufgerufen wird.

Damit das Userlogging auf dem PCC auch aktiv ist, muss das in einer Konfigurationsdatei freigeschaltet werden.
Diese Konfigurationsdatei liegt unter "D:\bm\boot" und heißt "PCC_PLC_001.INI". Dort muss dann der Eintrag "x_EnableUsrLog" auf 1 gesetzt werden

Resourcenbindung:IAX_40/BMI_S_PCC03
Empfohlene Task:CYCLIC/EVENT
Verwendete Bibliotheken:BM_ReportUSR_40bd00
TECH_TYPES_40bd10
TECH_FB_STRUCTS_40bd01t1

Eingänge

Bezeichnung:Datentyp:Beschreibung:
ud_TimeInStateUDINTDieser Eingang erhält den Timeout-Zeitwert in ms, welcher ein State in diesem verweilen kann, bis der Ausgang x_Timeout gesetzt wird. Ist der Wert gleich 0 wird keine Timeout-Überwachung vorgenommen.
i_StateINTHier wird der State der Statemachine verknüpft.
s_StateSTRINGHier kann der Statename angegeben werden.
s_POU_NameSTRINGDieser Eingang ist relevant für das Userlogging. Damit man in den Loggingeinträgen bei der Verwendung mehrerer FB-Instanzen unterscheiden kann, woher der Loggingeintrag stammt, kann dieser einer POU zugeordnet werden.
x_EnableUsrLogBOOLHiermit wird das oben beschriebene Userlogging auf dem PCC aktiviert. (siehe Allgemeine Beschreibung)

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_TimeoutBOOLWird gesetzt, sobald der State die mit dem Eingang "ud_TimeInState" parametrierbare Grenze in Millisekunden überschritten hat
ud_TimeInStateUDINTZeigt die aktuell in dem State verbrachte Zeit in ms an
i_CurrentIndexINTHier wird der aktuell verwendete Index des _StatusTrace-Arrays angegeben.

Ein-/Ausgänge

Bezeichnung:Datentyp:Beschreibung:
_StatusTraceSTATE_TRACE_DATA_ARRAY (in TECH_TYPES)In dieses Array hat ein Größe von 128 Feldern und hier werden folgende Loggingeinträge der einzelnen States erfasst:
» i_State: Der State in dem geloggt wurde
» s_State: Der Name des States als STIRNG
» ud_TimeInState: Die in diesem State verbrachten Millisekunden

TB_SyncCam_Init

TB_SyncCam_Init

Mit diesem Baustein kann die Synchronbewegung der Technologiebausteine TB_SyncLin und TB_SyncRot ersetzt werden. Standardmäßig wird hier eine Gerade verwendet, so dass sich die Achse winkel- und geschwindigkeitssynchron zum Master bewegt.

Folgende Bedingungen sind für Anwender-Synchronkurven einzuhalten.
-Die Steigung am Anfang und am Ende muss gleich sein.
-Die Krümmung am Anfang und Ende muss null sein.
-Die Kurve muss aus 512 Stützpunkte bestehen

Die Kurve muss in x- und y-Richtung auf 0…16.777.216 normiert sein.

x-Richtung:
Es werden 512 Stützpunkte für die x-Positionen [0]0, [1]32.768, [2]65.536, …, [511]16.744.448 vorgegeben und der zugehörige y-Wert wird in der Tabelle _SyncCam abgelegt. Der x-Wert wird nicht abgelegt.

y-Richtung:
Der y-Wert bei der ersten x-Position ist _SyncCam[0]=0. Der Wert ist immer 0. Der letzte Wert der Kurve wäre der 513. Wert, also _SyncCam[512]=16.777.216. Da die Kurve jedoch nur bis _SyncCam[511] definiert wird, sind die Punkte so zu normieren, dass der 513. Wert 16.777.216 ist. Für eine einfache Gerade ist _SyncCam[511] folglich 16.744.448.

Beim Einsatz der Anwender-Synchronkurve ist zu beachten, dass der SEP frühestens am Ende der Anwender-Synchronkurve erfolgen darf, da sich sonst ein Ruck oder Stoß beim Eintritt in die Umkehr ergeben kann. Die Bewegung nach der Anwender-Synchronkurve bis zum SEP erfolgt mit einer Geraden.

Empfohlene Task: Cyclic, einmalige Ausführung bei Programmstart oder Änderung der Kurve.

Verwendete Bibliotheken: TECH_TYPES_xxbd05 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLTRUE: Die Anwender-Synchronkurve wird initialisiert und für die Verwendung mit TB_SyncRot und TB_SyncLin vorbereitet.
di_SX_CamDINTSkalierung der normierten Kurve in x-Richtung in Anwenderleiteinheiten.
di_SY_CamDINTSkalierung der normierten Kurve in y-Richtung in Anwendereinheiten.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_OkBOOLTRUE: Anwender-Synchronkurve verfügbar.
i_ResultINTMeldungsnummer des Bausteins. Siehe Fehlertabelle.
s_ResTxtSTRINGMeldungstext des Bausteins.

Ein-/Ausgänge

Bezeichnung:Datentyp:Beschreibung:
_SyncCamCAM_POINTSStützpunkte der normierten Anwender-Synchronkurve.
_SyncDatTB_SYNC_TYPEInitialisierungsparameter für die Bausteine TB_SyncRot bzw. TB_SyncLin.
Darstellung in FBD

TB_TimeToTravel

TB_TimeToTravel

Um z.B. Totzeiten zu kompensieren oder vorzusteuern ist es erforderlich, den Weg, den eine Achse während einer bestimmten Zeit zurücklegen wird, vor zu berechnen. Die Funktion TB_TimeToTravel berechnet diesen Weg (Typ UDINT). In Kombination mit dem FB TB_MasterEngine kann der Weg auch während der Beschleunigungs- und Bremsphase exakt berechnet werden.

Die Funktion berechnet den Verfahrweg in Einheiten, den eine Achse während einer bestimmten Zeit zurücklegen wird.

Reale Leitachse:
Wird z.B. mit einer realen Leitachse gearbeitet, so hat man nur die aktuelle Geschwindigkeit zur Verfügung. Da keine Information über die Dauer der Beschleunigung vorhanden ist, ist die Berechnung nur für den konstanten Betrieb exakt, während der Beschleunigung entsteht ein Fehler. Nur der Eingang di_VelAct_s kann angeschlossen werden.

Virtuelle Leitachse:
Da bei Verwendung einer virtuellen Leitachse (FB TB_MasterEngine) die Geschwindigkeit, die erreicht werden soll und auch die Größe und Dauer der Beschleunigung bekannt sind, erfolgt die Berechnung des Verfahrweges fehlerfrei. Alle Eingänge müssen belegt werden, sie stehen am FB TB_MasterEngine zur Verfügung.

Empfohlene Task: Event

Verwendete Bibliotheken: -

Eingänge

Bezeichnung:Datentyp:Beschreibung:
u_Time_msUINTZeit in ms, für die der Weg in Einheiten berechnet wird. Es sind maximal Zeiten bis 5000 ms möglich, wird ein größerer Wert angeschlossen, wird dieser intern auf 5000 ms begrenzt.
ud_TimeAcc_msUDINTRestliche Beschleunigungszeit des virtuellen Masters in ms (Ausgang FB TB_MasterEngine).
di_VelSet_sDINTSollgeschwindigkeit des virtuellen Masters in Einheiten/s (Ausgang FB TB_MasterEngine).
di_VelAct_sDINTIstgeschwindigkeit des realen oder virtuellen Masters in Einheiten/s (Ausgang FB TB_MasterEngine).

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
TB_TimeToTravelDINTBerechneter Weg in Einheiten, den die Achse in der vorgegebenen Zeit u_Time_ms zurücklegen wird.
Darstellung in FBD

XAND

XAND

Die Funktions XAND führt eine logische OR-AND-Verknüpfung der mit den beiden Eingangssignalen IN1 und IN2 verbundenen Operanten aus.

Das Ausgangssignal wird den Zustand "1" (hoch) haben, wenn entweder das erste und das zweite Eingangssignal beide den Zustand "1" haben oder beide Eingangssignale den Zustand "0" haben. Andernfalls wird der Ausgang den Zustand "0" (niedrig) haben.

Empfohlene Task: Cyclic/Event

Verwendete Bibliotheken: keine

Eingänge

Bezeichnung:Datentyp:Beschreibung:
IN1BoolErste Eingangswert.
IN1BoolZweiter Eingangswert.

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
OUTBOOLAusgangssignal
Darstellung in FBD