Kurven-Generator
Der Funktionsbaustein erzeugt eine benutzerdefinierte Kurve, die aus Segmenten basierend auf linearen, Sinus-, Exponential- und Logarithmusfunktionen zusammengesetzt ist.
Der Kurven-Generator wird über Befehle am Eingang „Mode“ gesteuert (siehe Signale). Wenn der Start-Befehl (1) gegeben wird, werden die zufälligen Parameter der Kurve berechnet. Am Ausgang „Signal“ liegt der Startwert der Kurve an, und der Ausgang „State“ schaltet auf „Busy“. Der Zeitstempel am Ausgang „TimePos“ wird auf 0 zurückgesetzt und am Ausgang „Length“ wird die Dauer der Kurve in Sekunden bereitgestellt.
Wenn im nächsten Programmabarbeitungszyklus der Run-Befehl (2) gegeben wird, erhöht sich der Zeitstempel am Ausgang „TimePos“ um die Zeitspanne zwischen den letzten beiden Bausteinaufrufen. Der zugehörende Kurvenwert wird berechnet und an „Signal“ ausgegeben.
Mit dem Stop-Befehl (0) wird die Kurvenberechnung für einen Abarbeitungszyklus angehalten. Die Berechnung kann anschließend mit Run fortgesetzt oder mit Start neu initialisiert werden bzw. mit anhaltendem Stop weitere Zyklen pausieren. Nachdem die Kurve mit dem Run durchlaufen wurde, endet die Berechnung. Der Ausgang „State“ wechselt dann zu „Ready“ und die Werte an „TimePos“ und „Length“ stimmen überein.
Danach kann der Generator mit dem Start-Befehl wieder initialisiert und die Kurve mit Run erneut ausgegeben werden. Diese permanente Wiederholung der Kurve wird durch den Cycle-Befehl (3) automatisiert.
Kurven mit dem Funktionsbaustein Kurven-Generator erzeugen
Sollten Sie das Video nicht abspielen können, klicken Sie hier.
Die zufälligen Kurvenparameter werden nur beim Wechsel von einem anderen Befehl auf Start neu berechnet. Liegt der Start-Befehl anschließend mehrere Abarbeitungszyklen nacheinander an, bleiben sie unverändert.
Parameter
Die Kurve wird im Parameterdialog definiert und dem Baustein zugeordnet. Der Dialog kann im Editier-Modus und während der Inbetriebnahme geöffnet werden. Der Name der zugeordneten Kurve wird im Textfeld auf dem Bausteinsymbol angezeigt. Ein rotes Textfeld weist auf eine fehlende oder fehlerhafte Zuordnung hin.
Signale
Name | I/O | Typ(en) | Funktion |
---|---|---|---|
Mode | I | WORD | Befehle: 0 – Stop 1 – Start 2 – Run 3 – Cycle |
Signal | O | DOUBLE | Aktueller Kurvenwert |
State | O | WORD | Status: 0 – Ready 1 – Busy -1 – Error |
TimePos | O | DOUBLE | Zeitstempel in [s] |
Length | O | DOUBLE | Dauer der Kurve in [s] |
Beispiel
Kurven-Definition
Der Parameterdialog des Kurven-Generator-Bausteins enthält die Liste aller definierten Kurven.
Die Kurven sind ihrem Namen nach sortiert. Mithilfe der Tasten rechts neben der Liste kann eine neue Kurve hinzugefügt oder die ausgewählte bearbeitet bzw. gelöscht werden. Die ausgewählte Kurve wird unter der Liste angezeigt und beim Verlassen des Dialogs mit OK dem Baustein zugeordnet.
Nach Betätigung von Abbrechen behält der Baustein zwar seine ursprüngliche Kurvenzuordnung, Änderungen an den Kurvendefinitionen werden jedoch durch Abbrechen nicht zurückgenommen.
Mit der Check-Box in der linken unteren Ecke wird im Edit-Modus festgelegt, ob die Kurvenzuordnung instanziiert werden soll, d.h. es möglich ist, den Instanzen des Bausteins in der Inbetriebnahme unterschiedliche Kurven zuzuordnen.
Mit den Tasten „Bearbeiten“ oder „Hinzufügen“ wird der nachfolgende Dialog zur Definition einer Kurve geöffnet. Ihr Name wird in der oben liegenden Eingabezeile angegeben.
Die Kurve besteht aus einem oder mehreren Segmenten. Diese Segmente basieren auf linearen, Sinus-, Exponential- oder Logarithmusfunktionen. Um ein neues Segment hinzuzufügen, muss eins der vier rechts dargestellten Funktionsicons mit der linken Maustaste angeklickt und in das Kurvenfeld gezogen werden. Abhängig von der Position des Icons beim Loslassen der Maustaste wird das neue Segment vor dem ersten, hinter dem letzten oder zwischen zwei bereits bestehenden Segmenten eingefügt. Das neue Segment wird mit Standardparametern initialisiert und ausgewählt.
Die Auswahl kann leicht mit den Cursortasten oder durch Anklicken eines anderen Segments geändert werden. Wird die rechte Maustaste über einem Segment betätigt, öffnet sich das Kontextmenü und es kann mit dem enthaltenen Befehl entfernt werden. Alternativ kann das ausgewählte Segment auch mit der Taste „Entf“ gelöscht werden.
Der Schieberegler unterhalb des Kurven-Bereichs ändert die Auflösung der Zeitachse, sodass schmale Segmente einfacher angeklickt werden können und Details besser ersichtlich sind.
Die Parameter des ausgewählten Segments sind in der Tabelle unter der Kurve aufgelistet. Die Parameter sind Konstanten oder Zufallszahlen. Gleichverteilte Zufallszahlen werden in Intervallen mit Minimum und Maximum definiert. Erwartungswert E(X) und Varianz VAR(X) müssen bei normalverteilten Zufallszahlen angegeben werden. Der Zufallszahlentyp wird in der Dropdown-Liste in der letzten Spalte der Tabelle ausgewählt. Segmente mit Zufallsparametern werden mit ihren Erwartungswerten im Kurvenfeld angezeigt.
Der Endwert der Kurve in einem Segment entspricht dem Startwert des nächsten Segments. Aus diesem Grund wird der Startwert nur für das erste Segment angegeben. Für jedes Segment wird eine Dauer zwischen 0,001 s und 3600 s festgelegt. Die folgende Tabelle enthält zusätzliche Parameter für die jeweiligen Segmenttypen.
Linear | Endwert | Es können beliebige Werte zwischen -1^300 und 1^300 angegeben werden. |
---|---|---|
Sinus | Frequenz [Hz] | Frequenzen sind auf Werte zwischen 1^-10 Hz und 1000 Hz beschränkt. |
Start-Amplitude End-Amplitude |
Es können beliebige Werte zwischen 0 und 1^300 angegeben werden. | |
Start-Winkel [°] | Mit dem Start-Winkel beginnt die Kurvenberechnung in dem Segment. Er ermöglicht z.B. mit einer abfallenden Schwingung zu beginnen. Winkel zwischen 0° und 360° können eingestellt werden. | |
Natürlicher Logarithmus | Endwert | Es können beliebige Werte zwischen -1^300 und 1^300 angegeben werden. |
Stützstelle – Zeit [%] Stützstelle – Wert [%] |
Der Kurvenverlauf wird neben Start- und Endwert durch eine Stützstelle definiert. Sie wird durch das Fadenkreuz im ausgewählten Logarithmus-Segment angezeigt. Bei ansteigender Kurve legt die Stützstelle fest, um wieviel Prozent der Signalwert im angegebenen Anteil an der Dauer des Segments bereits angewachsen ist. Bei fallender Kurve definiert sie die Senkung des Signalwerts im angegeben Zeitanteil. Die Prozentwerte liegen zwischen 0.1% und 99.9%. Die Prozentzahl für die Zeit kann die Prozentzahl des Wertes nicht übersteigen. Aufgrund numerischer Grenzen in der Berechnung verringert sich die maximal mögliche Einstellung für den Wert auf bis zu 99% bei kleinen Prozentwerten für die Zeit. | |
Exponential-funktion | Endwert | Es können beliebige Werte zwischen -1^300 und 1^300 angegeben werden. |
Stützstelle – Zeit [%] Stützstelle – Wert [%] |
Zusätzlich zum Start- und Endwert wird der Kurvenverlauf durch eine Stützstelle definiert. Sie wird durch das Fadenkreuz im ausgewählten Exponential-Segment angezeigt. Bei ansteigender Kurve legt die Stützstelle fest, um wieviel Prozent der Signalwert im angegebenen Anteil an der Dauer des Segments bereits angewachsen ist. Bei fallender Kurve definiert sie die Senkung des Signalwerts im angegeben Zeitanteil. Die Prozentwerte liegen zwischen 0.1% und 99.9%. Die Prozentzahl für den Wert kann die Prozentzahl der Zeit nicht übersteigen. Aufgrund numerischer Grenzen in der Berechnung verringert sich die maximal mögliche Einstellung für die Zeit auf bis zu 99% bei kleinen Prozentwerten für den Wert. |