Rezepte
Die Sollwerte, die ein Lauf schreibt: ein direkter Satz, bei Start angelegt, oder ein zeitgeführtes Profil aus Sprung, Rampe und Halten, jedes mit dem Abschlussblock, den jeder endende Lauf schreibt.
Ein Rezept schreibt die beschreibbaren Kanäle des Modells. Ein direktes Rezept ist ein Satz Sollwerte, einmal angelegt, wenn ein Lauf startet; ein zeitgeführtes Rezept ist ein geordnetes Profil aus Segmenten der Arten Sprung, Rampe und Halten, auf der eigenen Uhr des Laufs angetrieben. Beide dürfen auf einem Abschlussblock enden, dem sicheren Zustand, der geschrieben wird, wann immer der Lauf endet. Jeder Schreibvorgang reitet auf dem einen protokollierten Schreibtrichter und wird in der Laufdatei aufgezeichnet, wie er ausgeführt wurde. Rezepte wohnen unter Process > Modelle > Modell > Setup > Rezepte und brauchen die Berechtigung Rezepte und Bewertungen ändern.
Der Ordner Rezepte
Die Auswahl der Zeile Rezepte öffnet die Ordnerseite ("Sollwerte, die ein Ablauf beim Start eines Laufs anwendet, geschrieben durch den einen Schreibkanal und als ausgeführt aufgezeichnet.") mit einer Karte je Rezept, nach Namen; ein Klick auf eine Karte öffnet es, und das X entfernt es. Ohne eines sagt die Seite "Noch keine Rezepte. Fügen Sie eines hinzu."
| Befehl | Was er tut | Ausgegraut, wenn (Lage) | Nicht gezeichnet, wenn (Rolle) |
|---|---|---|---|
| Rezept (Detailleiste, Ordner gewählt; Rechtsklick Rezept hinzufügen) | Fügt Rezept <n> hinzu: Direkt, Bei Fehlschlag Anhalten, keine Sollwerte. Die Zeile kommt in ihre Gruppe, dort markiert und in den sichtbaren Bereich gerollt; ihre Karte öffnet sie. |
Irgendeine Einheit hält einen Lauf, oder die Runtime ist gestoppt. | Ohne Rezepte und Bewertungen ändern. |
Die Seite des Rezepts
Der Kopf trägt den Namen, die Zeile "Sollwerte, die ein Ablauf beim Start eines Laufs anwendet, geschrieben durch den einen Schreibkanal und als ausgeführt aufgezeichnet." und eine Pille mit der Art. Jedes Feld speichert von selbst, und jede Änderung zeichnet die Vorschau des Profils neu.
Definition
| Feld | Was es ist | Werte / Vorgabe | Wirkung |
|---|---|---|---|
| Bezeichnung | Wie das Rezept im Baum heißt, in der Auswahl Rezept eines Ablaufs und in der Auswahl Rezept anwenden eines Einheitenbereichs. | Freier Text; Rezept <n> beim Anlegen. |
Benennt die Zeile um. |
| Art | Die Form des Rezepts. | Direkt (Vorgabe): ein Satz Sollwerte, einmal bei Start angelegt. Zeitgeführt: ein geordnetes Profil aus Sprung, Rampe und Halten auf einer eigenen Uhr. | Schaltet die Seite zwischen den beiden Formen darunter um. Die bereits eingegebenen Sollwerte und Segmente bleiben erhalten; gezeichnet wird nur die Form, die die Art liest. Der aufbewahrte Block wird weder angelegt noch reserviert: Ein Lauf schreibt und sperrt allein das, was die geltende Art schreibt. Ein Ablauf lässt nur ein Rezept zu, dessen Art zu seiner Form passt. |
| Bei Fehlschlag (nur zeitgeführt) | Was das Profil tut, wenn ein Schreibvorgang scheitert oder ein Wert, den es braucht, nicht lesbar ist. | Anhalten (Vorgabe), Fortsetzen, Abbrechen; siehe die Tabelle unter der zeitgeführten Form. | Die Regel des Rezepts; jedes Segment darf sie außer Kraft setzen. |
| Anmerkungen | Freier Text für alle, die das Rezept lesen. | Mehrzeilig; leer als Vorgabe. | Sonst nichts. |
Werte
Sollwerte und Ziele werden als Text getippt und beim Anlegen in den Typ des Kanals gelesen, in der invarianten Kultur:
| Kanaltyp | Angenommene Literale |
|---|---|
| Wahrheitswert | true, false, 1, 0 |
| Ganzzahl | Eine ganze Zahl, . nie als Trennzeichen benutzt |
| Dezimalzahl | Eine Zahl mit . als Dezimaltrennzeichen (12.5, 1e-3); auf einer Station, die Dezimalstellen mit Komma schreibt, nimmt das Feld auch 12,5 an und speichert es als 12.5 |
| Text | Beliebiger Text, wie getippt |
| Datum und Uhrzeit | Ein Datum mit Uhrzeit im Rundlaufformat (2026-09-02T14:30:00+00:00) |
Ein Literal, das nicht zum Typ des Kanals passt, wird nie geschrieben: Der Schreibvorgang wird in der Laufdatei als fehlgeschlagen aufgezeichnet und von der Fehlschlagregel behandelt. Jedes Gitter mit Kanalzeilen auf dieser Seite bietet einer Zeile allein die beschreibbaren Kanäle an, die die anderen Zeilen desselben Gitters nicht genommen haben, ein Kanal wird also einmal je Satz und einmal je Segment geschrieben; sind alle beschreibbaren Kanäle genommen, ist die Schaltfläche, die eine Zeile hinzufügt, ausgegraut mit "Jeder schreibbare Kanal hat hier bereits einen Sollwert." (oder "… ein Ziel in diesem Segment."), und ganz ohne beschreibbaren Kanal mit "Dieses Modell hat noch keine schreibbaren Kanäle."
Ein direktes Rezept
Zwei unabhängige Karten, jede überschrieben mit einer Schaltfläche Sollwert, die auf dem ersten
freien beschreibbaren Kanal eine Zeile mit dem Wert 0 hinzufügt:
| Karte | Was sie schreibt |
|---|---|
| Sollwerte (beim Start angewendet) | Einmal geschrieben, bei Start, bevor der Lauf irgendetwas aufzeichnet. |
| Abschluss (sicherer Zustand) | "Wird geschrieben, wann immer der Lauf endet: Abschluss, Stopp oder Abbruch." |
Beide Gitter teilen dieselben Spalten:
| Spalte | Was sie ist | Werte |
|---|---|---|
| Kanal | Der beschriebene beschreibbare Kanal, als Ch<number> · <name>. |
Kanäle mit der Rolle Nur schreiben oder Lesen und schreiben, die in diesem Gitter noch nicht genommen sind. |
| Wert | Das geschriebene Literal. | Siehe Werte. |
| Zeilenbefehl | Entfernen fragt "Sollwert löschen": den Namen des Kanals, "Das entfernt den Sollwert aus dem Rezept." |
Ein zeitgeführtes Rezept
Die zeitgeführte Form zeichnet zuerst das Profil, dann die Segmente neben dem darin gewählten und danach den Abschlussblock.
Zeitliches Profil
Das Diagramm ist das Rezept selbst: eine Datenreihe je numerischem Kanal, den die Segmente
ansteuern, beschriftet als <name> [<unit>], gezeichnet als die stückweise Kurve, die die Segmente
bauen (ein Sprung springt und hält dann, eine Rampe steigt von dem Wert an, der in sie
hineingetragen wird, ein Halten oder ein Segment ohne Ziel hält), über der aufsummierten Zeit in
Sekunden. Ein Ziel auf einem Kanal, der nicht numerisch ist, wird nicht gezeichnet. Das Diagramm
trägt die Befehlsleiste, die jedes Diagramm hat, und kann in einem eigenen Fenster geöffnet werden
(siehe Diagramme); die Seite des Ablaufs zeichnet dasselbe Profil unter ihrer Stufe
Anlegen.
Segmente
Die Liste ist mit Segmente überschrieben, und ihre Schaltfläche Rezeptsegment fügt einen Sprung von 60000 ms ohne Ziele hinzu und wählt ihn aus. Ein Klick auf eine Zeile öffnet sie in der Spalte Ziele des Segments; ohne Auswahl sagt die Spalte "Wählen Sie ein Segment, um es ganz an einer Stelle zu bearbeiten, mit den Zielen, auf die es fährt."
| Spalte | Was sie ist | Werte / Vorgabe |
|---|---|---|
| Art | Die Form, die das Segment auf das Profil legt; jede Möglichkeit trägt diese Form neben ihrem Namen. | Schritt (Vorgabe), Rampe, Halten. |
| Dauer (ms) | Wie lange das Rezept im Segment bleibt, bevor es zum nächsten geht. | Eine Anzahl Millisekunden; 60000 beim Anlegen. Das Feld nimmt keine negative Zahl an: Die Eingabe wird abgelehnt, der Hinweis unter dem Feld sagt das, und der vorherige Wert kommt zurück. |
| Zeitzählung | Ab wann dieses Segment seine eigene Zeit zählt: sobald die Anlage die Sollwerte angenommen hat, oder im Augenblick der Übergabe. | Warten, bis sie das Gerät erreichen · Senden und weitergehen. Ein Schritt kommt wartend zur Welt, eine Rampe sendend; ein Wechsel der Art des Segments setzt den Geburtswert der neuen Art wieder ein, und was danach gewählt wird, bleibt stehen. Ein Halten schreibt nichts, seine Zelle ist also leer, und es gibt nichts zu wählen. |
| Bei Fehlschlag | Ob ein Fehlschlag hier der Regel des Rezepts folgt oder einer eigenen dieses Segments. | (Rezept) (Vorgabe: erben), Anhalten, Fortsetzen, Abbrechen. |
| Ziele | Worauf das Segment fährt, in einer Zeile: <channel> = <value>, …. Ein Halten fährt auf nichts, es liest sich also leer. |
Schreibgeschützt; in der Spalte geändert. |
| Zeilenbefehl | Entfernen fragt "Segment löschen": Rezeptsegment <n> · <Art>, "Das entfernt das Segment und seine Ziele aus dem Rezept." |
| Art des Segments | Was sie tut |
|---|---|
| Schritt | Schreibt seine Ziele bei Beginn des Segments und verweilt dann über die Dauer (ein Schritt darf 0 ms verweilen). |
| Rampe | Fährt jeden angesteuerten Kanal linear von seinem zuletzt befohlenen Wert (oder von seinem aktuellen Wert, wenn noch nichts befohlen wurde) über die Dauer auf das Ziel. Eine Rampe führt ihren Kanal zwischen zwei Messwerten, deshalb bietet ihre Zielauswahl nur die Kanäle an, die eine Zahl halten: Ein Text- oder ein Datums- und Zeitkanal bleibt nicht wählbar in der Liste und sagt, dass ein Sprung ihn stattdessen einmal schreibt. |
| Halten | Hält die zuletzt befohlenen Werte über die Dauer; schreibt nichts und trägt keine Ziele. |
Die Spalte, überschrieben mit Rezeptsegment <n> · <Art>, wiederholt dieselben Felder mit einer Erklärung
und der Wirkung des geltenden Wertes unter jedem:
| Feld | Erklärung | Wirkung |
|---|---|---|
| Art | Die Form neben jeder Möglichkeit. | |
| Dauer (ms) | "Wie lange das Rezept in diesem Segment bleibt, bevor es zum nächsten geht." | "Läuft 1 Min. 30 s." ("gar keine Zeit" bei 0). |
| Zeitzählung | "Wann dieses Segment beginnt, seine eigene Zeit zu zählen." | "Die Zeit läuft erst, wenn die Sollwerte das Gerät erreicht haben; eine Ablehnung oder eine Zeitüberschreitung löst die Fehlerregel aus." oder "Sendet und zählt die Zeit; was das Gerät antwortet, wird nur aufgezeichnet." |
| Bei Fehlschlag | "Ob ein Fehlschlag hier so behandelt wird, wie das Rezept es sagt, oder anders, wie dieses eine Segment es verlangt." | "Folgt dem Rezept: Anhalten." oder "Dieses Segment übergeht das Rezept: Abbrechen." |
Die Zeitzählung ist eine Eigenschaft des Segments und von nichts darüber: Es gibt kein Feld für das ganze Rezept, denn ein Profil, dessen Segmente unterschiedlich zählen, ist ein rechtmäßiges Profil, und ein Schalter über dem Ganzen wäre nur eine zweite Stelle, die dasselbe sagt. Es ist auch keine Einstellung zum Fehlschlag. Was es entscheidet, ist die Uhr; was ein Fehlschlag bewirkt, entscheidet die Regel Bei Fehlschlag weiter unten. Bei einem Halten wird das Feld gar nicht gezeichnet.
Darunter hält ZIELE die Ziele des Segments, mit einer Schaltfläche Ziel im Kopf der Spalte,
die auf dem ersten beschreibbaren Kanal, den das Segment noch nicht ansteuert, eine Zeile mit 0
hinzufügt. Bei einem Halten ist das Gitter durch die Zeile "Ein Halten behält die Werte, die das
Profil bereits erreicht hat, es fährt also kein eigenes Ziel." ersetzt, und die Schaltfläche ist
ausgegraut mit "Ein Halten behält die bereits erreichten Werte. Ändern Sie die Art, um hier ein Ziel
zu fahren."; Ziele, die ein Halten aus einer früheren Art mitträgt, bleiben gespeichert und werden
vom Lauf, von der Vorschau des Profils und vom Laufzettel gleichermaßen übergangen:
| Spalte | Was sie ist |
|---|---|
| Kanal | Der angesteuerte beschreibbare Kanal, angeboten allein unter den Kanälen, die die anderen Ziele dieses Segments nicht genommen haben. |
| Ziel | Das geschriebene (Sprung) oder erreichte (Rampe) Literal. |
| Zeilenbefehl | Entfernen fragt "Ziel löschen": den Namen des Kanals, "Das entfernt das Ziel aus dem Segment." |
Bei Fehlschlag
Die Fehlschlagregel gilt für ein zeitgeführtes Rezept, wenn ein Schreibvorgang abgewiesen wird oder ein Wert, den es braucht, nicht lesbar ist:
| Regel | Was der Lauf tut |
|---|---|
| Anhalten | Friert das Profil am letzten Sollwert ein und wartet darauf, dass der Bediener fortsetzt oder abbricht. Das Datalog zeichnet weiter auf. |
| Fortsetzen | Zeichnet den Fehlschlag auf, wie er ausgeführt wurde, und macht weiter; der gescheiterte Kanal wird für den Rest des Segments übergangen. |
| Abbrechen | Schreibt den Abschlussblock und beendet den Lauf als abgebrochen. |
Die Regel antwortet auf einen Fehlschlag, von dem das Rezept weiß, und was das Rezept weiß, hängt davon ab, ob es für die Antwort geblieben ist. Ein Problem, das es vor dem Senden sieht, ist Wissen in beiden Betriebsarten; eine Ablehnung oder ein Schweigen der Anlage ist Wissen nur dort, wo das Segment darauf gewartet hat:
| Was das Rezept erfährt, und wann | Warten, bis sie das Gerät erreichen | Senden und weitergehen |
|---|---|---|
| Vor dem Senden: Der Kanal ist nicht gebunden, der Wert passt nicht zum Typ des Kanals, das Tag ist nicht in der Runtime, ein anderer Lauf hält das Tag, das Gerät gilt bereits als getrennt | Die Regel gilt. | Die Regel gilt genauso: Das Rezept wusste es, bevor es losließ. |
| Die Anlage lehnt den Wert auf der Leitung ab | Die Regel gilt. | Hier kein Fehlschlag: als ausgeführt mit dem Grund aufgezeichnet und protokolliert. |
| Die Anlage antwortet nicht rechtzeitig | Die Regel gilt. | Hier kein Fehlschlag: aufgezeichnet. |
| Ein Sollwert, den ein neuerer Schreibvorgang auf dasselbe Ziel vor dem Senden überholt hat | Kein Fehlschlag. | Kein Fehlschlag. |
Ein überholter Sollwert ist in keiner der beiden Betriebsarten je ein Fehlschlag: Der neuere Wert für dieses Ziel ist der, den die Anlage erfährt, und er ist der, der zählt. Eine Rampe arbeitet absichtlich so, jeder Takt ersetzt den Takt davor, der die Warteschlange des Geräts noch nicht verlassen hat.
Abschluss (sicherer Zustand)
Dieselbe Karte wie bei einem direkten Rezept, "Wird geschrieben, wann immer der Lauf endet: Abschluss, Stopp oder Abbruch.", mit einer eigenen Schaltfläche Sollwert und einem eigenen Gitter.
Wo ein Rezept benutzt wird
| Fläche | Was sie mit dem Rezept tut |
|---|---|
| Die Stufe Anwenden eines Ablaufs | Die Auswahl bietet jedes Rezept des Modells an; ein Rezept, dessen Art nicht zur Form des Ablaufs passt, wird als "<name> (unverträglich)" gelistet, abgeschaltet, mit dem Grund als Tooltip. Ein direkter oder gesteuerter Ablauf nimmt ein direktes Rezept oder keines; ein zeitgeführter nimmt ein zeitgeführtes Rezept oder keines, und sein Profil muss in das Fenster passen. Die Zeile der Stufe sagt, was die Wahl schreibt: "Schreibt beim Start 4 Sollwerte.", "Schreibt beim Start 4 Sollwerte und beim Verlassen 2 Sollwerte.", "Fährt 3 Segmente über 2 Min. 30 s und schreibt beim Verlassen 2 Sollwerte." oder "Es werden keine Sollwerte geschrieben." Siehe Abläufe. |
| Die Karte Einzelbefehle eines Einheitenbereichs | Rezept anwenden schreibt die Sollwerte eines direkten Rezepts einmal, außerhalb jedes Laufs, durch den protokollierten Schreibkanal unter einer kurzlebigen Sperre; es entsteht keine Laufdatei, das Journal ist die Aufzeichnung. Angeboten werden nur direkte Rezepte. Siehe Einheitenbereiche. |
Was ein Lauf damit tut
Bei Start übernimmt der Lauf für seine ganze Dauer den Besitz jeder Quelle, die das Rezept schreibt, ein Start, dessen Rezept eine Quelle schreibt, die ein anderer Lauf hält, wird also unter Nennung des Namens abgewiesen, und jeder Schreibvorgang von anderswo (ein Feld auf einem Dashboard, ein Skript, ein OPC UA-Client) auf diese Quellen wird abgewiesen, solange der Lauf sie besitzt. Ein direkter Satz wird einmal bei Start geschrieben; ein zeitgeführtes Profil wird Segment für Segment auf der Uhr des Laufs abgeschritten, und ein zeitgeführter Ablauf ohne Rezept bekommt diese Uhr trotzdem, damit jedes Mitglied des Fensters zusammen startet, wiederholt und endet. Anhalten friert die Uhr ein, und Fortsetzen gibt sie frei; das Datalog zeichnet über ein Anhalten hinweg weiter auf. Jeder Schreibvorgang wird mit dem Lauf als Quelle ins Journal geschrieben und in der Laufdatei aufgezeichnet, wie er ausgeführt wurde, ein späterer Leser sieht also, was tatsächlich geschrieben wurde und wann.
Ein Segment, der direkte Satz und der Abschlussblock übergeben alle ihre Sollwerte auf einmal, und jeder davon geht von dort in die Warteschlange seines eigenen Geräts. Eine Station, deren vier Kanäle auf vier Geräten sitzen, zahlt also einmal für das langsamste Gerät und nicht die Summe der vier, und die Logic selbst wartet auf keines davon.
Was das Segment danach tut, entscheidet die Zeitzählung. Bei Warten, bis sie das Gerät erreichen beginnt die eigene Uhr des Segments erst, wenn jeder Sollwert von seiner Anlage angenommen wurde: Solange das läuft, liest die Einheit auf der Wand von Betrieb "Wartet darauf, dass die Sollwerte das Gerät erreichen", die Dauer des Segments hat noch nicht zu laufen begonnen, und das Datalog zeichnet durchgehend auf. Bei Senden und weitergehen beginnt die Uhr im Augenblick der Übergabe, und die Antworten, die danach zurückkommen, werden aufgezeichnet und sonst nichts.
Das direkte Rezept bei Start und der Abschlussblock warten immer, ohne Feld und ohne Wahl: Ein Lauf darf nicht beginnen, bevor sein Ausgangszustand wirklich besteht, und darf nicht als geschlossen gemeldet werden, bevor sein sicherer Zustand es ist. Ihre Ablehnungen werden als ausgeführt aufgezeichnet und brechen, wie immer, den Lauf nie ab.
Der Abschlussblock wird geschrieben, wann immer der Lauf endet: Abschluss, Stoppen oder Abbrechen. Er wird nicht geschrieben, wenn die Anwendung selbst mitten im Lauf geschlossen wird: Der Lauf endet nicht, und er setzt beim nächsten Start angehalten an seinem gesicherten Segment und Zyklus fort.
Rezept entfernen
Rezept entfernen steht in der Gefahrengruppe der Detailleiste, wenn das Rezept gewählt ist, in seinem Rechtsklickmenü und als X auf der Karte der Ordnerseite. Es fragt zuerst ("Rezept löschen", "Das entfernt das Rezept aus dem Modell."). Jeder Ablauf, der es angelegt hat, leert seinen Verweis Rezept und wird zu einem Lauf ohne Rezept. Es braucht Rezepte und Bewertungen ändern und ist unter der Projektierungssperre und bei gestoppter Runtime ausgegraut.
Was ein Rezept nicht tut
- Es liest nichts und beurteilt nichts: Grenzen sind eine Bewertung.
- Es schreibt keine Werte je Einheit. Jede Einheit erhält dieselben Literale auf ihren eigenen gebundenen Quellen.
- Es wiederholt einen abgewiesenen Schreibvorgang nie; die Fehlschlagregel ist die ganze Antwort.
- Ein zeitgeführtes Rezept kann nicht als Einzelbefehl ausgelöst werden; nur ein Ablauf fährt ein Profil.
- Die Vorschau des Profils zeichnet allein numerische Kanäle; ein Ziel vom Typ Wahrheitswert oder Text wird geschrieben, aber nie gezeichnet.