library of general functions (lgf) für s7-1200/1500
TRANSCRIPT
Library of General Functions (LGF) für S7-1200/1500
STEP 7 (TIA Portal) V15
https://support.industry.siemens.com/cs/ww/de/view/109479728
Siemens Industry Online Support
Rechtliche Hinweise
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 2
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Rechtliche Hinweise Nutzung der Anwendungsbeispiele
In den Anwendungsbeispielen wird die Lösung von Automatisierungsaufgaben im Zusammen-spiel mehrerer Komponenten in Form von Text, Grafiken und/oder Software-Bausteinen beispielhaft dargestellt. Die Anwendungsbeispiele sind ein kostenloser Service der Siemens AG und/oder einer Tochtergesellschaft der Siemens AG („Siemens“). Sie sind unverbindlich und erheben keinen Anspruch auf Vollständigkeit und Funktionsfähigkeit hinsichtlich Konfiguration und Ausstattung. Die Anwendungsbeispiele stellen keine kundenspezifischen Lösungen dar, sondern bieten lediglich Hilfestellung bei typischen Aufgabenstellungen. Sie sind selbst für den sachgemäßen und sicheren Betrieb der Produkte innerhalb der geltenden Vorschriften verantwortlich und müssen dazu die Funktion des jeweiligen Anwendungsbeispiels überprüfen und auf Ihre Anlage individuell anpassen. Sie erhalten von Siemens das nicht ausschließliche, nicht unterlizenzierbare und nicht übertragbare Recht, die Anwendungsbeispiele durch fachlich geschultes Personal zu nutzen. Jede Änderung an den Anwendungsbeispielen erfolgt auf Ihre Verantwortung. Die Weitergabe an Dritte oder Vervielfältigung der Anwendungsbeispiele oder von Auszügen daraus ist nur in Kombination mit Ihren eigenen Produkten gestattet. Die Anwendungsbeispiele unterliegen nicht zwingend den üblichen Tests und Qualitätsprüfungen eines kostenpflichtigen Produkts, können Funktions- und Leistungsmängel enthalten und mit Fehlern behaftet sein. Sie sind verpflichtet, die Nutzung so zu gestalten, dass eventuelle Fehlfunktionen nicht zu Sachschäden oder der Verletzung von Personen führen.
Haftungsausschluss Siemens schließt seine Haftung, gleich aus welchem Rechtsgrund, insbesondere für die Verwendbarkeit, Verfügbarkeit, Vollständigkeit und Mangelfreiheit der Anwendungsbeispiele, sowie dazugehöriger Hinweise, Projektierungs- und Leistungsdaten und dadurch verursachte Schäden aus. Dies gilt nicht, soweit Siemens zwingend haftet, z.B. nach dem Produkthaftungs-gesetz, in Fällen des Vorsatzes, der groben Fahrlässigkeit, wegen der schuldhaften Verletzung des Lebens, des Körpers oder der Gesundheit, bei Nichteinhaltung einer übernommenen Garantie, wegen des arglistigen Verschweigens eines Mangels oder wegen der schuldhaften Verletzung wesentlicher Vertragspflichten. Der Schadensersatzanspruch für die Verletzung wesentlicher Vertragspflichten ist jedoch auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht Vorsatz oder grobe Fahrlässigkeit vorliegen oder wegen der Verletzung des Lebens, des Körpers oder der Gesundheit gehaftet wird. Eine Änderung der Beweislast zu Ihrem Nachteil ist mit den vorstehenden Regelungen nicht verbunden. Von in diesem Zusammen-hang bestehenden oder entstehenden Ansprüchen Dritter stellen Sie Siemens frei, soweit Siemens nicht gesetzlich zwingend haftet. Durch Nutzung der Anwendungsbeispiele erkennen Sie an, dass Siemens über die beschriebene Haftungsregelung hinaus nicht für etwaige Schäden haftbar gemacht werden kann.
Weitere Hinweise Siemens behält sich das Recht vor, Änderungen an den Anwendungsbeispielen jederzeit ohne Ankündigung durchzuführen. Bei Abweichungen zwischen den Vorschlägen in den Anwendungs-beispielen und anderen Siemens Publikationen, wie z. B. Katalogen, hat der Inhalt der anderen Dokumentation Vorrang. Ergänzend gelten die Siemens Nutzungsbedingungen (https://support.industry.siemens.com).
Securityhinweise Siemens bietet Produkte und Lösungen mit Industrial Security-Funktionen an, die den sicheren Betrieb von Anlagen, Systemen, Maschinen und Netzwerken unterstützen. Um Anlagen, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches Industrial Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht. Die Produkte und Lösungen von Siemens formen nur einen Bestandteil eines solchen Konzepts. Der Kunde ist dafür verantwortlich, unbefugten Zugriff auf seine Anlagen, Systeme, Maschinen und Netzwerke zu verhindern. Systeme, Maschinen und Komponenten sollten nur mit dem Unternehmensnetzwerk oder dem Internet verbunden werden, wenn und soweit dies notwendig ist und entsprechende Schutzmaßnahmen (z.B. Nutzung von Firewalls und Netzwerk-segmentierung) ergriffen wurden. Zusätzlich sollten die Empfehlungen von Siemens zu entsprechenden Schutzmaßnahmen beachtet werden. Weiterführende Informationen über Industrial Security finden Sie unter: https://www.siemens.com/industrialsecurity.
Die Produkte und Lösungen von Siemens werden ständig weiterentwickelt, um sie noch sicherer zu machen. Siemens empfiehlt ausdrücklich, Aktualisierungen durchzuführen, sobald die entsprechenden Updates zur Verfügung stehen und immer nur die aktuellen Produktversionen zu verwenden. Die Verwendung veralteter oder nicht mehr unterstützter Versionen kann das Risiko von Cyber-Bedrohungen erhöhen.
Um stets über Produkt-Updates informiert zu sein, abonnieren Sie den Siemens Industrial Security RSS Feed unter: https://www.siemens.com/industrialsecurity.
Inhaltsverzeichnis
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 3
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Inhaltsverzeichnis Rechtliche Hinweise .................................................................................................... 2
1 Bibliotheksübersicht ......................................................................................... 5
1.1 Allgemein .............................................................................................. 5 1.2 Hard- und Softwarevoraussetzungen ................................................... 5 1.3 Bibliotheksressourcen .......................................................................... 6
2 Arbeiten mit der Bibliothek ............................................................................... 8
2.1 Allgemein .............................................................................................. 8 2.2 Simulierbarkeit mit SIMATIC S7-PLCSIM Advanced (NEU) ................ 9
3 Erläuterung der Bausteine .............................................................................. 11
3.0 Bit logic operations ............................................................................. 12 3.0.1 FB LGF_PulseRelay ........................................................................... 12 3.1 Date and timer operations .................................................................. 14 3.1.1 FB LGF_Astro (Korrektur) .................................................................. 14 3.1.2 FB LGF_SetTime ............................................................................... 18 3.1.3 FB LGF_TimerSwitch (Korrektur) ....................................................... 21 3.1.4 FC LGF_CalendarDayWeek .............................................................. 24 3.1.5 FC LGF_GermanHoliday (NEU) ........................................................ 26 3.2 Counter operations ............................................................................. 28 3.2.1 FC LGF_CountFalInDWord ................................................................ 28 3.2.2 FC LGF_CountRisInDWord................................................................ 30 3.3 Comperator operations ....................................................................... 32 3.3.1 FC LGF_CompareVariant .................................................................. 32 3.3.2 FC LGF_CompareReal ...................................................................... 34 3.4 Math operations .................................................................................. 36 3.4.1 FC LGF_AverageAndDeviation .......................................................... 36 3.4.2 FB LGF_FloatingAverage................................................................... 38 3.4.3 FC LGF_MatrixAddition ...................................................................... 40 3.4.4 FC LGF_MatrixInverse ....................................................................... 42 3.4.5 FC LGF_MatrixMultiplication .............................................................. 44 3.4.6 FC LGF_MatrixSubtraction................................................................. 46 3.4.7 FC LGF_MatrixTranspose .................................................................. 48 3.4.8 FB LGF_MinMaxHistory ..................................................................... 50 3.4.9 FC LGF_RandomBasic ...................................................................... 51 3.4.10 FC LGF_RandomINT / LGF_RandomReal ........................................ 52 3.4.11 FC LGF_SearchMinMax ..................................................................... 54 3.4.12 FC LGF_XRoot ................................................................................... 56 3.4.13 FC LGF_HighLowLimit ....................................................................... 57 3.4.14 FB LGF_Integration ............................................................................ 59 3.4.15 FC LGF_Factorial (NEU) .................................................................... 61 3.4.16 FC LGF_Distance (NEU).................................................................... 62 3.5 Data handling ..................................................................................... 63 3.5.1 FB LGF_FIFO ..................................................................................... 63 3.5.2 FB LGF_LIFO (NEU) .......................................................................... 66 3.5.3 FB LGF_RingBuffer (NEU) ................................................................. 69 3.5.4 FB LGF_ShellSortInt / LGF_ShellSortUInt / LGF_ShellSortReal....... 71 3.5.5 FC LGF_CRC8 (NEU) ........................................................................ 73 3.5.6 FC LGF_CRC8For1Byte (NEU) ......................................................... 74 3.5.7 FC LGF_CRC16 (NEU) ...................................................................... 75 3.5.8 FC LGF_CRC32 (NEU) ...................................................................... 76 3.6 Converter operations .......................................................................... 78 3.6.1 FC LGF_BinaryToGray ...................................................................... 78 3.6.2 FC LGF_GrayToBinary ...................................................................... 79 3.6.3 FC LGF_BitsToWord .......................................................................... 80
Inhaltsverzeichnis
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 4
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.4 FC LGF_WordToBits .......................................................................... 81 3.6.5 FC LGF_DTLtoString ......................................................................... 82 3.6.6 FC LGF_StringToDTL ........................................................................ 84 3.6.7 FC LGF_TemperatureConvert ........................................................... 86 3.6.8 FC LGF_ScaleLinear .......................................................................... 87 3.6.9 FC LGF_StringToTaddr ...................................................................... 90 3.6.10 FC LGF_TaddrToString ...................................................................... 92 3.6.11 FC LGF_IntToString (NEU) ................................................................ 93 3.6.12 FC LGF_TimeToString (NEU) ............................................................ 94 3.7 Signal generators ............................................................................... 95 3.7.1 FB LGF_Frequency ............................................................................ 95 3.7.2 FB LGF_Impulse ................................................................................ 97 3.7.3 FB LGF_SawTooth ............................................................................. 98 3.7.4 FB LGF_SawToothCI (NEU) ............................................................ 100 3.7.5 FB LGF_TriangleCI (NEU) ............................................................... 102 3.7.6 FB LGF_RectangleCI (NEU) ............................................................ 104 3.7.7 FB LGF_SinusCI (NEU) ................................................................... 106 3.7.8 FB LGF_CosinusCI (NEU) ............................................................... 108 3.8 Technology operations ..................................................................... 110 3.8.1 FB LGF_LimRateOfChangeBasic .................................................... 110 3.8.2 FB LGF_LimRateOfChangeAdvanced ............................................. 113 3.8.3 FB LGF_Ramp ................................................................................. 118 3.8.4 FB LGF_NonLin ............................................................................... 123 3.8.5 Regeln von simulierten Regelstrecken ............................................. 125
4 Literaturhinweise ........................................................................................... 126
5 Historie............................................................................................................ 127
5.1 Versionierung der Bibliothek ............................................................ 127 5.2 Änderungsprotokoll .......................................................................... 128
1 Bibliotheksübersicht
1.1 Allgemein
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 5
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
1 Bibliotheksübersicht
1.1 Allgemein
TIA Portal hat eine umfangreiche Anzahl an "ready-to-use" Anweisungen (Mathematische Funktionen, Zeiten, Zähler, usw.). Darüber hinaus gibt es noch weitere nützliche Basisfunktionen.
Diese Funktionen werden in Form einer Bibliothek zur Verfügung gestellt und können frei verwendet werden. Die fertigen Funktionen sind frei anpassbar und können somit universell eingesetzt werden.
Die hier beschriebene Bibliothek ist versioniert und wird kontinuierlich erweitert. Informationen zur Versionierung finden Sie in Kapitel 5.1 Versionierung.
1.2 Hard- und Softwarevoraussetzungen
Voraussetzungen für diese Bibliothek
Um die Funktionalität der hier beschriebenen Bibliothek nutzen zu können, sind nachfolgend genannte Hard- und Softwarevoraussetzungen einzuhalten.
Hardware
Alle Bausteine (FB, FC, DB, …) in der Bibliothek sind universal mit folgenden Steuerungen einsetzbar:
S7-1200 und S7-1200 F Produktfamilie
S7-1500 und S7-1500 F Produktfamilie
Simulation mit S7-PLCSIM (ab V14)
Software
STEP 7 (TIA Portal) Basic oder Professional ab V14
Hinweis Es ist generell möglich eine Bibliothek mit STEP 7 Basic zu öffnen, obwohl STEP 7 Professional Elemente (z.B. S7-1500 Steuerung) enthalten sind. In diesem Fall werden Sie mit einer Meldung beim Öffnen der Bibliothek informiert.
Es können alle Elemente (Typen und Kopiervorlagen) verwendet werden, wenn sie von der installierten Hardware im TIA Portal unterstützt werden.
Falls Sie versuchen Elemente mit STEP 7 Basic aus der Bibliothek zu kopieren, die nicht unterstützt werden (z.B. S7-1500 Steuerung), wird eine Fehlermeldung angezeigt.
1 Bibliotheksübersicht
1.3 Bibliotheksressourcen
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 6
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
1.3 Bibliotheksressourcen
Nachfolgend erhalten Sie einen Überblick über die Belegung des Lade- und Arbeitsspeichers durch die Bibliotheksbausteine.
Speicherbelegung der einzelnen Bausteine
Tabelle 1-1: Speicherbelegung (CPU 1212 DC/DC/DC V4.2, CPU 1511-1 PN V2.0)
Baustein CPU 1212 Belegung (Byte) CPU 1511 Belegung (Byte)
Lade- speicher
Arbeits- speicher
Lade- speicher
Arbeits- speicher
Bit logic operations
FB LGF_PulseRelay V1.0.3 7561 201 7636 302
Date and timer operations
FB LGF_Astro V1.1.6 55134 3703 55209 3782
FB LGF_SetTime V1.0.3 29604 2242 29737 2312
FB LGF_TimerSwitch V1.1.4 40562 4537 40548 4647
FC LGF_CalendarDayWeekV1.0.1 23852 1692 23872 1767
FC LGF_GermanHoliday V1.0.1 18763 957 18821 1021
Counter operations
FC LGF_CountFalInDWord V1.0.2 16085 1124 16115 1188
FC LGF_CountRisInDWord V1.0.2 15973 1124 16001 1188
Comperator operations
FC LGF_CompareVariant V1.0.1 11457 608 11502 672
FC LGF_CompareReal V1.0.1 6615 118 6637 182
Math operations
FC LGF_AverageAndDeviation V1.0.3 30067 2909 30105 2978
FB LGF_FloatingAverage V1.1.1 17864 750 17837 832
FC LGF_MatrixAddition V2.0.1 12183 489 12223 553
FC LGF_MatrixInverse V2.0.1 16822 1018 16875 1082
FC LGF_MatrixMultiplication V2.0.1 12843 546 12887 610
FC LGF_MatrixSubtraction V2.0.1 12102 489 12154 553
FC LGF_MatrixTranspose V2.0.1 10491 383 10525 447
FB LGF_MinMaxHistory V1.0.2 6416 114 6425 178
FC LGF_RandomBasic V1.0.1 7122 185 7140 249
FC LGF_RandomInt V1.0.2 9654 246 9678 310
FB LGF_RandomReal V1.0.3 10165 280 10179 344
FC LGF_SearchMinMax V1.0.2 36551 4645 36592 4709
FC LGF_XRoot V1.0.2 4824 51 4850 115
FC LGF_HighLowLimit V1.0.1 9446 271 9488 343
FB LGF_Integration V1.0.1 11636 322 11664 392
FC LGF_Factorial V1.0.1 6579 146 6610 210
FC LGF_Distance V1.0.1 5268 63 5298 127
1 Bibliotheksübersicht
1.3 Bibliotheksressourcen
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 7
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Baustein CPU 1212 Belegung (Byte) CPU 1511 Belegung (Byte)
Lade- speicher
Arbeits- speicher
Lade- speicher
Arbeits- speicher
Data handling
FB LGF_FIFO V1.0.3 21958 1665 21979 1764
FB LGF_LIFO V1.0.1 19449 1528 19496 1620
FB LGF_RingBuffer V1.0.3 9694 327 9766 399
FB LGF_ShellSortInt V1.1.2 19661 1466 19704 1548
FB LGF_ShellSortUint V1.1.2 19807 1466 19841 1548
FB LGF_ShellSortReal V1.1.2 19703 1466 19732 1548
FC LGF_CRC8 V1.0.1 7420 205 7455 269
FC LGF_CRC8For1Byte V1.0.1 5795 106 5825 170
FC LGF_CRC16 V1.0.1 7787 224 7825 288
FC LGF_CRC32 V1.0.1 16589 858 16613 922
Converter operations
FC LGF_BinaryToGray V1.0.3 4464 36 4466 100
FC LGF_GrayToBinary V1.0.3 12292 872 12319 936
FC LGF_BitsToWord V1.0.1 6332 186 6349 250
FC LGF_WordToBits V1.0.1 6507 175 6528 239
FC LGF_DTLtoString V1.0.2 16779 877 16755 936
FC LGF_StringToDTL V1.0.2 21202 1116 21174 1139
FC LGF_TemperatureConvert V1.0.2 7050 227 7054 291
FC LGF_ScaleLinear V1.0.1 31164 4450 31196 4514
FC LGF_StringToTaddr V1.0.1 22225 1001 22250 1059
FC LGF_TaddrToString V1.0.1 11009 410 11079 469
FC LGF_IntToString V1.0.1 6253 156 6281 215
FC LGF_TimeToString V1.0.1 14330 1105 14365 1164
Signal generators
FB LGF_Frequency V1.1.3 11361 353 11364 420
FB LGF_Impulse V1.2.1 7905 132 7929 201
FB LGF_SawTooth V1.0.3 10641 249 10659 320
FB LGF_SawToothCI V1.0.1 10429 284 10493 355
FB LGF_TriangleCI V1.0.1 11205 375 11248 446
FB LGF_RectangleCI V1.0.1 10317 265 10366 336
FB LGF_SinusCI V1.0.1 10649 294 10700 365
FB LGF_CosinusCI V1.0.1 10682 294 10721 365
Technology operations
FB LGF_LimRateOfChangeBasic V1.0.2 12756 362 12810 435
FB LGF_LimRateOfChangeAdvanced V1.0.2 25907 1476 26092 1708
FB LGF_Ramp V1.0.2 29040 1446 29099 1523
FB LGF_NonLin V1.0.1 13515 566 13599 642
2 Arbeiten mit der Bibliothek
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 8
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
2 Arbeiten mit der Bibliothek
2.1 Allgemein
Alle Bausteine in der Bibliothek "LGF" sind frei verwendbar in Verbindung mit S7-1200 und S7-1500 Steuerungen.
Der Großteil der Bausteine ist als Typ in der Bibliothek abgelegt. Somit sind die Bausteine versioniert und können somit alle Vorteile nutzen.
Zentrale Updatefunktion von Bibliothekselementen
Versionierung von Bibliothekselementen
Hinweis Informationen zum generellen Umgang mit Bibliotheken finden Sie im Leitfaden zur Bibliothekshandhabung
https://support.industry.siemens.com/cs/ww/de/view/109747503
und im Programmierleitfaden für S7-1200/1500 im Kapitel "Bibliotheken".
https://support.industry.siemens.com/cs/ww/de/view/81318674
Hinweis Alle Bausteine in der LGF wurden nach dem Programmierstyleguide erstellt.
https://support.industry.siemens.com/cs/ww/de/view/81318674
Weitere Informationen zu Bibliotheken im TIA Portal:
Themenseite Bibliotheken https://support.industry.siemens.com/cs/ww/de/view/109738702
Wie öffnen Sie Bibliotheken in STEP 7 (TIA Portal)? https://support.industry.siemens.com/cs/ww/de/view/37364723
in weniger als 10 Minuten TIA Portal: Time Savers – Globale Bibliotheken https://support.industry.siemens.com/cs/ww/de/view/78529894
Welche Elemente aus STEP 7 (TIA Portal) können in einer Bibliothek als Typ oder als Kopiervorlage abgelegt werden? https://support.industry.siemens.com/cs/ww/de/view/109476862
Wie können Sie beim Starten von TIA Portal ab V13 eine globale Bibliothek automatisch öffnen und z.B. als Unternehmensbibliothek verwenden? https://support.industry.siemens.com/cs/ww/de/view/100451450
2 Arbeiten mit der Bibliothek
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 9
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
2.2 Simulierbarkeit mit SIMATIC S7-PLCSIM Advanced (NEU)
Damit die Bausteine nach dem Übersetzen mit SIMATIC S7-PLCSIM Advanced simuliert werden können, gehen Sie folgendermaßen vor:
1. Öffnen Sie die Eigenschaften Ihres Projekts und aktivieren Sie im Register "Schutz" die Option "Beim Übersetzen von Bausteinen Simulierbarkeit unterstützen" ("Support simulation during block compilation").
2. Klicken Sie in Ihrem Project mit der rechten Maustaste auf einen Baustein z. B. "LGF_FIFO" in der Projektbibliothek und wählen Sie "Typ bearbeiten" ("Edit type").
Eine neue Version des Bausteins wird angelegt.
3. Übersetzen Sie das Project.
2 Arbeiten mit der Bibliothek
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 10
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
In den Eigenschaften des Bausteins z. B. "LGF_FIFO" wird die Option "Simulierbar mit SIMATIC S7-PLCSIM (Advanced)" ("Can be simulated with SIMATIC S7-PLCSIM (Advanced)") automatisch gesetzt.
4. Der Baustein kann nach dem Laden mit SIMATIC S7-PLCSIM Advanced simuliert werden.
5. Klicken Sie in der Projektbibliothek mit der rechten Maustaste auf die neue Version "[im Test]" ("[in test]").
– Möchten Sie nach der Simulation die ursprüngliche Version beibehalten, dann wählen Sie "Änderungen verwerfen und Version löschen" ("Discard changes and delete version"). Damit bleiben Sie kompatibel mit der Bibliothek LGF.
– Wenn Sie diese Version dennoch beibehalten möchten, wählen Sie im Kontextmenü "Version freigeben" ("Release version").
Hinweis Bausteine mit aktivierter Simulierbarkeit belegen mehr Speicherplatz in der PLC.
3 Erläuterung der Bausteine
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 11
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3 Erläuterung der Bausteine Die folgenden Kapitel beschreiben alle Bausteine der Bibliothek "Library General Functions". Die Kapitel sind nach der gleichen Struktur aufgebaut wie die Bibliothek selbst.
Alle Bausteine sind in Anwendungsgebiete bzw. Kategorien eingeteilt:
Bit logic operations (Bitoperationen)
Date and timer operations (Datum und Zeitoperationen)
Counter operations (Zähloperationen)
Comperator operations (Vergleichsoperationen)
Math operations (mathematische Operationen)
Data handling (Datenverarbeitung)
Converter operations (Konvertierungsoperationen)
Signal generators (Signalgeneratoren)
Technology operations (Technologieoperationen)
Abbildung 3-1: Globale Bibliothek (LGF)
3 Erläuterung der Bausteine
3.0 Bit logic operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 12
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.0 Bit logic operations
3.0.1 FB LGF_PulseRelay
Kurzbeschreibung
Dieser Baustein entspricht einem Stromstoßrelais bzw. einem Toggle-Flip-Flop inklusive Setz- und Rücksetzeingang.
Baustein
Abbildung 3-2: FB LGF_PulseRelay
FB LGF_PulseRelay
BOOL trigger out BOOL
BOOL set
BOOL reset
Eingangsparameter
Tabelle 3-1: Eingangsparameter
Parameter Datentyp Beschreibung
trigger BOOL Jede steigende Flanke ändert den boolschen Wert des Ausgangs "out".
set BOOL Jede steigende Flanke setzt den boolschen Wert des Ausgangs "out" auf "TRUE".
reset BOOL Jede steigende Flanke setzt den boolschen Wert des Ausgangs "out" auf "FALSE".
Ausgangsparameter
Tabelle 3-2: Ausgangsparameter
Parameter Datentyp Beschreibung
out BOOL Signalausgang
3 Erläuterung der Bausteine
3.0 Bit logic operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 13
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Abbildung 3-3: LGF_PulseRelay Signaldiagramm
trigger
Zeit
set
reset
out
1
2
3 4
1
1. Jede steigende Flanke des Eingangs "trigger "ändert den boolschen Wert des Ausgangs "out".
2. Jede steigende Flanke des Eingangs "set" setzt den boolschen Wert des Ausgangs "out" auf "TRUE".
3. Jede steigende Flanke des Eingangs "reset" setzt den boolschen Wert des Ausgangs "out" auf "FALSE".
4. Falls die Eingänge "set" und "reset" im gleichen Zyklus gesetzt werden, hat der "reset" Eingang Vorrang.
Der Baustein kann auch als Frequenzteiler verwendet werden. Wenn der Eingang "trigger" mit einer festen Frequenz versorgt wird, liefert der Ausgang "out" die halbe Frequenz.
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 14
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.1 Date and timer operations
3.1.1 FB LGF_Astro (Korrektur)
Kurzbeschreibung
Dieser Baustein berechnet die Zeiten des Sonnenauf- und Sonnenuntergangs für einen bestimmten Ort auf der Erde. Die genaue Position wird dem Baustein in Form von geographischen Koordinaten (Längen- und Breitengrad) übergeben.
Abbildung 3-4: Erde mit Längen- und Breitengrad
Südpol
Nordpol
Westlich (-) Östlich (+) Nördlich (+)
Südlich (-)
60° 120°120° 60°
60°
30°
30°
60°
0°Nullmeridian
Breitengrad
Längengrad
Äquator
Informationen zum Thema Uhrzeitsynchronisation finden Sie unter folgenden Beitrag: https://support.industry.siemens.com/cs/ww/de/view/86535497
Baustein
Abbildung 3-5: FB LGF_Astro
FB LGF_Astro
REAL latitudeDD sunrise DTL
REAL longitudeDD sunset DTL
BOOL modeDMS daytime BOOL
LGF_typeAstroDMS latitudeDMS actSystemTime DTL
LGF_typeAstroDMS longitudeDMS actLocalTime DTL
TIME offsetSunrise error BOOL
TIME offsetSunset statusID UINT
status WORD
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 15
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Eingangsparameter
Tabelle 3-3: Eingangsparameter
Parameter Datentyp Beschreibung
latitudeDD REAL Breitengrad in Grad mit Nachkommastellen (Einheit: Grad dezimal),
gültiger Wertebereich [-90.00000..+90.00000]°
Dies ist ein gebräuchliches Koordinatenformat in GPX-Dateien (GPS).
longitudeDD REAL Längengrad in Grad mit Nachkommastellen (Einheit: Grad dezimal)
1
gültiger Wertebereich [-180.0000..+180.0000]°
modeDMS BOOL 1. Übergabeformat der Position in "Grad dezimal" über die Formalparameter "latitudeDD" und "longitudeDD"
1. Übergabeformat der Position in Richtung, Grad, Minuten und Sekunden über die Formalparameter "latitudeDMS" und "longitudeDMS"
latitudeDMS LGF_typeAstroDMS Breitengrad in Himmelsrichtung; Grad; Minuten und Sekunden im PLC-Datentyp "LGF_typeAstroDMS". gültige Parameterwerte [N,S]; [0..90]; [0..59]; [0..59] gültiger Wertebereich (Summe Parameterwerte) [N, S, n, s]; [0..90]°
Dies ist ein gebräuchliches Koordinatenformat in der Navigation mit Karten.
longitudeDMS LGF_typeAstroDMS Längengrad in Richtung; Grad; Minuten und Sekunden im PLC-
Datentyp "LGF_typeAstroDMS". gültige Parameterwerte [E, W]; [0..180]; [0..59]; [0..59] gültiger Wertebereich (Summe Parameterwerte) [E, W, e, w]; [0..180]°
Der Buchstabe für Osten wird international mit "E" (East) angegeben.
offsetSunrise TIME Offset des Einschaltzeitpunktes für "daytime"
offsetSunset TIME Offset des Ausschaltzeitpunktes für "daytime"
Ausgangsparameter
Tabelle 3-4: Ausgangsparameter
Parameter Datentyp Beschreibung
sunrise DTL Sonnenaufgang am angegebenen Ort unter Berücksichtigung des "offsetSunrise"
sunset DTL Sonnenuntergang am angegebenen Ort unter Berücksichtigung des "offsetSunset"
daytime BOOL Liegt die Lokalzeit der Steuerung zwischen "sunrise" und "sunset" liefert "daytime" den Wert "TRUE".
actSystemTime DTL Aktuelle Systemzeit (UTC)
actLocalTime DTL Aktuelle Lokalzeit
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 16
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-5: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8200 Falsche Richtungsangabe an Eingang "latitudeDMS.dir"
Es sind nur folgende Buchstaben erlaubt: N, n, S, s, W, w, E, e
1 16#8201 Falsche Werte bei "latitiudeDMS" Kontrollieren Sie die Werte bei
"latitudeDMS.deg"
"latitudeDMS.min"
"latitudeDMS.sec"
1 16#8202 Falsche Richtungsangabe bei "longitudeDMS.dir"
Es sind nur folgende Buchstaben erlaubt: N, n, S, s, W, w, E, e
1 16#8203 Falsche Werte bei "longitudeDMS" Kontrollieren Sie die Werte bei
"longitudeDMS.deg"
"longitudeDMS.min"
"longitudeDMS.sec"
1 16#8204 Falscher Wert an Eingang "latitudeDD"
Prüfen Sie den Aktualwert am Eingang.
1 16#8205 Falscher Wert an Eingang "longitudeDD"
Prüfen Sie den Aktualwert am Eingang.
2 - Fehler/Status von unterlagerten Baustein "RD_SYS_T".
-
3 - Fehler/Status von unterlagerten Baustein "RD_LOC_T".
-
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Wenn Prozesse in Abhängigkeit vom Wechsel zwischen Tag und Nacht automatisiert ablaufen sollen, wird die Funktion einer astronomischen Uhr benötigt. Beispiele dafür wären das Ein- und Ausschalten einer Außenbeleuchtung oder das Öffnen und Schließen von Rollläden.
Sollen diese Prozesse zeitversetzt, also eine definierte Zeit vor oder nach Sonnnenauf- oder Sonnenuntergang, ausgeführt werden, wird jeweils noch ein Offset benötigt.
Hinweis Für eine exakte Ausführung der Funktion, muss gewährleistet sein, dass die Systemzeit und Lokalzeit der SIMATIC Steuerung richtig eingestellt ist.
Basierend auf der Systemzeit/Lokalzeit der SIMATIC Steuerung und den eingestellten Koordinaten berechnet der Baustein die Zeiten für Sonnenauf- und Sonnenuntergang. Die Offset-Zeiten werden zum Sonnenauf- und
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 17
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Sonnenuntergang hinzu gerechnet und an den Ausgängen "sunrise" und "sunset" ausgegeben. Liegt die Systemzeit der SIMATIC Steuerung zwischen diesen Werten, wird der Ausgang "daytime" auf den Wert "TRUE" gesetzt.
Hinweis Da sich die Zeiten für Sonnenauf- und Sonnenuntergang täglich verändern, kann es sein, dass der Ausgang "daytime" über einen längeren Zeitraum dauerhaft auf "TRUE" oder "FALSE" "stehen bleibt":
bei entsprechend großen Offsetwerten
bei einem Ort jenseits des Polarkreises
Die Eingabe der Koordinaten kann im Format "DMS" (mit PLC-Datentyp "LGF_typeAstroDMS") oder "Grad.Dezimal" angegeben werden.
Welches Format aktiv ist, wird mit dem Formalparameter "modeDMS" festgelegt (siehe Tabelle 3-3).
Die Eingabe der Koordinatenwerte wird auf gültige Werte geprüft. Bei ungültigen Werten wird ein entsprechender Fehlercode an "status" (siehe Tabelle 3-5) ausgegeben.
Liegt an einem Formalparameter ein ungültiger Koordinatenwert vor und dieser Formalparameter wurde über "modeDMS" aktiviert, werden die Ausgänge "sunrise" und "sunset" auf den Wert DTL#1970-01-01-00:00:00 gesetzt.
Beispiel
Das folgende Beispiel verdeutlicht die Funktionsweise des Bausteins.
Tabelle 3-6: Geografische Koordinaten für Nürnberg-Moorenbrunn, Datum und Systemzeit
Längengrad: + 11.07675° bzw. E 11° 4' 36''
Breitengrad: + 49.45203° bzw. N 49° 27' 7''
Datum: 07.07.2016 Lokalzeit: 09:20 AM
Abbildung 3-6: FB LGF_Astro, Beobachtung des Bausteins online mit den Parametern sowie den Aktualparametern über die Beobachtungstabelle
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 18
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.1.2 FB LGF_SetTime
Kurzbeschreibung
Dieser Baustein fasst die Funktionen Systemzeit, Lokalzeit und Zeitzone einstellen zusammen.
Baustein
Abbildung 3-7: FB LGF_SetTime
FB LGF_SetTime
BOOL setSystemTimeUTC actSystemTime DTL
DTL systemTimeUTC actLocalTime DTL
BOOL setLocalTime lastSetTimeZone STRING
DTL localTime error BOOL
BOOL setTimeZone statusID UINT
INT timeZone status WORD
BOOL daylightSavingTime
Eingangsparameter
Tabelle 3-7: Eingangsparameter
Parameter Datentyp Beschreibung
setSystemTimeUTC BOOL Steigende Flanke setzt die definierte Systemzeit am Eingang "systemTimeUTC"
systemTimeUTC DTL Definierte Systemzeit, enspricht UTC (Coordinated Universal Time)
setLocalTime BOOL Steigende Flanke übernimmt die definierte Lokalzeit am Eingang "localTime"
localTime DTL Definierte Lokalzeit
setTimeZone BOOL Steigende Flanke übernimmt
den Wert am Eingang "timeZone"
den Wert am Eingang "daylightSavingTime"
timeZone INT Definierte Zeitzone (Format [+-HHMM]
Beispiele:
UTC -12:00 [-1200]
UTC -03:30 [-330]
UTC [0]
UTC +13:00 [1300]
daylightSavingTime BOOL TRUE: Sommerzeitumstellung aktiv (Lokalzeit + 60 min)
– von letzter Sonntag im März um 02:00 Uhr
– bis letzter Sonntag im Oktober um 03:00 Uhr
FALSE: keine Sommerzeitumstellung
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 19
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-8: Ausgangsparameter
Parameter Datentyp Beschreibung
systemTime DTL Aktuelle Systemzeit (UTC)
localTime DTL Aktuelle Lokalzeit
lastSetTimeZone STRING Zeitzone, die als letztes durch den Baustein gesetzt wurde
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-9: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8200 Es wurde keine gültige Zeitzone am Eingang "timeZone" übergeben.
Nur erlaubte Werte (siehe Funktionsweise) verwenden.
2 - Fehler/Status von unterlagerten Baustein "SET_TIMEZONE"
-
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Dieser Baustein fasst die Funktionen Systemzeit, Lokalzeit und Zeitzone einstellen zusammen.
Folgende Zeitzonen sind am Eingang "timeZone" möglich.
Eingang "timeZone"
Zeitzone
-1200 (UTC -12:00) Eniwetok, Kwajalein
-1100 (UTC -11:00) Midway Island
-1000 (UTC -10:00) Hawaii
-930 (UTC -09:30) (French) Polynesia
-900 (UTC -09:00) Alaska
-800 (UTC -08:00) Tijuana, Los Angeles, Seattle, Vancouver
-700 (UTC -07:00) Arizona, Denver, Salt Lake City, Calgary
-600 (UTC -06:00) Chicago, Dallas, Kansas City, Winnipeg
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 20
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Eingang "timeZone"
Zeitzone
-500 (UTC -05:00) Eastern Time (USA & Canada)
-400 (UTC -04:00) La Paz, Georgetown
-330 (UTC -03:30) Newfoundland
-300 (UTC -03:00) Brasilia, Buenos Aires
-200 (UTC -02:00) Mid-Atlantic
-100 (UTC -01:00) Azores, Cape Verde Is.
0 (UTC) Dublin, Edinburgh, Lisbon, London
100 (UTC +01:00) Berlin, Bern, Brussels, Rome, Stockholm, Vienna
200 (UTC +02:00) Athens, Istanbul, Minsk, Bucharest
300 (UTC +03:00) Baghdad, Kuwait, Riyadh
330 (UTC +03:30) Iran
400 (UTC +04:00) Moscow, St. Petersburg, Volgograd, Abu Dhabi, Muscat
430 (UTC +04:30) Afghanistan
500 (UTC +05:00) Islamabad, Karachi, Tashkent
530 (UTC +05:30) India, Sri Lanka
545 (UTC +05:45) India, Sri Lanka
600 (UTC +06:00) Astana, Almaty, Dhaka, Colombo
630 (UTC +06:30) Coco Island, Mayanmar
700 (UTC +07:00) Bangkok, Hanoi, Jakarta
800 (UTC +08:00) Beijing, Chongqing, Hong Kong, Urumqi
830 (UTC +08:30) North Corea
900 (UTC +09:00) Yakutsk, Osaka, Sapporo, Tokyo, Seoul
930 (UTC +09:30) Australia: Northern Territory, South Australia
1000 (UTC +10:00) Brisbane, Canberra, Melbourne, Sydney
1030 (UTC +10:30) Australia: Lord Howe Island
1100 (UTC +11:00) Vladivostok, Magadan, Solomon Is., New Caledonia
1200 (UTC +12:00) Auckland, Wellington
1245 (UTC +12:45) Chatham Islands
1300 (UTC +13:00) Kiribati
Hinweis Sommer-/Winterzeit
Die Parameter (Zeitunterschied, Beginn Sommerzeit, Beginn Winterzeit) können in der statischen Variablen "statTimeZone" angepasst werden.
Standardwerte der statischen Variablen "statTimeZone":
Zeitunterschied: 60 min
Beginn Sommerzeit: Letzter Sonntag im März, 02:00 a.m.
Beginn Winterzeit: letzter Sonntag im Oktober, 03:00 a.m.
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 21
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.1.3 FB LGF_TimerSwitch (Korrektur)
Kurzbeschreibung
Dieser Baustein ist eine Zeitschaltuhr. Es ist möglich tägliche, wöchentliche, monatliche, jährliche Zeitschaltpunkte und Zeitschaltpunkte für Werktage oder Wochenendtage festzulegen.
Baustein
Abbildung 3-8: FB LGF_TimerSwitch
FB LGF_TimerSwitch
USINT onMonth signal BOOL
USINT onDay actLocalTime DTL
USINT onWeekday error BOOL
USINT onWeekOfMonth statusID UINT
USINT onHour status WORD
USINT onMinute
USINT offMonth
USINT offDay
USINT offWeekday
USINT offWeekOfMonth
USINT offHour
USINT offMinute
USINT mode
Eingangsparameter
Tabelle 3-10: Eingangsparameter
Parameter Datentyp Beschreibung
onMonth USINT Monat, in dem das Signal gesetzt werden soll.
onDay USINT Tag, an dem das Signal gesetzt werden soll.
onWeekday USINT Wochentag, an dem das Signal gesetzt werden soll. (Sonntag = 1)
onHour USINT Stunde, in der das Signal gesetzt werden soll.
onMinute USINT Minute, in der das Signal gesetzt werden soll.
offMonth USINT Monat, in dem das Signal rückgesetzt werden soll.
offDay USINT Tag, an dem das Signal rückgesetzt werden soll.
offWeekday USINT Wochentag, an dem das Signal rückgesetzt werden soll. (Sonntag = 1)
offHour USINT Stunde, in der das Signal rückgesetzt werden soll.
offMinute USINT Minute, in der das Signal rückgesetzt werden soll.
mode USINT Angabe des Modus (siehe Funktionsweise).
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 22
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-11: Ausgangsparameter
Parameter Datentyp Beschreibung
signal BOOL Ausgabesignal
actLocalTime DTL Aktuelle Lokale Zeit
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-12: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8200 Es wurde kein gültiger Aktualwert an Eingang "mode" übergeben.
Erlaubte Werte "1", "2", "3" "4", "5", "6"
2 - Fehler/Status von unterlagerten Baustein "RD_LOC_T"
-
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Der Baustein bietet verschiedene Arten einer Zeitschaltuhr, die im Parameter "mode" bestimmt werden:
Tägliche Zeitschaltuhr (mode = 1)
Wöchentliche Zeitschaltuhr (mode = 2)
Monatliche Zeitschaltuhr (mode = 3)
Jährliche Zeitschaltuhr (mode = 4)
Werktags, Montag bis Freitag (mode = 5)
Wochenende, Samstag und Sonntag (mode = 6)
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 23
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Abhängig vom Modus müssen folgende Formalparameter beschaltet werden:
Tabelle 3-13: Benötigten Formalparameter für den jeweiligen Modus
Modus Benötigte Formalparameter
Tägliche Zeitschaltuhr
(mode = 1)
onHour / offHour
onMinute / offMinute
Wöchentlich Zeitschaltuhr
(mode = 2)
onWeekday / offWeekday
onHour / offHour
onMinute / offMinute
Monatliche Zeitschaltuhr
(mode = 3)
onDay / offDay
onHour / offHour
onMinute / offMinute
Jährliche Zeitschaltuhr
(mode = 4)
onMonth / offMonth
onDay / offDay
onHour / offHour
onMinute / offMinute
Werktags (mode = 5)
onHour / offHour
onMinute / offMinute
Wochenende (mode = 6)
onHour / offHour
onMinute / offMinute
Entspricht die eingestellte Startzeit der aktuellen Lokalzeit der Steuerung, wird der Ausgang "signal" auf "TRUE" gesetzt. Entspricht die eingestellte Abschaltzeit der aktuellen Lokalzeit der Steuerung, wird der Ausgang "signal" wieder zurückgesetzt.
Hinweis Beachten Sie, dass der Baustein in den Modi „Monatliche Zeitschaltuhr“ (mode = 3) oder „Jährliche Zeitschaltuhr“ (mode = 4) nur dann schaltet, wenn die Tage, die Sie an den Eingangsparametern „onDay“ und „offDay“ angeben, tatsächlich in diesem Monat vorkommen.
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 24
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.1.4 FC LGF_CalendarDayWeek
Kurzbeschreibung
Diese Funktion berechnet aus dem vorgegebenen Datum die Kalenderwoche und die Anzahl der Tage, die seit dem Anfang des Jahres vergangen sind.
Baustein
Abbildung 3-9: FC LGF_ CalendarDayWeek
FC LGF_ CalendarDayWeek
DTL inDate daysPassed DINT
BOOL modeEU weekNumber DINT
error BOOL
status WORD
Eingangsparameter
Tabelle 3-14: Eingangsparameter
Parameter Datentyp Beschreibung
inDate DTL Datum zur Berechnung der Kalenderwoche und der Tage seit dem 1. Januar.
modeEU BOOL Auswahl der Zählweise für Kalenderwochen.
0: Zählweise für die USA und viele anderen Länder
1: Zählweise für europäische Länder nach ISO 8601
Ausgangsparameter
Tabelle 3-15: Ausgangsparameter
Parameter Datentyp Beschreibung
daysPassed DINT Vergangene Tage seit 1.Januar.
weekNumber DINT Nummer der Kalenderwoche.
error BOOL Fehleranzeige.
0: kein Fehler.
1: Fehler im Baustein, "status" gibt Fehlercode aus.
status WORD "status" gibt den Status/Fehlercode aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-16: Status/Fehlercodes
Status Bedeutung Abhilfe
16#0000 Keine Fehler. -
16#8201 Datum am Eingang "inDate" zu unterhalb der unteren Grenze.
Wählen Sie "inDate" größer als 1971-01-01.
16#8202 Datum am Eingang "inDate" zu oberhalb der oberen Grenze.
Wählen Sie "inDate" kleiner als 2261-12-31.
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 25
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Für die Bestimmung der Kalenderwoche für das angegebene Datum stehen zwei Zählweisen zur Auswahl. Mit dem Eingang "modeEU" wählen Sie die Zählweise aus:
modeEU = 0: Zählweise für die USA und viele anderen Länder
modeEU = 1: Zählweise für europäische Länder nach ISO 8601
Zählweise für europäische Länder nach ISO 8601
Kalenderwochen haben 7 Tage, beginnen an einem Montag und werden über das Jahr fortlaufend gezählt
Die Kalenderwoche 1 eines Jahres ist diejenige, die den ersten Donnerstag enthält.
Jedes Jahr hat entweder 52 oder 53 Kalenderwochen.
Ein Jahr hat 53 Kalenderwochen, wenn folgende Eigenschaften zutreffen:
– Ein Gemeinjahr beginnt an einem Donnerstag und endet an einem Donnerstag.
– Ein Schaltjahr beginnt entweder an einem Mittwoch und endet an einem Donnerstag oder es beginnt an einem Donnerstag und endet an einem Freitag.
Der 29., 30. und 31. Dezember können schon zur Kalenderwoche 1 des Folgejahres gehören.
Der 1., 2. und 3. Januar können noch zu der letzten Kalenderwoche des Vorjahres gehören.
Zählweise für die USA und viele anderen Länder
Kalenderwochen haben 7 Tage, beginnen an einem Sonntag und werden über das Jahr fortlaufend gezählt
Die Kalenderwoche 1 eines Jahres ist diejenige, die den 1. Januar enthält.
Jedes Jahr hat entweder 52 oder 53 Kalenderwochen.
Ein Jahr hat 53 Kalenderwochen, wenn folgende Eigenschaften zutreffen:
– Ein Gemeinjahr beginnt an einem Samstag und endet an einem Samstag.
– Ein Schaltjahr beginnt entweder an einem Samstag und endet an einem Sonntag oder es beginnt an einem Freitag und endet an einem Samstag.
Die Tage nach dem letzten Dezembersamstag können bereits zur ersten Kalenderwoche des Folgejahres gehören.
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 26
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.1.5 FC LGF_GermanHoliday (NEU)
Kurzbeschreibung
Der FC LGF_GermanHoliday ermittelt, ob ein gegebenes Datum ein Feiertag ist. Es werden alle Feiertage in Deutschland berücksichtigt. Feiertage, die bundesweit nicht einheitlich sind, können ein- und ausgeschalten werden.
Baustein
Abbildung 3-10: FB LGF_GermanHoliday
FC LGF_GermanHoliday
DTL date Ret_Val BOOL
BOOL threeKings
BOOL roseMonday
BOOL ascension
BOOL corpusChristi
BOOL augsburgerFriedensfest
BOOL assumptionOfMary
BOOL reformationDay
BOOL allSaintDay
BOOL bussUndBettag
Eingangsparameter
Tabelle-17: Eingangsparameter
Parameter Datentyp Beschreibung
date DTL Datum, das auf einen Feiertag überprüft wird.
threeKings BOOL Heilige Drei Könige
roseMonday BOOL Rosenmontag
ascension BOOL Christi Himmelfahrt
corpusChristi BOOL Fronleichnam
augsburgerFriedensfest BOOL Augsburger Friedensfest
assumptionOfMary BOOL Mariä Himmelfahrt
refomationDay BOOL Reformationstag
allSaintDay BOOL Allerheiligen
bussUndBettag BOOL Buß- und Bettag
Ausgangsparameter
Tabelle 3: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val BOOL Bei TRUE ist das Datum am Eingangsparameter "date" ein Feiertag.
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 27
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein berechnet für ein gegebenes Datum den Feiertagskalender des Jahres und zeigt an, ob das gegebene Datum ein Feiertag ist. Optional werden nicht bundesweit einheitliche Feiertage, wie z. B. Heilige Drei Könige, über die entsprechenden Eingangsparameter im Baustein berücksichtigt.
3 Erläuterung der Bausteine
3.2 Counter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 28
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.2 Counter operations
3.2.1 FC LGF_CountFalInDWord
Kurzbeschreibung
Dieser Baustein analysiert eine Variable von Typ DWORD und gibt aus, wie oft in der Variablen eine 1-0 Abfolge (fallende Flanke) vorkommt.
Anwendungsbeispiel
Auszug aus dem Handbuch des Technologiemodul TM Timer DIDQ 16x24V
Mit der Funktion Oversampling erfasst das Technologiemodul den Zustand des jeweiligen Digitaleingangs pro Applikationszyklus (z. B. OB61) zu 32 Zeitpunkten mit gleichmäßigem zeitlichen Abstand. Die 32 Zustände werden in der Rückmeldeschnittstelle gemeinsam als 32-Bit-Wert zurückgeliefert.
Abbildung 3-11: Beispiel für ein Oversampling von DI0 am TM Timer DIDQ 16x24V
Der Baustein LGF_CountFalInDWord wird in diesem Fall verwendet um zu zählen, wie oft eine fallende Flanke vorkommt.
SIMATIC ET 200MP/S7-1500 Technologiemodul TM Timer DIDQ 16x24V (6ES7552-1AA00-0AB0)
https://support.industry.siemens.com/cs/ww/de/view/95153313
Baustein
Abbildung 3-12: FC LGF_CountFalInDWord
FC LGF_CountFalInDWord
DWORD dWordActCycle Ret_Val INT
DWORD dWordPrevCycle
Eingangsparameter
Tabelle 3-18: Eingangsparameter
Parameter Datentyp Beschreibung
dWordActCycle DWORD Doppelwort in dem die fallenden Flanken gezählt werden
dWordPrevCycle DWORD Doppelwort aus dem vorherigen Zyklus
3 Erläuterung der Bausteine
3.2 Counter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 29
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-19: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val INT Anzahl der fallenden Flanken im Doppelwort
Funktionsweise
Der Baustein zählt in einer Variablen vom Datentyp DWORD die fallenden Flanken (1-0 Übergänge) von links nach rechts. Der Ausgang "Ret_Val" gibt dabei die Anzahl der fallenden Flanken aus.
Damit auch fallende Flanken an Variablengrenze erkannt werden, muss der Eingang "dWordPrevCycle" mit der Variablen des vorherigen Zyklus beschalten werden.
Beispiel
Das folgende Beispiel verdeutlicht die Funktionsweise des Bausteins. In diesem Fall geht man davon aus, dass ein Signal von unbekannter Länge kontinuierlich in Form von Doppelwörtern (DWORD) pro Zyklus abgetastet wird.
Innerhalb dieses Signals sollen kontinuierlich die 1-0 Abfolgen (fallenden Flanken) gezählt und ausgegeben werden. Damit auch - wie in diesem Beispiel - die fallende Flanke an Variablengrenzen erkannt werden, muss der Eingang "dWordPrevCycle" mit dem Doppelwort der vorherigen Abtastung verschaltet werden.
Tabelle 3-20: Beispiel
DWORD vorheriger Zyklus (dWordPrevCycle)
DWORD aktueller Zyklus (dWordActCycle)
1001_0000_0001_1010_1001_0000_0001_1011 0010_1010_0001_1111_0100_0011_1000_0101
Anzahl der 1-0 Abfolgen (fallenden Flanken): "Ret_Val" = 8
3 Erläuterung der Bausteine
3.2 Counter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 30
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.2.2 FC LGF_CountRisInDWord
Kurzbeschreibung
Dieser Baustein analysiert eine Variable von Typ DWORD und gibt aus, wie oft in der Variablen eine 0-1 Abfolge (steigende Flanke) vorkommt.
Anwendungsbeispiel:
Auszug aus dem Handbuch des Technologiemodul TM Timer DIDQ 16x24V:
Mit der Funktion Oversampling erfasst das Technologiemodul den Zustand des jeweiligen Digitaleingangs pro Applikationszyklus (z. B. OB61) zu 32 Zeitpunkten mit gleichmäßigem zeitlichen Abstand. Die 32 Zustände werden in der Rückmeldeschnittstelle gemeinsam als 32-Bit-Wert zurückgeliefert.
Abbildung 3-13: Beispiel für ein Oversampling von DI0 am TM Timer DIDQ 16x24V
Der Baustein LGF_CountRisInDWord wird in diesem Fall verwendet, um zu zählen, wie oft eine steigende Flanke vorkommt.
SIMATIC ET 200MP/S7-1500 Technologiemodul TM Timer DIDQ 16x24V (6ES7552-1AA00-0AB0)
https://support.industry.siemens.com/cs/ww/de/view/95153313
Baustein
Abbildung 3-14: FC LGF_CountRisInDWord
FC LGF_CountRisInDWord
DWORD dWordActCycle Ret_Val INT
DWORD dWordPrevCycle
Eingangsparameter
Tabelle 3-21: Eingangsparameter
Parameter Datentyp Beschreibung
dWordActCycle DWORD Doppelwort in dem die steigenden Flanken gezählt werden
dWordPrevCycle DWORD Doppelwort aus dem vorherigen Zyklus
3 Erläuterung der Bausteine
3.2 Counter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 31
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-22: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val INT Anzahl der steigenden Flanken im Doppelwort
Funktionsweise
Der Baustein zählt in einer Variablen vom Datentyp DWORD die steigenden Flanken (0-1 Übergänge) von links nach rechts. Der Ausgang "Ret_Val" gibt dabei die Anzahl der steigenden Flanken aus.
Damit auch steigende Flanken an Variablengrenzen erkannt werden, muss der Eingang "dWordPrevCycle" mit der Variablen des vorherigen Zyklus beschalten werden.
Beispiel
Das folgende Beispiel verdeutlicht die Funktionsweise des Bausteins. In diesem Fall geht man davon aus, dass ein Signal von unbekannter Länge kontinuierlich in Form von Doppelwörtern (DWORD) pro Zyklus abgetastet wird.
Innerhalb dieses Signals sollen kontinuierlich die 0-1 Abfolgen (steigenden Flanken) gezählt und ausgegeben werden. Damit auch - wie in diesem Beispiel - die steigende Flanke an Variablengrenzen erkannt werden, muss der Eingang "dWordPrevCycle" mit dem Doppelwort der vorherigen Abtastung verschaltet werden.
Tabelle 3-23: Beispiel
DWORD vorheriger Zyklus (dWordPrevCycle)
DWORD aktueller Zyklus (dWordActCycle)
1001_0000_0001_1010_1001_0000_0001_1010 1010_1010_0001_1111_0100_0011_1000_0101
Anzahl der 0-1 Abfolgen (steigende Flanken): "Ret_Val" = 9
3 Erläuterung der Bausteine
3.3 Comperator operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 32
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.3 Comperator operations
3.3.1 FC LGF_CompareVariant
Kurzbeschreibung
Dieser Baustein vergleicht zwei strukturierte (Array, PLC Datentyp) Aktualparameter und gibt aus, ob sie dem gleichen Typ entsprechen und gleiche Werte haben.
Baustein
Abbildung 3-15: FC LGF_CompareVariant
FC LGF_CompareVariant
VARIANT variable1 (InOut) Ret_Val BOOL
VARIANT variable2 (InOut) error BOOL
statusID UINT
status WORD
Ein-/Ausgangsparameter (InOut)
Tabelle 3-24: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
variable1 VARIANT Vergleichsvariable mit beliebigen Datentyp
variable2 VARIANT Vergleichsvariable mit beliebigen Datentyp
Ausgangsparameter
Tabelle 3-25: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val BOOL 0: Werte der Vergleichsvariablen oder PLC Datentypen sind unterschiedlich.
1: Werte der Vergleichsvariablen sind gleich und PLC Datentypen sind identisch.
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
3 Erläuterung der Bausteine
3.3 Comperator operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 33
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-26: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
Funktionsweise
Dieser Baustein vergleicht zwei (strukturierte) Aktualparameter und gibt aus, ob sie dem gleichen Wert entsprechen.
Hinweis Folgende Unterschiede können mit der Vergleichsmethode (Bytelevel) nicht erkannt werden:
Variablen vom Datentyp "Struct" können nicht verglichen werden.
Bei Strings können im Bereich zwischen tatsächlicher Länge und Maximallänge Unterschiede vorhanden sein.
Bei REAL Zahlen in der Struktur kann auch bei "gleichen" Variablen eine Ungleichheit angezeigt werden.
Variablen vom Typ "ARRAY of BOOL" können mit der Funktion nicht auf Gleichheit geprüft werden, da die verwendete Anweisung "CountOfElements" auch die Füllelemente mitzählt (z.B. bei einem ARRAY[0..1] of BOOL wird 8 zurückgegeben).
3 Erläuterung der Bausteine
3.3 Comperator operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 34
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.3.2 FC LGF_CompareReal
Kurzbeschreibung
Diese Funktion überprüft über eine Näherungsformel zwei REAL-Zahlen auf ihre Gleichheit.
Baustein
Abbildung 3-16: FC LGF_CompareReal
FC LGF_CompareReal
REAL valueA Ret_Val BOOL
REAL valueB error BOOL
status WORD
Eingangsparameter
Tabelle 3-27: Eingangsparameter
Parameter Datentyp Beschreibung
valueA REAL Zahl, die verglichen werden soll.
valueB REAL Zahl, die verglichen werden soll.
Ausgangsparameter
Tabelle 3-28: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val BOOL 0: ungleich
1: gleich
error BOOL Fehleranzeige.
0: kein Fehler.
1: Fehler im Baustein, "status" gibt Fehlercode aus.
status WORD "status" gibt den Status/Fehlercode aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-29: Status/Fehlercodes
Status Bedeutung Abhilfe
16#0000 Keine Fehler. -
16#8601 |valueA|+|valueB| überschreitet den maximalen Wertebereich einer REAL-Zahl.
|valueA|+|valueB| muss kleiner
+3,402823 ∗ 1038 sein.
Funktionsweise
Mit einer Näherungsformel werden zwei REAL-Zahlen "valueA" und "valueB" auf die Gleichheit überprüft. Damit der Vergleich unabhängig von der Größe der Zahlen funktioniert, wird das Verhältnis der beiden Zahlen überprüft.
Näherungsformel
|𝑣𝑎𝑙𝑢𝑒𝐴 − 𝑣𝑎𝑙𝑢𝑒𝐵|
|𝑣𝑎𝑙𝑢𝑒𝐴| + |𝑣𝑎𝑙𝑢𝑒𝐵|≤ 𝐸𝑃𝑆𝐼𝐿𝑂𝑁
3 Erläuterung der Bausteine
3.3 Comperator operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 35
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Zwei REAL-Zahlen werden als gleich gewertet, wenn das Verhältnis der Differenz
zur Summe der beiden Zahlen kleiner oder gleich 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 ist.
Der Wert von 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 gibt die Genauigkeit vor, mit der die zwei Zahlen als gleich
gewertet werden. 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 ist in der Funktion als eine Konstante mit dem Wert
1,0 ∙ 10−6 definiert.
Um eine Division durch Null zu vermeiden, ist die Näherungsformel in der Funktion umgestellt:
|𝑣𝑎𝑙𝑢𝑒𝐴 − 𝑣𝑎𝑙𝑢𝑒𝐵| ≤ 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 ∗ (|𝑣𝑎𝑙𝑢𝑒𝐴| + |𝑣𝑎𝑙𝑢𝑒𝐵|)
Folgende Tabelle zeigt zwei Beispiele zur Verdeutlichung der Funktionsweise.
Tabelle 3-30
Beispiel 1 Beispiel 2
|𝑣𝑎𝑙𝑢𝑒𝐴| + |𝑣𝑎𝑙𝑢𝑒𝐵| 5 5.000.000
𝐸𝑃𝑆𝐼𝐿𝑂𝑁 1,0 ∙ 10−6
Maximale Differenz von "𝑣𝑎𝑙𝑢𝑒𝐴" und "𝑣𝑎𝑙𝑢𝑒𝐵", bei der die zwei Zahlen noch als gleich gewertet werden.
0,000005 5
Hinweis Wenn Sie für Ihren Anwendungsfall eine andere Genauigkeit bei der Bewertung des Verhältnisses der Zahlen benötigen, passen Sie in der Funktion die Konstante 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 an Ihre Anforderung an.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 36
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4 Math operations
3.4.1 FC LGF_AverageAndDeviation
Kurzbeschreibung
Dieser Baustein ermittelt aus einer Reihe von Zahlen das arithmetische Mittel und die Standardabweichung.
Baustein
Abbildung 3-17: FC LGF_AverageAndDeviation
FC LGF_AverageAndDeviation
VARIANT variableArray arithmeticAverage REAL
standardDeviation REAL
error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-31: Eingangsparameter
Parameter Datentyp Beschreibung
variableArray VARIANT Zahlenreihe, mit der gerechnet werden soll
Ausgangsparameter
Tabelle 3-32: Ausgangsparameter
Parameter Datentyp Beschreibung
arithmeticAverage REAL Arithmetischer Mittelwert
standardDeviation REAL Standardabweichung
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 37
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-33: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8200 Am Eingang "variableArray" ist der Aktualparameter kein Array.
-
1 16#8201 Der Datentype der Arrayelemente wird nicht unterstützt (siehe Funktionsweise).
-
2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT".
-
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Über den Eingang "variableArray" wird ein Array beliebiger Größe angeschlossen. Nach einer Datentypabfrage im Baustein, wird aus den Werten der arithmetische Mittelwert berechnet und die Standardabweichung berechnet und beides ausgegeben.
Hinweis Ein Array mit zu vielen Elementen kann zu einem Überschreiten der Zyklusüberwachungszeit führen.
Hinweis Hinweis: Es werden nur die Datentypen Int, UInt, DInt, UDInt, USInt, SInt und Real unterstützt.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 38
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.2 FB LGF_FloatingAverage
Kurzbeschreibung
Dieser Baustein berechnet aus REAL-Werten einen gleitenden arithmetischen Mittelwert. Diese Methode kann zur Glättung von Datenreihen verwendet werden. Die Werte können zyklisch oder getriggert eingelesen werden.
Baustein
Abbildung 3-18: LGF_FloatingAverage
FB LGF_FloatingAverage
REAL value average LREAL
INT mode windowSizeReached BOOL
INT windowSize error BOOL
BOOL trigger status WORD
BOOL reset
Eingangsparameter
Tabelle 3-34: Eingangsparameter
Parameter Datentyp Beschreibung
value REAL Werte, aus welchen der gleitende Mittelwert bestimmt werden soll.
mode INT Auswahl des Modus (siehe Funktionsweise); Standardwert: mode=1.
windowsSize INT Fensterlänge für die gleitende Mittelung im Bereich von 1..100
Der Standardwert liegt bei 100.
trigger BOOL Trigger-Variable, Impuls
reset BOOL Der Baustein wird zurückgesetzt und die Berechnung beginnt erneut.
Hinweis Der Baustein "LGF_FloatingAverage" führt keine Datentypabfrage für den Eingangsparameter "value" durch. Bei anderen Datentypen als REAL wird entweder automatisch eine implizite Konvertierung durchgeführt oder ein Fehler beim Übersetzen generiert.
Weitere Informationen finden Sie im Kapitel "Übersicht über die Datentypkonvertierung" in der Online Hilfe des TIA Portals oder unter:
https://support.industry.siemens.com/cs/ww/de/view/109011420/58427923211
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 39
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-35: Ausgangsparameter
Parameter Datentyp Beschreibung
average LREAL Gleitender Mittelwert
windowSizeReached BOOL 0: maximale noch nicht Fensterbreite erreicht
1: maximale Fensterbreite erreicht
error BOOL 0: keine Fehler
1: Fehler im Baustein
status WORD Status/Fehler-Code (siehe folgende Tabelle)
Status- und Fehleranzeigen
Tabelle 3-36: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Keine Fehler -
16#8201 Kein Modus ausgewählt Wählen Sie einen Modus (1 oder 2).
16#8202 Keine korrekte Fensterbreite Stellen Sie einen Wert zwischen 1 und 100 ein.
Funktionsweise
Der Baustein berechnet den (gleitenden) Mittelwert anhand der eingestellten Fensterbreite. Die Fensterbreite gibt die maximale Anzahl der zuletzt eingelesenen Werte an. Nachdem die maximale Anzahl an Werten eingelesen wurde, wird der Ausgang "windowSizeReached" gesetzt und jeder neu eingelesene Wert ersetzt den jeweils ältesten Wert (FIFO-Prinzip).
Für das Einlesen der Werte stehen zwei Modi zur Verfügung, die mit dem Parameter "mode" festgelegt werden:
mode = 1: Einlesen bei jedem Impuls am Eingang "trigger"
mode = 2: Zyklisches Einlesen
Der Baustein wird aktiviert, sobald Sie einen Modus ausgewählt haben. Zwischen den Modi kann im Betrieb gewechselt werden.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 40
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.3 FC LGF_MatrixAddition
Kurzbeschreibung
Dieser Baustein addiert zwei gleich große Matrizen vom Datentyp ARRAY of REAL.
Baustein
Abbildung 3-19: FC LGF_MatrixAddition
FC LGF_MatrixAddition
ARRAY of REAL matrix1 matrixResult ARRAY of REAL
ARRAY of REAL matrix2 error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-37: Eingangsparameter
Parameter Datentyp Beschreibung
matrix1 ARRAY of REAL Erster Summand (Matrix)
matrix2 ARRAY of REAL Zweiter Summand (Matrix)
Ausgangsparameter
Tabelle 3-38: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL Summe (Matrix)
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-39: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Keine Fehler -
1 16#8200 Untere Grenzen der Arrays sind unterschiedlich.
Alle Arrays müssen die gleiche untere Grenze haben, z. B. : Array[0..2, 0..2] of Real
1 16#8201 Obere Grenzen der Arrays sind unterschiedlich.
Alle Arrays müssen die gleiche obere Grenze haben, z. B. : Array[0..2, 0..2] of Real
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 41
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein addiert zwei Matrizen gleicher Größe. Die einzelnen Felder der zwei eingehenden Matrizen werden gelesen, addiert und anschließend in der Matrix "matrixResult" ausgegeben.
Hinweis Beachten Sie, dass alle Ein- und Ausgangsmatrizen die gleiche untere und obere Grenze und somit die gleiche Anzahl an Spalten und Reihen haben müssen.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 42
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.4 FC LGF_MatrixInverse
Kurzbeschreibung
Dieser Baustein invertiert eine quadratische Matrix vom Datentyp ARRAY of REAL.
Baustein
Abbildung 3-20: FC LGF_MatrixInverse
FC LGF_MatrixInverse
ARRAY of REAL matrix matrixResult ARRAY of REAL
error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-40: Eingangsparameter
Parameter Datentyp Beschreibung
matrix ARRAY of REAL Eingangsmatrix
Ausgangsparameter
Tabelle 3-41: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL Invertierte Matrix
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-42: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Keine Fehler -
1 16#8200 Untere Grenzen der Arrays sind unterschiedlich.
Alle Arrays müssen die gleiche untere Grenze haben, z. B. : Array[0..2, 0..2] of Real
1 16#8201 Obere Grenzen der Arrays sind unterschiedlich.
Alle Arrays müssen die gleiche obere Grenze haben, z. B. : Array[0..2, 0..2] of Real
1 16#8202 Eingangsmatrix ist nicht quadratisch. Die Anzahl der Zeilen muss gleich der Anzahl der Spalten sein.
1 16#8203 Anwendung des Algorithmus für die Eingangsmatrix nicht möglich.
Erstes Element (a1,1) der Eingangsmatrix darf nicht Null sein.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 43
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein invertiert eine quadratische Matrix beliebiger Größe nach dem Shipley-Coleman Verfahren.
Hinweis Beachten Sie, dass die Eingangsmatrix quadratisch sein muss. Dies bedeutet, die Anzahl der Zeilen muss gleich der Anzahl der Spalten sein.
Die Ausgangsmatrix muss genauso groß sein und die gleichen Array-Grenzen haben, wie die Eingangsmatrix.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 44
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.5 FC LGF_MatrixMultiplication
Kurzbeschreibung
Dieser Baustein multipliziert zwei Matrizen vom Datentyp Array of REAL.
Baustein
Abbildung 3-21: FC LGF_MatrixMultiplication
FC LGF_MatrixMultiplication
ARRAY of REAL matrix1 matrixResult ARRAY of REAL
ARRAY of REAL matrix2 error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-43: Eingangsparameter
Parameter Datentyp Beschreibung
matrix1 ARRAY of REAL Erster Faktor: Zu multiplizierende Matrix
matrix2 ARRAY of REAL Zweiter Faktor: Zu multiplizierende Matrix
Hinweis Neu ab V2.0.0 Die Eingangsparameter "rows1", "columns1", "rows2" und "columns2" werden bei dieser Version des Bausteins nicht mehr benötigt, da hier die variablen Grenzen von Array[*,*] mit den Anweisungen "LOWER_BOUND" und "UPPER_BOUND" abgefragt werden.
Ausgangsparameter
Tabelle 3-44: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL Produkt: Die resultierende Matrix
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 45
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-45: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Keine Fehler -
1 16#8200 Die Anzahl der Spalten der ersten Matrix entspricht nicht der Anzahl der Zeilen der zweiten Matrix.
Die Grenzen der Arrays müssen ebenfalls identisch sein.
1 16#8201 Größe der Ausgangsmatrix (m x n) entspricht nicht der Anzahl der Zeilen (m) der "matrix1" und Anzahl der Spalten (n) der "matrix2".
Die Grenzen der Arrays müssen ebenfalls identisch sein.
Funktionsweise
Der Baustein multipliziert zwei Matrizen variabler Größe. Die einzelnen Elemente der zwei eingehenden Matrizen werden gelesen, multipliziert und anschließend in der "matrixResult"-Matrix ausgegeben.
Hinweis Beachten Sie, dass die Anzahl der Spalten der ersten Matrix gleich der Anzahl der Zeilen der zweiten Matrix sein muss.
Die Größe der Ausgangsmatrix (m * n) ergibt sich aus der Anzahl der Zeilen (m) der "matrix1" und Anzahl der Spalten (n) der "matrix2".
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 46
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.6 FC LGF_MatrixSubtraction
Kurzbeschreibung
Dieser Baustein subtrahiert eine Matrix vom Datentyp ARRAY of REAL von einer anderen.
Baustein
Abbildung 3-22: FC LGF_MatrixSubtraction
FC LGF_MatrixSubtraction
ARRAY of REAL matrix1 matrixResult ARRAY of REAL
ARRAY of REAL matrix2 error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-46: Eingangsparameter
Parameter Datentyp Beschreibung
matrix1 ARRAY of REAL Minuend: Von dieser Matrix wird "matrix2" subtrahiert.
matrix2 ARRAY of REAL Subtrahend: Diese Matrix wird von "matrix1" subtrahiert.
Ausgangsparameter
Tabelle 3-47: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL Differenz: Die resultierende Matrix
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-48: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Keine Fehler -
1 16#8200 Untere Grenzen der Arrays sind unterschiedlich.
Alle Arrays müssen die gleiche untere Grenze haben, z. B. : Array[0..2, 0..2] of Real
1 16#8201 Obere Grenzen der Arrays sind unterschiedlich.
Alle Arrays müssen die gleiche obere Grenze haben, z. B. : Array[0..2, 0..2] of Real
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 47
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein subtrahiert zwei Matrizen variabler Größe. Die einzelnen Felder der zwei Matrizen werden gelesen, subtrahiert und anschließend in der Matrix "matrixResult" ausgegeben.
Hinweis Beachten Sie, dass alle Ein- und Ausgangsmatrizen die gleiche Anzahl an Spalten und Zeilen haben müssen.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 48
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.7 FC LGF_MatrixTranspose
Kurzbeschreibung
Dieser Baustein transponiert eine Matrix vom Datentyp ARRAY of REAL.
Bedingung: Eingangsmatrix (m x n) = Ausgangsmatrix (n x m)
Baustein
Abbildung 3-23: FC LGF_MatrixTranspose
FC LGF_MatrixTranspose
ARRAY of REAL matrix matrixResult ARRAY of REAL
error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-49: Eingangsparameter
Parameter Datentyp Beschreibung
matrix ARRAY of REAL zu transponierende Matrix
Hinweis Neu ab V2.0.0 Die Eingangsparameter "rows" und "columns" werden bei dieser Version des Bausteins nicht mehr benötigt, da hier die variablen Grenzen von Array[*,*] mit den Anweisungen "LOWER_BOUND" und "UPPER_BOUND" abgefragt werden.
Ausgangsparameter
Tabelle 3-50: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL resultierende Matrix
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-51: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Keine Fehler -
1 16#8200 Untere Grenzen der Arrays sind unterschiedlich.
Alle Arrays müssen die gleiche untere Grenze haben, z. B. : Array[0..2, 0..2] of Real
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 49
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
statusID status Bedeutung Abhilfe / Hinweise
1 16#8201 Obere Grenzen der Arrays sind unterschiedlich.
Alle Arrays müssen die gleiche obere Grenze haben, z. B. : Array[0..2, 0..2] of Real
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 50
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.8 FB LGF_MinMaxHistory
Kurzbeschreibung
Dieser Baustein liest bei jedem Aufruf einen Wert einer Variablen ein und gibt den maximalen und minimalen Wert aus, der seit dem ersten Aufruf eingelesen wurde.
Die Auswertung kann bei Bedarf zurückgesetzt werden. Der Baustein unterstützt den Datentyp LREAL.
Baustein
Abbildung 3-24: FB LGF_MinMaxHistory
FB LGF_MinMaxHistory
LREAL variable minValue LREAL
BOOL reset maxValue LREAL
Eingangsparameter
Tabelle 3-52: Eingangsparameter
Parameter Datentyp Beschreibung
variable LREAL Variable dessen Wert auf Minimum und Maximum geprüft wird.
reset BOOL Der Baustein wird zurückgesetzt und die Auswertung beginnt von vorne.
Ausgangsparameter
Tabelle 3-53: Ausgangsparameter
Parameter Datentyp Beschreibung
minValue LREAL Minimaler Wert seit erstem Aufruf oder seit Aktivierung des Eingangs "reset".
maxValue LREAL ‚Maximaler Werte seit erstem Aufruf oder seit Aktivierung des Eingangs "reset".
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 51
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.9 FC LGF_RandomBasic
Kurzbeschreibung
Diese Funktion generiert bei jedem Aufruf einen zufälligen Wert zwischen 0.0 und 1.0. Die Zufallszahl hat den Datentyp REAL.
Baustein
Abbildung 3-25: FC LGF_RandomBasic
FC LGF_RandomBasic
Ret_Val REAL
Ausgangsparameter
Tabelle 3-54: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val REAL Zufallszahl
Funktionsweise
Die Funktion generiert zufällige Werte im Bereich 0.0 ≤ Ret_Val ≤ 1.0.
Hintergrundinformation
Der Zufallswert wird aus den Nanosekunden der aktuellen Systemzeit der CPU gebildet. Dabei wird die Bytereihenfolge dieses Wertes invertiert und anschließend in eine normierte Gleitkommazahl ungewandelt.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 52
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.10 FC LGF_RandomINT / LGF_RandomReal
Kurzbeschreibung
Dieser Baustein generiert pro Aufruf einen "zufälligen" Wert zwischen einem definierten Max- und Minwert. Die Zufallszahl hat den Datentyp INT / REAL.
Baustein
Abbildung 3-26: FC LGF_RandomINT / FC LGF_RandomReal
FC LGF_Random…
INT / REAL maxValue Ret_Val INT / REAL
INT / REAL minValue error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-55: Eingangsparameter
Parameter Datentyp Beschreibung
maxValue INT / REAL Definiert den oberen Grenzwert der Zufallszahl.
minValue INT / REAL Definiert den unteren Grenzwert der Zufallszahl.
Ausgangsparameter
Tabelle 3-56: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val INT / REAL Zufallszahl
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-57: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8200 "minValue" ist größer als "maxValue". -
2 - Fehler/Status von unterlagerten Baustein "RD_SYS_T".
-
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 53
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Der Baustein generiert zufällige Werte, die zwischen dem angegebenen "minValue"-Wert und "maxValue"-Wert liegen. Dieser zufällige Wert wird über den "Ret_Val" ausgegeben.
Hintergrundinformation
Der Zufallswert wird aus den Nanosekunden der aktuellen Systemzeit der CPU gebildet. Dabei wird die Bytereihenfolge dieses Wertes invertiert und anschließend in eine normierte Gleitkommazahl ungewandelt.
Hinweis Wenn kein Max- und Minwert (= 0) festgelegt wird, gibt der Baustein zufällige Werte über den gesamten Wertebereich von INT / REAL aus.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 54
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.11 FC LGF_SearchMinMax
Kurzbeschreibung
Dieser Baustein sucht in einem Array den Maximal und Minimalwert sowie den jeweiligen Index im Array.
Folgende Datentypen der Array-Elemente werden unterstützt: Int, DInt, UInt, UDInt, USInt, SInt und Real.
Baustein
Abbildung 3-27: FC LGF_SearchMinMax
FC LGF_SearchMinMax
VARIANT variableArray min VARIANT
minArrayIndex INT
max VARIANT
maxArrayIndex INT
error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-58: Eingangsparameter
Parameter Datentyp Beschreibung
variableArray VARIANT Array, in dessen Feldern das Maximum und Minimum gesucht wird.
Ausgangsparameter
Tabelle 3-59: Ausgangsparameter
Parameter Datentyp Beschreibung
minValue VARIANT Kleinster gefundener Wert.
minArrayIndex INT Startindex des Arrays plus minArrayIndex ergibt den Arrayindex des kleinsten Wertes. Der Index beginnt mit 0.
maxValue VARIANT Größter gefundener Wert.
maxArrayIndex INT Startindex des Arrays plus maxArrayIndex ergibt den Arrayindex des größeten Wertes. Der Index beginnt mit 0.
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 55
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-60: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8200 Am Eingang "variableArray" ist der Aktualparameter kein Array.
-
1 16#8201 Der Datentyp der Elemente des Arrays wird nicht unterstützt.
Es werden nur die Datentypen Int, UInt, DInt, UDInt, USInt, SInt und Real unterstützt.
1 16#8202 Die Elemente des Arrays haben nicht den gleichen Datentyp wie die Ausgänge "minValue" und "maxValue".
-
2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT".
-
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Über den Eingang "variableArray" wird ein Array beliebiger Größe angeschlossen. Nach einer Datentypabfrage im Baustein, werden die Elemente der Reihe nach in eine Variable des entsprechenden Typs kopiert und verglichen. Ausgegeben werden der kleinste und größte Wert sowie deren zugehöriger Index im Array.
Hinweis Bei mehreren gleichen Min- bzw. Max-Werten wird der Index des ersten Min- bzw. Max-Wertes ausgegeben.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 56
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.12 FC LGF_XRoot
Kurzbeschreibung
Dieser Baustein berechnet die x-te Wurzel von einer numerischen Variablen.
Baustein
Abbildung 3-28: FC LGF_Random
FC LGF_XRoot
REAL variable Ret_Val REAL
REAL root
Eingangsparameter
Tabelle 3-61: Eingangsparameter
Parameter Datentyp Beschreibung
variable REAL Variable aus der die Wurzel berechnet werden soll.
root REAL Wurzel (z.B. 3 als 3te Wurzel)
Ausgangsparameter
Tabelle 3-62: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val REAL Ausgabe des Ergebnisses
Funktionsweise
Der Baustein berechnet die n-te Wurzel aus einer Zahl. Um diese Funktion umzusetzen, wird folgende Formel erweitert.
𝑛𝑢𝑚𝑏𝑒𝑟 = 𝑒𝑙𝑜𝑔𝑒(𝑛𝑢𝑚𝑏𝑒𝑟)
Daraus folgt:
𝑅𝑒𝑡_𝑉𝑎𝑙 = √𝑛𝑢𝑚𝑏𝑒𝑟𝑟𝑜𝑜𝑡
= 𝑛𝑢𝑚𝑏𝑒𝑟1
𝑟𝑜𝑜𝑡 = (𝑒𝑙𝑜𝑔𝑒(𝑛𝑢𝑚𝑏𝑒𝑟))1
𝑟𝑜𝑜𝑡 = 𝑒ln(𝑛𝑢𝑚𝑏𝑒𝑟)∗
1𝑟𝑜𝑜𝑡
In STEP 7 (TIA Portal) entspricht die Funktion "EXP" e(…)
und die Funktion "LN" ln(…).
Daraus ergibt sich die folgende Formel:
𝑅𝑒𝑡_𝑉𝑎𝑙 = 𝐸𝑋𝑃((1 𝑟𝑜𝑜𝑡⁄ ) ∗ LN(𝑛𝑢𝑚𝑏𝑒𝑟))
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 57
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.13 FC LGF_HighLowLimit
Kurzbeschreibung
Die Funktion prüft, ob ein Wert sich in einem definierten Wertebereich befindet. Der Wertebereich wird mit einem Sollwert und einer Totzone um diesen Sollwert definiert. Die Funktion berechnet die untere und obere Grenze des Wertebereichs.
Baustein
Abbildung 3-29: FC LGF_HighLowLimit
FC LGF_HighLowLimit
REAL value valueInRange BOOL
REAL setpoint highLimitExceeded BOOL
REAL deadband lowLimitExceeded BOOL
error BOOL
status WORD
Eingangsparameter
Tabelle 3-63: Eingangsparameter
Parameter Datentyp Beschreibung
value INT / REAL Wert, der geprüft werden soll, ob er sich im definierten Wertebereich befindet
setpoint INT / REAL Sollwert
deadband INT / REAL Totband
Ausgangsparameter
Tabelle 3-64: Ausgangsparameter
Parameter Datentyp Beschreibung
valueInRange BOOL "TRUE, wenn sich "value" im Wertebereich (Totzone um den Sollwert) befindet.
valueOverHighLimit BOOL "TRUE", wenn "value" größer als der obere Grenzwert ("setpoint" + 0,5 * "deadband")ist.
valueUnderLowLimit BOOL "TRUE", wenn "value"kleiner als der untere Grenzwert ("setpoint" - 0,5 * "deadband") ist.
error BOOL "FALSE": keine Fehler
"TRUE": Fehler im Baustein
status WORD Status/Fehler-Code aus (siehe folgende Tabelle)
Status- und Fehleranzeigen
Tabelle 3-65: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#0000 Keine Fehler -
16#8101 Falscher Wertebereich "highValue" -
16#8102 Falscher Wertebereich "lowValue" -
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 58
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status Bedeutung Abhilfe / Hinweise
16#8200 "lowValue" ist größer als "highValue". -
Funktionsweise
Die Variable "setpoint" und "deadband" definieren einen Wertebereich. Die Funktion prüft, ob sich der Wert "value" unter, in oder über dem Wertebereich befindet. Die Ausgänge "valueUnderLowLimit", "valueInRange" oder "valueOverHighLimit" geben aus, wo sich der Wert "value" befindet.
Abbildung 3-30: Funktionsweise
value
deadband
deadband * 0,5 deadband * 0,5
valueUnderLowLimit valueOverHighLimit
setpoint
valueInRange
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 59
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.14 FB LGF_Integration
Kurzbeschreibung
Dieser Baustein berechnet näherungsweise die Fläche unter einer Funktionskurve. Die Funktionskurve wird als Analogwert (REAL) übergeben, der über die Zeit variiert. Am Ausgang wird der Integralwert ausgegeben.
Baustein
Abbildung 3-31: FB LGF_Integration
FB LGF_Integration
REAL value integral REAL
BOOL enable error BOOL
BOOL reset statusID UINT
status WORD
Eingangsparameter
Tabelle 3-66: Eingangsparameter
Parameter Datentyp Beschreibung
value REAL Analogwert der kontinuierlichen Funktionskurve
enable BOOL Aktivierung der Integral-Berechnung Erhält dieser Eingang den Wert "FALSE", wird die Integralberechnung gestoppt und der Ausgang "integral" zeigt den zuletzt berechneten Wert.
reset BOOL Setzt den Ausgang "integral" auf "0.0".
Ausgangsparameter
Tabelle 3-67: Ausgangsparameter
Parameter Datentyp Beschreibung
integral LREAL Integrierter Wert
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-68: Status/Fehlercodes
statusID Status Bedeutung Abhilfe / Hinweise
0 16#0000 Keine Fehler -
2 - Fehler/Status von unterlagerten Baustein "RD_SYS_T".
-
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 60
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Die Integralberechnung beinhaltet die Aufsummierung jener Trapezflächen, die sich zwischen den letzten beiden Funktionswerten am Eingang "value" und der Zeit aufspannen. Die vergangene Zeit wird über die Systemzeit der CPU berechnet. Diese Trapezfläche ist identisch mit dem Produkt aus dem Mittelwert der beiden Prozesswerte und dem Zeitintervall.
𝐴 = 1
2∗ (𝐹(𝑡1) + 𝐹(𝑡0)) ∗ (𝑡1 − 𝑡0) +
1
2∗ (𝐹(𝑡2) + 𝐹(𝑡1)) ∗ (𝑡2 − 𝑡1) + ⋯)
Abbildung 3-32: Funktionsweise
Um die Integralberechnung für den Eingangswert am Parameter "value" zu starten, müssen Sie
den Parameter "enable" auf den Wert "TRUE" setzen,
den Parameter "reset" auf den Wert "FALSE " setzen.
Wird der Parameter "enable" auf den Wert "FALSE"gesetzt, wird die Integralberechnung gestoppt und der Ausgang "integral" gibt den zuletzt berechneten Wert aus.
Wird der Parameter "reset" auf den Wert "TRUE" gesetzt, wird der Ausgang "integral" auf "0.0" zurückgesetzt.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 61
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.15 FC LGF_Factorial (NEU)
Kurzbeschreibung
Die Funktion berechnet die Fakultät einer natürlichen Zahl.
Baustein
Abbildung 3-33: LGF_Factorial
FC LGF_Factorial
INT n Ret_Val DINT
error BOOL
status WORD
Eingangsparameter
Tabelle 3-69: Eingangsparameter
Parameter Datentyp Beschreibung
n INT Natürliche Zahl
Ausgangsparameter
Tabelle 3-70: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DINT Berechnete Fakultät
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-71: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#0000 Keine Fehler -
16#7000 Initialwert -
16#8101 Falscher Wertebereich für Eingangs-parameter "n".
Wert zwischen 0 und 12 eingeben.
Funktionsweise
Die Funktion berechnet die Fakultät einer natürlichen Zahl. Der zulässige Werte-bereich des Eingangsparameters "n" liegt zwischen 0 und 12.
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 62
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.4.16 FC LGF_Distance (NEU)
Kurzbeschreibung
Die Funktion berechnet berechnet den Abstand zwischen zwei Punkten.
Baustein
Abbildung 3-34: FC LGF_Distance
FC LGF_Distance
REAL x1 Ret_Val REAL
REAL y1
REAL x2
REAL y2
Eingangsparameter
Tabelle 3-72: Eingangsparameter
Parameter Datentyp Beschreibung
x1 REAL X-Koordinate Punkt 1
y1 REAL Y-Koordinate Punkt 1
x2 REAL X-Koordinate Punkt 2
y2 REAL Y-Koordinate Punkt 2
Ausgangsparameter
Tabelle 3-73: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val REAL Berechneter Abstand
Funktionsweise
Der Baustein berechnet den Abstand zwischen zwei Punkten in einem kartesischen Koordinatensystem.
Der Abstand wird nach folgender Formel berechnet:
𝑅𝑒𝑡_𝑉𝑎𝑙 = √(𝑥2 − 𝑥1)² + (𝑦2 − 𝑦1)²𝑟𝑜𝑜𝑡
Abbildung 3-35: Graphische Darstellung
x1 x2
y1
y2
P1
P2
x
y
Ret_Val
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 63
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.5 Data handling
3.5.1 FB LGF_FIFO
Kurzbeschreibung
Dieser Baustein speichert eingehende Aufträge/Daten und gibt den ältesten noch nicht abgearbeiteten Auftrag aus.
Baustein
Abbildung 3-36: FB LGF_FIFO
FB LGF_FIFO
BOOL execute done BOOL
BOOL mode error BOOL
VARIANT initialValue statusID UINT
BOOL resetBuffer status WORD
VARIANT item (InOut)
VARIANT buffer (InOut)
Eingangsparameter
Tabelle 3-74: Eingangsparameter
Parameter Datentyp Beschreibung
execute BOOL Anforderung eines Durchlaufs.
mode BOOL Auswahl des Modus.
TRUE: Schreiben des Wertes von "item" in "buffer"
FALSE: Lesen des Wertes aus "buffer" und Ausgabe an "item"
initialValue VARIANT Wert zur Initialisierung des Puffers (meistens: 0 )
resetBuffer BOOL Leeren und Initialisieren des Puffers.
Ein-/Ausgangsparameter (InOut)
Tabelle 3-75: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
item VARIANT Wert der aus dem Puffer zurückgegeben wird oder in den Ring-Puffer geschrieben werden soll.
buffer VARIANT Puffer (Array of … )
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 64
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-76: Ausgangsparameter
Parameter Datentyp Beschreibung
done BOOL 1: Durchlauf beendet.
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-77: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8001 Der Puffer ist leer. -
1 16#8002 Der Puffer ist voll. -
1 16#8200 Am Eingang "buffer" liegt kein Array an.
-
1 16#8201 Der Datentyp des InOut-Parameters "item" entspricht nicht dem Datentyp der Array-Elemente von dem Eingang "buffer".
-
1 16#8202 Der Datentyp des Eingangs "initialValue" entspricht nicht dem Datentyp des InOut-Parameters "item".
-
1 16#8601 Die Variable "nextEmptyItemIndex" liegt nicht innerhalb der Array-Grenzen.
-
1 16#8602 Die Variable "firstItemIndex" liegt nicht innerhalb der Array-Grenzen.
-
2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT".
-
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Damit der Baustein gestartet wird, muss am Eingang "execute" eine positive Flanke erkannt werden.
Um den nächsten abzuarbeitenden Lese-Auftrag anzufordern muss am Eingang "mode" der Wert "FALSE" anliegen. Ist dies der Fall, wird am InOut-Parameter
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 65
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
"item" der als nächstes abzuarbeitende Auftrag/Daten ausgegeben und dieses Feld im Puffer durch den Wert am Parameter "initialValue" ersetzt.
Um einen neuen Schreib-Auftrag im Puffer zu speichern muss am Eingang "mode" der Wert "TRUE" anliegen. Ist dies der Fall, wird der am InOut-Parameter "item" anliegende Wert bzw. Auftrag im Puffer an der nächsten freien Stelle abgespeichert.
Liegt am Eingang "resetBuffer" während eines Durchlaufs der Wert "TRUE" an, werden alle Felder im Puffer auf den am Eingang "InitialValue" angegebenen Wert zurückgesetzt. Anschließend kann der Puffer wieder mit Aufträgen/Daten befüllt werden.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 66
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.5.2 FB LGF_LIFO (NEU)
Kurzbeschreibung
Dieser Baustein speichert eingehende Aufträge/Daten und gibt den aktuellsten noch nicht abgearbeiteten Auftrag/Daten aus.
Baustein
Abbildung 3-37: FB LGF_LIFO
FB LGF_LIFO
BOOL execute done BOOL
BOOL mode error BOOL
VARIANT initialValue statusID UINT
BOOL resetBuffer status WORD
VARIANT item (InOut)
VARIANT buffer (InOut)
Eingangsparameter
Tabelle 3-78: Eingangsparameter
Parameter Datentyp Beschreibung
execute BOOL Anforderung eines Durchlaufs.
mode BOOL Auswahl des Modus.
TRUE: Schreiben des Wertes von "item" in "buffer"
FALSE: Lesen des Wertes aus "buffer" und Ausgabe an "item"
initialValue VARIANT Wert zur Initialisierung des Puffers (meistens: 0 )
resetBuffer BOOL Leeren und Initialisieren des Puffers.
Ein-/Ausgangsparameter (InOut)
Tabelle 3-79: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
item VARIANT Wert der aus dem Puffer zurückgegeben wird oder in den Ring-Puffer geschrieben werden soll.
buffer VARIANT Puffer (Array of … )
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 67
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-80: Ausgangsparameter
Parameter Datentyp Beschreibung
done BOOL 1: Durchlauf beendet.
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-81: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8001 Der Puffer ist leer. -
1 16#8002 Der Puffer ist voll. -
1 16#8200 Am Eingang "buffer" liegt kein Array an.
-
1 16#8201 Der Datentyp des InOut-Parameters "item" entspricht nicht dem Datentyp der Array-Elemente von dem Eingang "buffer".
-
1 16#8202 Der Datentyp des Eingangs "initialValue" entspricht nicht dem Datentyp des InOut-Parameters "item".
-
2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT".
-
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 68
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Damit der Baustein gestartet wird, muss am Eingang "execute" eine positive Flanke erkannt werden.
Um den nächsten abzuarbeitenden Lese-Auftrag anzufordern muss am Eingang "mode" der Wert "FALSE" anliegen. Ist dies der Fall, wird am InOut-Parameter "item" der als nächstes abzuarbeitende Auftrag/Daten ausgegeben und dieses Feld im Puffer durch den Wert am Parameter "initialValue" ersetzt.
Um einen neuen Schreib-Auftrag im Puffer zu speichern muss am Eingang "mode" der Wert "TRUE" anliegen. Ist dies der Fall, wird der am InOut-Parameter "item" anliegende Wert bzw. Auftrag im Puffer an der nächsten freien Stelle abgespeichert.
Liegt am Eingang "resetBuffer" während eines Durchlaufs der Wert "TRUE" an, werden alle Felder im Puffer auf den am Eingang "initialValue" angegebenen Wert zurückgesetzt. Anschließend kann der Puffer wieder mit Aufträgen/Daten befüllt werden.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 69
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.5.3 FB LGF_RingBuffer (NEU)
Kurzbeschreibung
Dieser Baustein legt Daten in einem beliebig großen Array ab. Sobald alle Elemente im Array beschrieben wurden, wird das älteste Element überschrieben. Der neueste Wert befindet sich immer an der ersten Stelle im Array.
Baustein
Abbildung 3-38: FB LGF_RingBuffer
FB LGF_RingBuffer
BOOL write
BOOL resetBuffer
WORD newValue
ARRAY of WORD buffer (InOut)
Eingangsparameter
Tabelle-82: Eingangsparameter
Parameter Datentyp Beschreibung
write BOOL Mit einer steigenden Flanke wird der Wert, der an "newValue" anliegt, in den Ring-Puffer geschrieben.
resetBuffer BOOL Ist der Wert TRUE, wird der Ring-Puffer zurückgesetzt.
newValue WORD Wert, der in den Ring-Puffer geschrieben werden soll.
Ein-/Ausgangsparameter (InOut)
Tabelle-83: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
buffer ARRAY of WORD Ring-Puffer, in den die Werte geschrieben werden.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 70
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Hinweis Wenn ein anderer Datentyp als WORD verarbeitet werden soll, ändern Sie den Datentyp von "newValue" und "buffer" in der Bausteinschnittstelle.
Funktionsweise
Bei einer positiven Flanke am Eingangsparameter "write" wird der Wert am Ein-gangsparameter "newValue" an die erste Position des Ring-Puffers geschrieben. Dieser Ring-Puffer muss in Form eines Arrays am Ein-Ausgangsparameter "buffer" bereitgestellt werden. Die Grenzen des Arrays werden vom Baustein ermittelt.
Bevor ein Wert in den Ring-Puffer geschrieben wird, werden die bisherigen Elemente des Ring-Puffers um eine Position weiter verschoben. Sind alle Elemente belegt, wird das älteste Element überschrieben.
Liegt am Eingang "resetBuffer" der Wert "TRUE" an, werden alle Felder im Puffer auf den Wert "0" zurückgesetzt. Wenn an "resetBuffer" wieder "FALSE" anliegt, kann der Puffer wieder mit Daten befüllt werden.
Hinweis Da der Eingangsparameter "write" ausschließlich auf steigende Flanken reagiert,
können nur jeden zweiten Zyklus Daten in den Ring-Puffer gespeichert werden.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 71
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.5.4 FB LGF_ShellSortInt / LGF_ShellSortUInt / LGF_ShellSortReal
Kurzbeschreibung
Dieser Baustein sortiert ein Array mit beliebiger Anzahl an Elementen (max. 1000) aufsteigend oder absteigend. Folgende Datentypen werden unterstützt:
Array vom Typ "Int": LGF_ShellSortInt
Array vom Typ "UInt": LGF_ShellSortUInt
Array vom Typ "Real": LGF_ShellSortReal
Baustein
Abbildung 3-39: FB LGF_ShellSort…
FB LGF_ShellSort…
BOOL mode done BOOL
error BOOL
VARIANT variantArray (InOut) statusID UINT
status WORD
Eingangsparameter
Tabelle 3-84: Eingangsparameter
Parameter Datentyp Beschreibung
mode BOOL 0: aufsteigend sortieren (Standard)
1: absteigend sortieren
Ein-/Ausagnagsparameter (InOut)
Tabelle 3-85: Ein-/Ausagnagsparameter (InOut)
Parameter Datentyp Beschreibung
variantArray VARIANT Array, das sortiert werden soll.
Ausgangsparameter
Tabelle 3-86: Ausgangsparameter
Parameter Datentyp Beschreibung
done BOOL 1: Sortieren abgeschlossen.
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 72
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-87: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Keine Fehler -
1 16#8200 Aktualparameter am Eingang "variantArray" hat nur ein Element.
Verschalten Sie an den Eingang "variantArray" ein Array mit mindestens zwei Elementen.
1 16#8201 Aktualparameter am Eingang "variantArray" ist kein Array.
1 16#8202 Aktualparameter am Eingang "variantArray" hat nicht den passenden Datentyp.
Verschalten Sie am Eingang "variantArray" ein Array mit dem richtigen Datentyp:
LGF_ShellSortInt: Array of type Int
LGF_ShellSortUInt: Array of type UInt
LGF_ShellSortReal: Array of type Real
1 16#8203 Aktualparameter am Eingang "variantArray" hat zu viele Elemente.
Standardmäßig können Sie Array mit bis zu 1000 Elementen sortieren lassen.
2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT" beim Lesen des Arrays.
-
3 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT" beim Schreiben des Arrays.
-
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Der Baustein sortiert nach dem Shell-Sortierverfahren. Beachten Sie, dass die Ausführungszeit des Bausteins stark davon abhängt, wie viele Elemente das zu sortierende Array hat. Folgende Übersicht zeigt einige Messwerte des Bausteins in Abhängigkeit der Anzahl der Array-Elemente.
Tabelle 3-88: Ausführungszeiten des Bausteins "LGF_ShellSort…"
Anzahl der Array-Elemente
S7-1212C DC/DC/DC S7-1516-3 PN/DP
100 ca. 11-16 ms ca. 1-2 ms
1000 ca. 185-205 ms ca. 10-12 ms
Hinweis Der Baustein wird synchron ausgeführt und wird nicht auf mehrere SPS-Zyklen aufgeteilt. Somit wirkt sich die Ausführungszeit direkt auf die SPS-Zykluszeit aus. Beachten Sie dieses Verhalten bei ihrem Projekt der verwendeten Steuerung und passen Sie gegebenenfalls die Überwachungszeit der Steuerung an.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 73
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.5.5 FC LGF_CRC8 (NEU)
Kurzbeschreibung
Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion "LGF_CRC8" verwendet als Generatorpolynom (Maske) 8 Bit.
Baustein
Abbildung 3-40: FB LGF_CRC8
FC LGF_CRC8
BYTE initValue Ret_Val BYTE
BYTE mask
ARRAY of BYTE inputArray
Eingangsparameter
Tabelle-89: Eingangsparameter
Parameter Datentyp Beschreibung
initValue BYTE Startwert, mit dem die Berechnung durchgeführt wird. Wenn Sie keinen Startwert benötigen, belegen Sie den Parameter mit 0x0.
mask BYTE Generatorpolynom, mit dem die Berechnung durchgeführt wird.
Ein-/Ausgangsparameter (InOut)
Tabelle-90: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
inputArray ARRAY of BYTE Datenstrom, für den der CRC-Wert berechnet werden soll.
Ausgangsparameter
Tabelle-91: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val BYTE Berechneter CRC-Wert (Rückgabewert der Funktion).
Funktionsweise
Der Baustein berechnet aus einem beliebig großen Datenstrom den CRC-Wert. Der Datenstrom setzt sich aus den einzelnen Elementen des Arrays am Ein-/Ausgangsparameter "inputArray" zusammen. Der Startwert "initValue" und das Generatorpolynom "mask" sind frei wählbar.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 74
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.5.6 FC LGF_CRC8For1Byte (NEU)
Kurzbeschreibung
Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion "LGF_CRC8For1Byte" verwendet als Generatorpolynom (Maske) 8 Bit.
Baustein
Abbildung 3-41: FB LGF_CRC8For1Byte
FC LGF_CRC8For1Byte
BYTE initValue Ret_Val BYTE
BYTE mask
BYTE inputByte
Eingangsparameter
Tabelle-92: Eingangsparameter
Parameter Datentyp Beschreibung
initValue BYTE Startwert, mit dem die Berechnung durchgeführt wird. Wenn Sie keinen Startwert benötigen, belegen Sie den Parameter mit 0x0.
mask BYTE Generatorpolynom, mit dem die Berechnung durchgeführt wird.
inputByte BYTE Datenbyte, für das der CRC-Wert berechnet werden soll.
Ausgangsparameter
Tabelle-93: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val BYTE Berechneter CRC-Wert (Rückgabewert der Funktion).
Funktionsweise
Der Baustein berechnet aus einem Datenbyte den CRC-Wert. Der Startwert "initValue" und das Generatorpolynom "mask" sind frei wählbar.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 75
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.5.7 FC LGF_CRC16 (NEU)
Kurzbeschreibung
Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion "LGF_CRC16” verwendet als Generatorpolynom (Maske) 16 Bit.
Baustein
Abbildung 3-42: FB LGF_CRC16
FC LGF_CRC16
WORD initValue Ret_Val WORD
WORD mask
ARRAY of BYTE inputArray
Eingangsparameter
Tabelle-94: Eingangsparameter
Parameter Datentyp Beschreibung
initValue WORD Startwert, mit dem die Berechnung durchgeführt wird. Wenn Sie keinen Startwert benötigen, belegen Sie den Parameter mit 0x0.
mask WORD Generatorpolynom, mit dem die Berechnung durchgeführt wird.
Ein-/Ausgangsparameter (InOut)
Tabelle-95: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
inputArray ARRAY of BYTE Datenstrom, für den der CRC-Wert berechnet werden soll.
Ausgangsparameter
Tabelle-96: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val WORD Berechneter CRC-Wert (Rückgabewert der Funktion).
Funktionsweise
Der Baustein berechnet aus einem beliebig großen Datenstrom den CRC-Wert. Der Datenstrom setzt sich aus den einzelnen Elementen des Arrays am Ein-/Ausgangsparameter "inputArray" zusammen. Der Startwert "initValue" und das Generatorpolynom "mask" sind frei wählbar.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 76
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.5.8 FC LGF_CRC32 (NEU)
Kurzbeschreibung
Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion "LGF_CRC32" verwendet als Generatorpolynom (Maske) 32 Bit.
Baustein
Abbildung 3-43: FB LGF_CRC32
FC LGF_CRC32
DWORD initValue Ret_Val DWORD
DWORD mask
DWORD finalXorValue
BOOL reflectInput
BOOL reflectResult
ARRAY of BYTE inputArray
Eingangsparameter
Tabelle-97: Eingangsparameter
Parameter Datentyp Beschreibung
initValue DWORD Startwert, mit dem die Berechnung durchgeführt wird. Wenn Sie keinen Startwert benötigen, belegen Sie den Parameter mit 0x0.
mask DWORD Generatorpolynom, mit dem die Berechnung durchgeführt wird.
finalXorValue DWORD Wert, mit dem am Ende eine weitere XOR-Operation durchgeführt wird
reflectInput BOOL Ist der Wert TRUE, wird die Reihenfolge der Bits innerhalb des Eingangsbytes gespiegelt. Aus der Reihenfolge 0…7 wird 7…0.
reflectResult BOOL Ist der Wert TRUE, wird die Reihenfolge der Bits innerhalb des Ergebnisbytes gespiegelt. Aus der Reihenfolge 0…7 wird 7…0.
Ein-/Ausgangsparameter (InOut)
Tabelle-98: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
inputArray ARRAY of BYTE Datenstrom, für den der CRC-Wert berechnet werden soll.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 77
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle-99: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DWORD Berechneter CRC-Wert (Rückgabewert der Funktion).
Funktionsweise
Der Baustein berechnet aus einem beliebig großen Datenstrom den CRC-Wert. Der Datenstrom setzt sich aus den einzelnen Elementen des Arrays am Ein-/Ausgangsparameter "inputArray" zusammen. Der Startwert "initValue" und das Generatorpolynom "mask" sind frei wählbar. Über die boolschen Eingangsparameter "reflectInput" und "reflectResult" können Sie optional die Bits der Eingangsdaten bzw. des CRC-Werts spiegeln (siehe Eingangsparameter). Außerdem wird der CRC-Wert am Ende mit dem Wert, der an "finalXOR" anliegt, XORiert.
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 78
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6 Converter operations
3.6.1 FC LGF_BinaryToGray
Kurzbeschreibung
Dieser Baustein wandelt einen binär codierten Wert in einen Gray codierten Wert um.
Baustein
Abbildung 3-44: FC LGF_BinaryToGray
FC LGF_BinaryToGray
DWORD variableBinary Ret_Val DWORD
Eingangsparameter
Tabelle 3-100: Eingangsparameter
Parameter Datentyp Beschreibung
variableBinary DWORD Binär codierter Wert
Ausgangsparameter
Tabelle 3-101: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DWORD Gray codierter Wert
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 79
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.2 FC LGF_GrayToBinary
Kurzbeschreibung
Dieser Baustein wandelt einen nach Gray codierten Wert in einen binär codierten Wert um.
Baustein
Abbildung 3-45: FC LGF_GrayToBinary
FC LGF_GrayToBinary
DWORD variableGray Ret_Val DWORD
Eingangsparameter
Tabelle 3-102: Eingangsparameter
Parameter Datentyp Beschreibung
variableGray DWORD Gray codierter Wert
Ausgangsparameter
Tabelle 3-103: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DWORD Binär codierter Wert
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 80
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.3 FC LGF_BitsToWord
Kurzbeschreibung
Dieser Baustein wandelt 16 BOOL-Variablen in eine WORD-Variable um.
Baustein
Abbildung 3-46: FC LGF_BitsToWord
FC LGF_BitsToWord
BOOL bit0 Ret_Val WORD
BOOL bit1
BOOL bit2
BOOL bit3
BOOL bit4
BOOL bit5
BOOL bit6
BOOL bit7
BOOL bit8
BOOL bit9
BOOL bit10
BOOL bit11
BOOL bit12
BOOL bit13
BOOL bit14
BOOL bit15
Eingangsparameter
Tabelle 3-104: Eingangsparameter
Parameter Datentyp Beschreibung
bit0
…
bit15
BOOL Bit-Variablen
Ausgangsparameter
Tabelle 3-105: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val WORD Word-Variable
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 81
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.4 FC LGF_WordToBits
Kurzbeschreibung
Dieser Baustein wandelt eine WORD-Variable in 16 BOOL-Variablen um.
Baustein
Abbildung 3-47: FC LGF_WordToBits
FC LGF_WordToBits
WORD word bit0 BOOL
bit1 BOOL
bit2 BOOL
bit3 BOOL
bit4 BOOL
bit5 BOOL
bit6 BOOL
bit7 BOOL
bit8 BOOL
bit9 BOOL
bit10 BOOL
bit11 BOOL
bit12 BOOL
bit13 BOOL
bit14 BOOL
bit15 BOOL
Eingangsparameter
Tabelle 3-106: Eingangsparameter
Parameter Datentyp Beschreibung
Word WORD WORD-Variable
Ausgangsparameter
Tabelle 3-107: Ausgangsparameter
Parameter Datentyp Beschreibung
bit0
…
bit15
BOOL Bit-Variablen
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 82
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.5 FC LGF_DTLtoString
Kurzbeschreibung
Dieser Baustein konvertiert ein Datum vom Datentyp DTL in eine Zeichenkette vom Datentyp STRING.
Baustein
Abbildung 3-48: FC LGF_DTLtoString
FC DTLtoString
DTL inDTL Ret_Val STRING
BOOL format
CHAR separatorDate
Eingangsparameter
Tabelle 3-108: Eingangsparameter
Parameter Datentyp Beschreibung
inDTL DTL Datum
format BOOL Formatauswahl der ausgegebenen Zeichenkette:
0: international (YYYY MM DD ...)
1: traditionell (DD MM YYYY ...)
separatorDate CHAR Trennzeichens zwischen den Komponenten des ausgegebenen Datums.
Ausgangsparameter
Tabelle 3-109: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val STRING Ausgegebenen Zeichenkette
Funktionsweise
Der Baustein liest ein Datum vom Datentyp DTL ein und konvertiert die einzelnen Komponenten des Datums (Jahr, Monat, Tag, Stunde...) in eine Zeichenkette und gibt diese aus. Die einzelnen Komponenten werden entsprechend der Formatauswahl an der richtigen Position in der Zeichenkette platziert. Das Trennzeichen zwischen den Komponenten des Datums ist variabel.
Formatauswahl
Über den Eingangsparameter "format" können Sie zwischen dem internationalen (ISO 8601) und dem traditionellen (DE) Datumsformat für die ausgegebene Zeichenkette wählen.
1. Internationales Format (ISO 8601) Wenn der Eingangsparameter "format" nicht gesetzt ist (format = FALSE), wird das Datum als Zeichenkette im internationalen Format ausgegeben. Beispiel: 2016-03-16 13:34:12.123456789
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 83
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Folgende Abbildung stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.
Abbildung 3-49: Positionen der einzelnen Zeichen
2. Traditionelles Format (DE) Wenn der Eingangsparameter "format" gesetzt ist (format = TRUE), wird das Datum als Zeichenkette im traditionellen Format ausgegeben. Beispiel: 16-03-2016 13:34:12.123456789 Folgende Abbildung stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.
Abbildung 3-50: Positionen der einzelnen Zeichen
Trennzeichen
Am Eingangsparameter "separatorDate" müssen Sie das Trennzeichen zwischen den Komponenten des Kalenderdatums vorgeben.
Beispiel: separatorDate = ‘/’ outString = ‘2016/03/16 …’
separatorDate = ‘-‘ outString = ‘2016-03-16 …’
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 84
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.6 FC LGF_StringToDTL
Kurzbeschreibung
Dieser Baustein konvertiert eine Zeichenkette vom Format String mit Datumskomponenten in den Datentyp DTL.
Baustein
Abbildung 3-51: FC LGF_StringToDTL
FC LGF_StringToDTL
STRING inString Ret_Val DTL
BOOL format error Bool
status WORD
Eingangsparameter
Tabelle 3-110: Eingangsparameter
Parameter Datentyp Beschreibung
inString STRING Datum als Zeichenkette
format BOOL Formatauswahl der eingelesenen Zeichenkette:
0: international (YYYY MM DD ...)
1: traditionell (DD MM YYYY ...)
Ausgangsparameter
Tabelle 3-111: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DTL Gibt das eingelesene Datum aus
error BOOL 0: kein Fehler
1: Fehler im Baustein, "status" gibt Fehlercode aus
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle)
Status- und Fehleranzeigen
Tabelle 3-112: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#0000 Keine Fehler -
16#7000 Initialwert -
16#8201 Format: Jahr Jahresangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)
16#8202 Format: Monat Monatsangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)
16#8203 Format: Tag Tagesangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)
16#8204 Format: Stunde Stundenangabe entspricht nicht dem Format oder Angabe
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 85
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status Bedeutung Abhilfe / Hinweise
(außerhalb des Wertebereiches von DTL)
16#8205 Format: Minute Minutenangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)
16#8206 Format: Sekunde
Sekundenangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)
16#8207 Format: Nanosekunde
Nanosekundenangabe entspricht nicht dem Format oder (Angabe außerhalb des Wertebereiches von DTL)
Funktionsweise
Der Baustein liest ein Datum als Zeichenkette ein und konvertiert dieses in den Datentyp DTL. Die einzelnen Datumskomponenten in der Zeichenkette werden entsprechend der Formatauswahl (Positionierung der Datumskomponenten in der Zeichenkette) separiert. Dabei ist das Trennzeichen zwischen den Komponenten in der Zeichenkette irrelevant.
Formatauswahl
Über den Eingangsparameter "format" wählen Sie, ob die eingelesene Zeichenkette im internationalen (ISO 8601) oder traditionellen (DE) Datumsformat angegeben ist.
1. Internationales Format (ISO 8601) Wenn der Eingangsparameter "format" nicht gesetzt ist (format = FALSE), wird das Datum in der Zeichenkette im internationalen Format eingelesen. Beispiel: inString = `2016-03-16 13:34:12.001` format = FALSE outDTL = DTL#2016-03-16-13:34:12.001000 Die Abbildung 2-10 stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.
Abbildung 3-52: Positionen der einzelnen Zeichen
2. Traditionelles Format (DE) Wenn der Eingangsparameter "format" gesetzt ist (format = TRUE), wird das Datum in der Zeichenkette im traditionellen Format eingelesen. Beispiel: inString = ‘16/03/2016 13:34:12.1‘ format = TRUE outDTL = DTL#2016-03-16-13:34:12.100000 Folgende Abbildung stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.
Abbildung 3-53: Positionen der einzelnen Zeichen
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 86
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.7 FC LGF_TemperatureConvert
Kurzbeschreibung
Dieser Baustein rechnet °Celsius in °Fahrenheit oder Kelvin als auch °Fahrenheit in Kelvin um und umgekehrt.
Baustein
Abbildung 3-54: FC LGF_TemperatureConvert
FC LGF_TemperatureConvert
INT mode Ret_Val REAL
REAL temperature error BOOL
Status WORD
Eingangsparameter
Tabelle 3-113: Eingangsparameter
Parameter Datentyp Beschreibung
mode INT Modus
1. °Celsius in °Fahrenheit
2. °Fahrenheit in °Celsius
3. °Celsius in Kelvin
4. Kelvin in °Celsius
5. °Fahrenheit in Kelvin
6. Kelvin in °Fahrenheit
temperature REAL Umzurechnende Temperatur
Ausgangsparameter
Tabelle 3-114: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val REAL Umgerechnete Temperatur
error BOOL 0: keine Fehler
1: Fehler im Baustein
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-115: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#7000 Initialwert -
16#0000 Keine Fehler -
16#8200 Kein korrekter Modus am Eingang "mode".
Siehe Beschreibung der Eingangsparameter
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 87
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.8 FC LGF_ScaleLinear
Kurzbeschreibung
Diese Funktion skaliert eine Eingangsgröße über eine lineare Geradengleichung.
Baustein
Abbildung 3-55: FC LGF_ScaleLinear
FC LGF_ScaleLinear
VARIANT x y VARIANT
VARIANT x1 error BOOL
VARIANT y1 status WORD
VARIANT x2
VARIANT y2
VARIANT yMin
VARIANT yMax
Eingangsparameter
Tabelle 3-116: Eingangsparameter
Parameter Datentyp Beschreibung
x VARIANT Eingangswert, der skaliert werden soll.
x1 VARIANT Punkt 1 (P1) der linearen Funktion.
y1 VARIANT
x2 VARIANT Punkt 2 (P2) der linearen Funktion.
y2 VARIANT
yMin VARIANT Unterer Grenzwert des Ausgangs.
yMax VARIANT Oberer Grenzwert des Ausgangs.
Ausgangsparameter
Tabelle 3-117: Ausgangsparameter
Parameter Datentyp Beschreibung
y VARIANT Ausgangswert, skaliert.
error BOOL Fehleranzeige.
0: kein Fehler.
1: Fehler im Baustein, "status" gibt Fehlercode aus.
status WORD "status" gibt den Status/Fehlercode aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-118: Status- und Fehlercodes
Status Bedeutung Abhilfe
16#0000 Keine Fehler. -
16#8200 Aktualparameter am Eingang "x" ist vom falschen Datentyp.
Eingang "x" darf nur mit dem Datentyp INT oder REAL parametriert werden.
16#8201 Aktualparameter am Ausgang "y" ist vom Ausgang "y" darf nur mit dem Datentyp INT
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 88
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status Bedeutung Abhilfe
falschen Datentyp. oder REAL parametriert werden.
16#8202 Aktualparameter an den Eingängen "x", "x1" und "x2" sind vom unterschiedlichen Datentyp.
Alle x-Parameter müssen entweder INT oder REAL sein.
16#8203 Aktualparameter an den Eingängen "y1", "y2", "yMin", "yMax" und an dem Ausgang "y" sind vom unterschiedlichen Datentyp.
Alle y-Parameter müssen entweder INT oder REAL sein.
16#8204 Unterer Grenzwert "yMin"ist größer als oberer Grenzwert "yMax".
Wählen Sie unteren Grenzwert unterhalb des oberen Grenzwertes.
Funktionsweise
Die Funktion skaliert eine Eingangsgröße (z. B. ein Analogeingangswert) linear auf eine bestimmte Ausgangsgröße (z. B. Füllstand).
Zur Bestimmung der Ausgangsgröße wird in der Funktion folgende lineare Geradengleichung angewendet:
𝑦 = 𝑦2 − 𝑦1𝑥2 − 𝑥1
∙ (𝑥 − 𝑥1) + 𝑦1
Die Gerade wird durch die zwei Punkte, P1 und P2, beschrieben. Die Punkte geben Sie im Sinne eines kartesischen Koordinatensystems durch x- und y-Koordinaten vor.
Hinweis Falls die Werte der Parameter "x1" und "x2" gleich sind, wird am Ausgang "y" der Wert von "y1" ausgegeben.
Mit der Angabe von "yMin" und "yMax" können Sie den berechneten Wert von "y" auf einen unten und oben begrenzten Bereich einschränken. Somit vermeiden Sie Über- und Untersteuerungsbereiche.
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 89
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Abbildung 3-56: Skalierung
P2
P1
x1 x2
y2
y1
yMax
yMin
x**
y*
.
.
*) resultierender, skalierter Wert**) zu skalierender Wert
Sie können die Formalparameter mit folgenden Datentypen parametrieren:
Tabelle 3-119: Datentypen
Formalparameter
Skalierung
x, x1, x2 y, y1, y2, yMin, yMax
Datentyp
INT INT INT INT
INT REAL INT REAL
REAL INT REAL INT
REAL REAL REAL REAL
Beispiel
An einer Analogeingangsbaugruppe liegt ein Signal von 4 bis 20mA an. Dieses Signal wird zu dem CPU-internen Wert von 0 bis 27648 gewandelt, um einen Füllstand zu messen. Dabei entsprechen 0 dem Füllstand 0,0m und 27648 dem Füllstand 1,7m.
Den Baustein müssen Sie dann wie folgt parametrieren:
x1 = 0; y1 = 0,0 (P1)
x2 = +27648; y2 = 1,7 (P2)
yMin = 0,0
yMax = 1,7
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 90
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.9 FC LGF_StringToTaddr
Kurzbeschreibung
Der Systemdatentyp "TADDR_Param" enthält Adressinformation, bestehend aus einer IPV4-Adresse und der Port-Nummer.
Die Funktion LGF_StringToTaddr konvertiert eine Variable vom Datentyp "String" in eine Variable vom Systemdatentyp "TADDR_Param".
Baustein
Abbildung 3-57: FC LGF_StringToTaddr
FC LGF_StringToTaddr
STRING ipAddressString Ret_Val TADDR_param
error BOOL
status WORD
Eingangsparameter
Tabelle 3-120: Eingangsparameter
Parameter Datentyp Beschreibung
ipAddressString STRING IPV4-Addresse
Ausgangsparameter
Tabelle 3-121: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val TADDR_param IPV4-Addresse
error BOOL 0: keine Fehler
1: Fehler im Baustein
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-122: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#0000 Keine Fehler -
16#8101 Falscher Wert im 1. Bereich der IP-Adresse
Überprüfen Sie die IP-Adresse am Eingang
16#8102 Falscher Wert im 2. Bereich der IP-Adresse"
16#8103 Falscher Wert im 3. Bereich der IP-Adresse
16#8104 Falscher Wert im 4. Bereich der IP-Adresse"
16#8105 Falscher Wert im Port Bereich der IP-Adresse"
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 91
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Die Funktion konvertiert die IPV4-Adresse mit oder ohne Portnummer vom Datentyp "STRING" nach "TADDR_param". Der String muss der folgenden Form entsprechen:
[0..255].[0..255].[0..255].[0..255] ohne Portnummer
oder
[0..255].[0..255].[0..255].[0..255]:[0..65535] mit Portnummer
Beispiel
Das Standard String Format für eine IPV4 Adresse ohne Port Nummer: ‘192.168.11.11’
Das Standard String Format für eine IPV4 Adresse mit Port Nummer: '192.168.11.11:3294'
Hinweis Wenn Sie im Parameter "ipAddressString" keine Portnummer angeben, gibt der Parameter "Ret_Val.REM_PORT_NR" den Wert "0" aus.
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 92
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.10 FC LGF_TaddrToString
Kurzbeschreibung
Der Systemdatentyp "TADDR_Param" enthält Adressinformation, bestehend aus einer IPV4-Adresse und der Port-Nummer.
Die Funktion LGF_TaddrToString konvertiert eine Variable vom Systemdatentyp "TADDR_Param" in eine Variable vom Datentyp "String".
Baustein
Abbildung 3-58: FC LGF_TaddrToString
FC LGF_TaddrToString
TADDR_Param ipAdressTaddr Ret_Val STRING
Eingangsparameter
Tabelle 3-123: Eingangsparameter
Parameter Datentyp Beschreibung
ipAdressTaddr TADDR_Param IPV4-Addresse
Ausgangsparameter
Tabelle 3-124: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val STRING IPV4-Addresse
Funktionsweise
Die Funktion konvertiert die IPV4-Adresse mit oder ohne Portnummer. Der Systemdatentyp "TADDR_Param" ist ein strukturierter Datentyp. In dieser Struktur befindet sich die Variable "REM_PORT_NR". Falls diese Variable "0" ist, wird kein Port in den Parameter "Ret_Val" geschrieben.
Beispiel
Ret_val ohne Port Nummer: ‘192.168.11.11’
Ret_val mit Port Nummer: '192.168.11.11:3294'
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 93
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.11 FC LGF_IntToString (NEU)
Kurzbeschreibung
Dieser Baustein konvertiert eine Variable vom Systemdatentyp "DInt" in eine Variable vom Datentyp "String".
Baustein
Abbildung 3-59: FC LGF_IntToString
FC LGF_IntToString
DINT intValue Ret_Val STRING
Eingangsparameter
Tabelle 3-125: Eingangsparameter
Parameter Datentyp Beschreibung
intValue DINT Integer Wert
Ausgangsparameter
Tabelle 3-126: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val STRING Konvertierter Wert als String
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 94
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.6.12 FC LGF_TimeToString (NEU)
Kurzbeschreibung
Dieser Baustein konvertiert eine Variable vom Systemdatentyp "Time" in eine Variable vom Datentyp "String".
Baustein
Abbildung 3-60: FC LGF_TimeToString
FC LGF_TimeToString
TIME timeValue Ret_Val STRING
Eingangsparameter
Tabelle 3-127: Eingangsparameter
Parameter Datentyp Beschreibung
intValue TIME Integer Wert
Ausgangsparameter
Tabelle 3-128: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val STRING Konvertierte Zeit als String
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 95
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.7 Signal generators
3.7.1 FB LGF_Frequency
Kurzbeschreibung
Der Baustein generiert ein Signal, das in Abhängigkeit von einer definierten Frequenz und einem Pulspausenverhältnis, zwischen den Werten "0" und "1" wechselt.
Baustein
Abbildung 3-61: FB LGF_Frequency
FB LGF_Frequency
REAL frequency clock BOOL
REAL pulsePauseRatio countdown TIME
Eingangsparameter
Tabelle 3-129: Eingangsparameter
Parameter Datentyp Beschreibung
frequency REAL Taktfrequenz in Hz
pulsePauseRatio REAL Pulspausenverhältnis (Standard: 1.0 enspricht 1:1)
Ausgangsparameter
Tabelle 3-130: Ausgangsparameter
Parameter Datentyp Beschreibung
clock BOOL Ausgang wechselt mit definierter Frequenz
countdown TIME Verbleibende Zeit des aktuellen Zustands von "clock"
Funktionsweise
Der Ausgang "clock" ist ein boolscher Wert, der in der gewünschten Frequenz toggelt. Über den Eingang "pulsePauseRatio" wird das Pulspausenverhältnis eingestellt werden.
Der Ausgang "countdown" gibt die verbleibende Zeit des aktuellen Zustands von "clock" aus.
Falls die gewünschte Frequenz oder das Pulspausenverhältnis kleiner oder gleich "0.0" ist, ist der Ausgang "clock" = FALSE und "countdown" = "0 s".
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 96
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Beispiel
Abbildung 3-62: FB LGF_Frequency
T#0S_703MS
TRUE
T = 2 ston = 1,5 stoff = 0,5 s
FB LGF_Frequency
frequency clock
countdown
0.5
pulsePauseRatio3.0
Tton toff
clock
�𝑢𝑙 𝑒𝑃𝑎𝑢 𝑒𝑅𝑎𝑡 𝑜 = 𝑡𝑜
𝑡𝑜 = 3
1
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 97
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.7.2 FB LGF_Impulse
Kurzbeschreibung
Dieser Baustein generiert Impulse in einer vorgegebenen Frequenz. Der Impuls steht immer für einen (Steuerungs-) Zyklus an.
Baustein
Abbildung 3-63: FB LGF_Impulse
FB LGF_Impulse
REAL frequency impulse BOOL
countdown TIME
Eingangsparameter
Tabelle 3-131: Eingangsparameter
Parameter Datentyp Beschreibung
frequency REAL Taktfrequenz in Hz
Ausgangsparameter
Tabelle 3-132: Ausgangsparameter
Parameter Datentyp Beschreibung
impulse BOOL Signal mit Impulsen
countdown TIME Zeit bis zum nächsten Impuls
Funktionsweise
Der Baustein generiert Impulse am Ausgang "impulse" mit der Frequenz "frequency". Der Baustein beginnt immer mit einem Impuls und setzt den folgenden Impuls nach der verstrichenen Periodendauer.
Beispiel
Abbildung 3-64: Beispiel
TRUE
Periodendauer: 2 Sekunden
FB LGF_Impulse
frequency
impulse
countdown
0.5
T#0S_703MS
Hinweis Neu ab V1.2.0 Der Baustein LGF_Impulse (ab V1.2.0) ruft den Baustein LGF_Frequency nicht mehr auf.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 98
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.7.3 FB LGF_SawTooth
Kurzbeschreibung
Dieser Baustein generiert einen sägezahnförmigen Signalverlauf. Jeder Sägezahn besteht aus einer definierten Anzahl an Schritten (Inkrementen).
Baustein
Abbildung 3-65: FB LGF_SawTooth
FB LGF_SawTooth
INT startValue value INT
TIME timeRange
INT incrementRange
INT numberSteps
BOOL endlessSteps
BOOL restart
Eingangsparameter
Tabelle 3-133: Eingangsparameter
Parameter Datentyp Beschreibung
startValue INT Startwert bei dem das Signal beginnt.
timeRange TIME Zeit nach der der Ausgangsparameter "value" inkrementiert wird
incrementRange INT Größe des Sprunges von einem Inkrement auf den nächsten.
numberSteps INT Anzahl der Inkremente pro Sägezahn. (Im Falle eines endlosen Sägezahnsignales ist die Angabe nicht nötig).
endlessSteps BOOL Angabe ob ein endloses Sägezahnsignal generiert werden soll.
restart BOOL Sägezahn beginnt wieder beim Startwert "startValue".
Hinweis Beachten Sie, dass Änderungen an den Eingangsparametern erst mit "restart" wirksam werden.
Ausgangsparameter
Tabelle 3-134: Ausgangsparameter
Parameter Datentyp Beschreibung
value INT Aktueller Wert des Sägezahnsignales.
Funktionsweise
Der Baustein berechnet die Werte für einen sägezahnförmigen Signalverlauf, die am Ausgangsparamter "value" ausgegeben werden. Das Signal beginnt mit dem
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 99
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Startwert "startValue" und wird nach jedem Ablauf des Zeitintervalls "timeRange" mit dem Wert "increment" addiert. Der Wert kann auch negativ sein.
Ist die Variable "endlessSteps" auf "FALSE" gesetzt, wird die Anzahl der Addiervorgänge gezählt. Überschreitet diese den Wert "numberSteps" wird der Ausgangsparamter "value" wieder auf den Startwert gesetzt. Ein neuer Sägezahn beginnt.
Ist die Variable "endlessSteps" auf "TRUE" gesetzt, wird - einmalig beginnend bei "startValue" - ununterbrochen der Wert "increment" aufaddiert. Wenn der maximale positive INT-Wertebereich (32767) des Ausgangsparameters "value" überschritten wird, wechselt "value" in den maximalen negativen INT-Wertebereich (-32768) und wird weiter aufaddiert.
Hinweis Die Dauer eines Sägezahns bei "endlessSteps" auf "FALSE" berechnet sich wie folgt:
Dauer = "timeRange * ("numberSteps" + 1)
Abbildung 3-66: Signalverlauf des Ausgangs "value"
startValue
incrementRange
timeRange
time
value
endless Steps= true
restart = true
restart = false
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 100
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.7.4 FB LGF_SawToothCI (NEU)
Kurzbeschreibung
Dieser Baustein generiert einen sägezahnförmigen Signalverlauf.
Baustein
Abbildung 3-67: FB LGF_SawToothCI
FB LGF_SawToothCI
REAL amplitude sawToothValues REAL
REAL offset error BOOL
UDINT periodeMS statusID UINT
OB_CYCLIC callOB status WORD
BOOL reset
Eingangsparameter
Tabelle 3-135: Eingangsparameter
Parameter Datentyp Beschreibung
amplitude REAL Amplitude des Signalverlaufs.
offset REAL Verschiebung des Signalverlaufs in Y-Richtung.
periodeMS UDINT Periodendauer des Signalverlaufs in [ms]
callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)
reset BOOL Rücksetzen des Signalverlaufs.
Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.
Ausgangsparameter
Tabelle 3-136: Ausgangsparameter
Parameter Datentyp Beschreibung
sawToothValues REAL Aktueller Wert des Sägezahnsignales.
Status- und Fehleranzeigen
Tabelle 3-137: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 keine Fehler Auftrag abgeschlossen.
1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.
Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.
2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.
Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 101
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein berechnet die Werte für einen sägezahnförmigen Signalverlauf, die am Ausgangsparamter "sawToothValues" ausgegeben werden.
Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.
Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "sawToothValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.
Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.
Abbildung 3-68: Weckalarm-OB verschalten
Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:
𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟
𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵
Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.
Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.
Abbildung 3-69: Signalverlauf bei "offset" = 0
Periodendauer
Time
y
Amplitude
0
-Amplitude
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 102
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.7.5 FB LGF_TriangleCI (NEU)
Kurzbeschreibung
Dieser Baustein generiert einen dreieckigen Signalverlauf.
Baustein
Abbildung 3-70: FB LGF_TriangleCI
FB LGF_TriangleCI
REAL amplitude triangleValues REAL
REAL offset error BOOL
UDINT periodeMS statusID UINT
OB_CYCLIC callOB status WORD
BOOL reset
Eingangsparameter
Tabelle 3-138: Eingangsparameter
Parameter Datentyp Beschreibung
amplitude REAL Amplitude des Signalverlaufs.
offset REAL Verschiebung des Signalverlaufs in Y-Richtung.
periodeMS UDINT Periodendauer des Signalverlaufs in [ms]
callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)
reset BOOL Rücksetzen des Signalverlaufs.
Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.
Ausgangsparameter
Tabelle 3-139: Ausgangsparameter
Parameter Datentyp Beschreibung
triangleValues REAL Aktueller Wert des Dreiecksignales.
Status- und Fehleranzeigen
Tabelle 3-140: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 keine Fehler Auftrag abgeschlossen.
1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.
Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.
2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.
Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 103
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein berechnet die Werte für einen dreieckigen Signalverlauf, die am Ausgangsparamter "triangleValues" ausgegeben werden.
Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.
Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "triangleValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.
Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.
Abbildung 3-71: Weckalarm-OB verschalten
Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:
𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟
𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵
Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.
Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.
Abbildung 3-72: Signalverlauf bei "offset" = 0
Periodendauer
Time
y
Amplitude
0
-Amplitude
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 104
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.7.6 FB LGF_RectangleCI (NEU)
Kurzbeschreibung
Dieser Baustein generiert einen rechteckigen Signalverlauf.
Baustein
Abbildung 3-73: FB LGF_RectangleCI
FB LGF_RectangleCI
REAL amplitude rectangleValues REAL
REAL offset error BOOL
UDINT periodeMS statusID UINT
OB_CYCLIC callOB status WORD
BOOL reset
Eingangsparameter
Tabelle 3-141: Eingangsparameter
Parameter Datentyp Beschreibung
amplitude REAL Amplitude des Signalverlaufs.
offset REAL Verschiebung des Signalverlaufs in Y-Richtung.
periodeMS UDINT Periodendauer des Signalverlaufs in [ms]
callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)
reset BOOL Rücksetzen des Signalverlaufs.
Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.
Ausgangsparameter
Tabelle 3-142: Ausgangsparameter
Parameter Datentyp Beschreibung
rectangleValues REAL Aktueller Wert des Rechtecksignales.
Status- und Fehleranzeigen
Tabelle 3-143: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 keine Fehler Auftrag abgeschlossen.
1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.
Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.
2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.
Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 105
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein berechnet die Werte für einen rechteckigen Signalverlauf, die am Ausgangsparamter "rectangleValues" ausgegeben werden.
Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.
Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "rectangleValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.
Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.
Abbildung 3-74: Weckalarm-OB verschalten
Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:
𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟
𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵
Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.
Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.
Abbildung 3-75: Signalverlauf bei "offset" = 0
Periodendauer
Time
y
Amplitude
0
-Amplitude
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 106
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.7.7 FB LGF_SinusCI (NEU)
Kurzbeschreibung
Dieser Baustein generiert einen sinusförmigen Signalverlauf.
Baustein
Abbildung 3-76: FB LGF_SinusCI
FB LGF_SinusCI
REAL amplitude sinusValues REAL
REAL offset error BOOL
UDINT periodeMS statusID UINT
OB_CYCLIC callOB status WORD
BOOL reset
Eingangsparameter
Tabelle 3-144: Eingangsparameter
Parameter Datentyp Beschreibung
amplitude REAL Amplitude des Signalverlaufs.
offset REAL Verschiebung des Signalverlaufs in Y-Richtung.
periodeMS UDINT Periodendauer des Signalverlaufs in [ms]
callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)
reset BOOL Rücksetzen des Signalverlaufs.
Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.
Ausgangsparameter
Tabelle 3-145: Ausgangsparameter
Parameter Datentyp Beschreibung
sinusValues REAL Aktueller Wert des Dreiecksignales.
Status- und Fehleranzeigen
Tabelle 3-146: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 keine Fehler Auftrag abgeschlossen.
1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.
Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.
2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.
Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 107
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein berechnet die Werte für einen sinusförmigen Signalverlauf, die am Ausgangsparamter "sinusValues" ausgegeben werden.
Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.
Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "sinusValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.
Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.
Abbildung 3-77: Weckalarm-OB verschalten
Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:
𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟
𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵
Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.
Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.
Abbildung 3-78: Signalverlauf bei "offset" = 0
Periodendauer
Time
y
Amplitude
0
-Amplitude
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 108
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.7.8 FB LGF_CosinusCI (NEU)
Kurzbeschreibung
Dieser Baustein generiert einen cosinusförmigen Signalverlauf.
Baustein
Abbildung 3-79: FB LGF_CosinusCI
FB LGF_CosinusCI
REAL amplitude cosinusValues REAL
REAL offset error BOOL
UDINT periodeMS statusID UINT
OB_CYCLIC callOB status WORD
BOOL reset
Eingangsparameter
Tabelle 3-147: Eingangsparameter
Parameter Datentyp Beschreibung
amplitude REAL Amplitude des Signalverlaufs.
offset REAL Verschiebung des Signalverlaufs in Y-Richtung.
periodeMS UDINT Periodendauer des Signalverlaufs in [ms]
callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)
reset BOOL Rücksetzen des Signalverlaufs.
Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.
Ausgangsparameter
Tabelle 3-148: Ausgangsparameter
Parameter Datentyp Beschreibung
cosinusValues REAL Aktueller Wert des Dreiecksignales.
Status- und Fehleranzeigen
Tabelle 3-149: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 keine Fehler Auftrag abgeschlossen.
1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.
Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.
2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.
Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 109
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein berechnet die Werte für einen cosinusförmigen Signalverlauf, die am Ausgangsparamter "cosinusValues" ausgegeben werden.
Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.
Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "cosinusValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.
Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.
Abbildung 3-80: Weckalarm-OB verschalten
Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:
𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟
𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵
Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.
Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.
Abbildung 3-81: Signalverlauf bei "offset" = 0
Periodendauer
Time
y
-Amplitude
Amplitude
0
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 110
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.8 Technology operations
3.8.1 FB LGF_LimRateOfChangeBasic
Kurzbeschreibung
Dieser Baustein begrenzt die Änderungsgeschwindigkeit einer Eingangsgröße. Aus einer Sprungfunktion wird eine Rampenfunktion.
Baustein
Abbildung 3-82: FB LGF_LimRateOfChangeBasic
FB LGF_LimRateOfChangeBasic
REAL inputValue outputValue REAL
REAL setRateLim error BOOL
REAL defaultOutValue statusID UINT
BOOL onDefaultOutValue status WORD
OB_CYCLIC callOB
Eingangsparameter
Tabelle 3-150: Eingangsparameter
Parameter Datentyp Beschreibung
inputValue REAL Eingangsgröße (Sprungfunktion)
setRateLim REAL Änderungsrate der Rampenfunktion (1/Sekunde)
onDefaultOutValue BOOL Ausgangsgröße vorbelegen
dafaultOutValue REAL Wert für die Vorbelegung der Ausgangsgröße
callOB OB_CYCLIC Aufrufender Weckalarm-OB
Ausgangsparameter
Tabelle 3-151: Ausgangsparameter
Parameter Datentyp Beschreibung
outputValue REAL Ausgangsgröße
error BOOL 0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle)
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 111
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-152: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Keine Fehler -
1 16#7000 Initialwert "onDefaultOutValue" aktiv
1 16#8200 OB am Eingang "callOB" ist nicht projektiert/ vorhanden.
Verschalten Sie an den Eingang "callOB" einen projektierten/ vorhandenen Weckalarm-OB.
1 16#8201 Negative Änderungsrate. Parameter für die Änderungsrate darf nicht negativ sein.
2 - Fehler/Status von unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.
Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Die Rampe ist eine Begrenzungsgerade und bezieht sich auf eine Änderungsrate pro Sekunde; wird zum Beispiel "setRateLim = 10.0" parametriert, so wird bei einer Abtastzeit von 1s/100ms/10ms bei jedem Bausteinaufruf, wenn "inputValue > outputValue" ist, 10.0/1.0/0.1 zu "outputValue" addiert, bis "inputValue" erreicht ist.
Die Begrenzung der Änderungsrate ist sowohl im positiven als auch negativen Wertebereich für den Anstieg und den Abfall gültig.
Der Ausgang "outputValue" kann vorbeleget bzw. initialisiert werden.
Der Zeittakt des aufrufen Weckalarm-OBs wird ermittelt, in dem am Eingangsparameter "callOB" der aufrufende Weckalarm-OB verschaltet wird.
Abbildung 3-83: Weckalarm-OB verschalten
Ausgang vorbelegen
Wenn "onDefaultOutValue = TRUE" gesetzt ist, wird am Ausgang "defaultOutValue" ausgegeben; bei Änderung von TRUE nach FALSE wird "outputValue" von "defaultOutValue" nach "inputValue" rampenförmig gefahren. Beim Wechsel von FALSE nach TRUE springt Ausgang "outputValue" sofort zu "defaultOutValue".
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 112
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsverläufe
Abbildung 3-84: Rampenfunktionsverlauf
defaultOutValue
t
outputValue
inputValue (t)
onDefaultOutValue
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 113
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.8.2 FB LGF_LimRateOfChangeAdvanced
Kurzbeschreibung
Der Baustein LGF_LimRateOfChangeAdvanced begrenzt die Änderungsgeschwindigkeit einer Eingangsgröße. Aus Sprungfunktionen werden Rampenfunktionen. Zusätzlich verfügt der Baustein über verschiedene Betriebsarten.
Baustein
Abbildung 3-85: FB LGF_LimRateOfChangeAdvanced
FB LGF_LimRateOfChangeAdvanced
REAL inputValue outputValue REAL
REAL setPosUpRateLim posUpRateLim BOOL
REAL setPosDownRateLim posDownRateLim BOOL
REAL setNegUpRateLim negUpRateLim BOOL
REAL setNegDownRateLim negDownRateLim BOOL
REAL setHighLim highLim BOOL
REAL setLowLim lowLim BOOL
REAL processValue error BOOL
REAL defaultOutValue statusID UINT
BOOL onDefaultOutValue status WORD
BOOL track
BOOL manOp
BOOL reset
OB_CYCLIC callOB
Eingangsparameter
Tabelle 3-153: Eingangsparameter
Parameter Datentyp Beschreibung
inputValue REAL Eingangsgröße (Sprungfunktion)
setPosUpRateLim REAL Änderungsrate pro Sekunde für die steigende Rampe im positiven Wertebereich
setPosDownRateLim REAL Änderungsrate pro Sekunde für die fallende Rampe im positiven Wertebereich
setNegUpRateLim REAL Änderungsrate pro Sekunde für die steigende Rampe im negativen Wertebereich
setNegDownRateLim REAL Änderungsrate pro Sekunde für die fallende Rampe im negativen Wertebereich
setHighLim REAL Obere Begrenzung
setLowLim REAL Untere Begrenzung
processValue REAL Regelgröße
defaultOutValue REAL Wert für die Vorbelegung der Ausgangsgröße
onDefaultOutValue BOOL Ausgangsgröße vorbelegen
track BOOL Eingangsgröße durchschalten (Nachführen)
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 114
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Parameter Datentyp Beschreibung
manOp BOOL Regelgröße durchschalten
reset BOOL Neustart
callOB OB_CYCLIC Aufrufender Weckalarm-OB
Ausgangsparameter
Tabelle 3-154: Ausgangsparameter
Parameter Datentyp Beschreibung
outputValue REAL Ausgangsgröße
posUpRateLim BOOL Anstiegsbegrenzung im positiven Bereich angesprochen
posDownRateLim BOOL Abstiegsbegrenzung im positiven Bereich angesprochen
negUpRateLim BOOL Anstiegsbegrenzung im negativen Bereich angesprochen
negDownRateLim BOOL Abstiegsbegrenzung im negativen Bereich angesprochen
highLim BOOL Obere Begrenzung angesprochen
lowLim BOOL Untere Begrenzung angesprochen
error BOOL
0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus
statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle)
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 115
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-155: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Keine Fehler -
1 16#8200 OB am Eingang "callOB" ist nicht projektiert/ vorhanden.
Verschalten Sie an den Eingang "callOB" einen projektierten/ vorhandenen Weckalarm-OB.
1 16#8201 "setHighLim" < "setLowLim" Obere Begrenzung "setHighLim" muss größer sein als die untere Begrenzung "setLowLim".
1 16#8202 Negative Änderungsrate. Parameter für die Änderungsrate dürfen nur >= 0.0 sein
2 - Fehler/Status von unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.
Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Funktionsweise
Für den positiven/negativen Wertebereich sind je zwei Änderungsraten für die Rampe (steigende und fallende Werte) parametrierbar. Über Steuereingänge ist die Auswahl folgender Betriebsarten möglich:
Neustart
Ausgang vorbelegen
Normalbetrieb (Automatik)
Nachführen
Regelgröße durchschalten (Hand)
Die Ausgangsgröße kann durch zwei parametrierbare Grenzen begrenzt werden. Eine aktive Begrenzung der Änderungsrate einer Rampe sowie eine aktive Begrenzung der Ausgangsgröße werden über Ausgänge gemeldet.
Der Zeittakt des aufrufen Weckalarm-OBs wird ermittelt, in dem am Eingangsparameter "callOB" der aufrufende Weckalarm-OB verschaltet wird.
Abbildung 3-86: Weckalarm-OB verschalten
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 116
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Neustart
Bei Neustart "reset = TRUE" wird der Ausgang "outputValue" auf 0.0 rückgesetzt. Wenn "onDefaultOutValue = TRUE" gesetzt ist, wird "defaultOutValue" ausgegeben. Alle Signalausgänge werden auf FALSE gesetzt.
Ausgang vorbelegen
Wenn "onDefaultOutValue = TRUE" gesetzt ist, wird am Ausgang "defaultOutValue" ausgegeben; bei Änderung von TRUE nach FALSE wird outputValue von "defaultOutValue" nach "inputValue" rampenförmig gefahren. Beim Wechsel von FALSE nach TRUE springt Ausgang "outputValue" sofort zu "defaultOutValue".
Normalbetrieb
Die Rampen sind Begrenzungsgeraden und beziehen sich auf eine Änderungsrate pro Sekunde; wird zum Beispiel "setPosUpRateLim = 10.0" parametriert, so wird bei einer Abtastzeit von 1s/100ms/10ms bei jedem Bausteinaufruf, wenn "inputValue > outputValue" ist, 10.0/1.0/0.1 zu "outputValue" addiert, bis "inputValue" erreicht ist.
Die Begrenzung der Änderungsrate ist jeweils in positivem und negativem Wertebereich für den Anstieg und den Abfall parametrierbar.
Tabelle 3-156: Kennzeichnung der Rampen
Parameter Rampe
setPosUpRateLim outputValue > 0 und |outputValue| steigend
setPosDownRateLim outputValue > 0 und |outputValue| fallend
setNegUpRateLim outputValue < 0 und |outputValue| steigend
setNegDownRateLim outputValue < 0 und |outputValue| fallend
Wenn keine Parametrierung der Rampen vorgenommen wird ("setPosUpRateLim", "setPosDownRateLim", "setNegUpRateLim" und "setNegDownRateLim" gleich 0.0), bleibt der Ausgang auf dem Wert 0.0 und der Normalbetrieb ist außer Funktion.
Nachführen
Ist der Eingang "track = TRUE" gesetzt, wird die Eingangsgröße inputValue direkt zur Ausgangsgröße outputValue durchgeschaltet. Somit werden auch Sprünge der Eingangsgröße ausgegeben.
Regelgröße durchschalten
Wenn "manOp = TRUE" gesetzt ist, wird die Regelgröße "processValue" direkt auf die Ausgangsgröße "outputValue" durchgeschaltet.
In dieser Betriebsart sind die Parametrierung der Rampen bzw. der oberen/unteren Begrenzung der Ausgangsgröße und die Vorbelegung des Ausgangs unwirksam.
Beim Wechsel von TRUE nach FALSE, wird der Ausgang "outputValue" nach "inputValue" wieder rampenförmig gefahren.
Sobald der Werteabschnitt zwischen der unteren und oberen Begrenzung erreicht ist, wird die obere und untere Begrenzung wieder aktiviert.
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 117
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Funktionsverläufe
Abbildung 3-87: Rampenfunktionsverlauf, Betriebsarten
setHighLiminputValue (t)
setLowLim
processValue (t)
t
outputValue
defaultOutValue
highLim
posNegRateLim
lowLim
posUpRateLim
negDownRateLim
negUpRateLim
manOp
track
onDefaultOutValue
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 118
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.8.3 FB LGF_Ramp
Kurzbeschreibung
Dieser Baustein generiert eine Fahrkurve anhand einer Stützpunkttabelle. Zwischen den Punkten wird innerhalb der vorgegebenen Zeit linear interpoliert.
Baustein
Tabelle 3-157: FB LGF_Ramp
FB LGF_Ramp
REAL defaultOutValue outputValue REAL
INT contStepNbr actTimeTable BOOL
TIME contStepTime stepNumber INT
BOOL onDefaultOutValue remainTime TIME
BOOL start totalTime TIME
BOOL hold remainTotalTime TIME
BOOL continue error BOOL
BOOL cyclicOP statusID UINT
BOOL updateTime status WORD
BOOL reset
OB_CYCLIC callOB
ARRY of "typeTimeTable" setpoints
Eingangsparameter
Tabelle 3-158: Eingangsparameter
Parameter Datentyp Beschreibung
defaultOutValue REAL Wert für die Vorbelegung der Ausgangsgröße
contStepNbr INT Nummer des nächsten Stützpunktes zum Weitermachen
contStepTime
TIME Restzeit zum Weitermachen bis zum Stützpunkt "contStepNbr"
onDefaultOutValue BOOL Ausgangsgröße mit "defaultOutValue" vorbelegen
start BOOL Stützpunkttabelle abfahren
hold BOOL Aktuellen Wert am Ausgang halten
continue BOOL Weitermachen
cyclicOP BOOL Stützpunkttabelle zyklisch wiederholen
updateTime BOOL Zeitwerte aktualisieren
reset BOOL Neustart
callOB OB_CYCLIC Aufrufender Weckalarm-OB
setpoints
ARRY of "typeTimeTable"
Stützpunkttabelle. Informationen zum Datentyp "typeTimeTable" finden Sie unter Punkt "Globale Daten" .
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 119
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-159: Ausgangsparameter
Parameter Datentyp Beschreibung
outputValue REAL Ausgangsgröße
actTimeTable BOOL Stützpunkttabelle wird bearbeitet.
stepNumber
INT
aktuelle Stützpunktnummer (Stützpunkt, der angefahren wird)
remainTime TIME Restzeit bis Erreichen des nächsten Stützpunktes
totalTime TIME Gesamtzeit
remainTotalTime TIME Gesamtrestzeit
error
BOOL
0: keine Fehler
1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.
statusID
UINT
"statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
status
WORD
"status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-160: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 keine Fehler Auftrag abgeschlossen.
1 16#7000 Initialwert Neustart wurde durchgeführt.
1 16#7001 erster Aufruf Steigende Flanke "start".
1 16#7002 Folgeaufruf Eingang "cyclicOP" gesetzt.
1 16#8200 OB am Eingang "callOB" ist nicht projektiert/ vorhanden.
Verschalten Sie an den Eingang "callOB" einen projektierten/ vorhandenen Weckalarm-OB.
1 16#8201 Untere Arraygrenze <> 0 Das Array mit den Stützpunkten muss mit dem Index 0 beginnen.
2 - Fehler/Status von unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.
Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.
Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.
Globale Daten
Zusammen mit dem Baustein erhalten Sie automatisch den PLC Datentyp "typeTimeTable", welcher sich aus den Parametern "outVal" für den Wert eines Stützpunktes und "time" für die Zeit bis zum Erreichen des nächsten Stützpunktes zusammensetzt. Die Deklaration erfolgt in einem eindimensionalen Array vom Datentyp "typeTimeTable" beginnend mit dem Index 0. Das Array wird in einem
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 120
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
globalen Datenbaustein angelegt und dann an den Baustein "LGF_Ramp" übergeben.
Abbildung 3-88: Beispiel für die Deklaration der Stützpunkte
Der Parameter "time" des letzten Stützpunktes muss mit 0s parametriert werden, da kein Nachfolgestützpunkt mehr vorhanden ist.
Funktionsweise
Mit dem Baustein lassen sich anhand parametrierter Stützpunkte Fahrkurven ausführen; in jedem Aufrufzyklus werden Werte nach einem Zeitplan ausgegeben, wobei zwischen den Stützpunkten interpoliert wird.
In jedem Zyklus werden die aktuell angefahrene Stützpunktnummer "stepNumber", die aktuelle Restzeit "remainTime" bis zum Erreichen des Stützpunktes, die Gesamtzeit "totalTime" und die Gesamtrestzeit bis zum Erreichen des Fahrkurvenendes "remainTotalTime" ausgegeben. Desweitern wird der Ausgang "actTimeTable" gesetzt, wenn gerade die projektierte Fahrkurve ausgegeben wird.
Der Zeittakt des aufrufen Weckalarm-OBs wird ermittelt, indem am Eingangsparameter "callOB" der aufrufende Weckalarm-OB verschaltet wird.
Abbildung 3-89: Weckalarm-OB verschalten
Über Steuereingänge können folgende Betriebsarten ausgewählt werden:
Neustart
Ausgang vorbelegen
Fahrkurve ausgeben
Bearbeitung anhalten
Bearbeitungsschritt und –zeit vorgeben
Zyklischen Betrieb einschalten
Gesamtzeit und –restzeit aktualisieren
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 121
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Überblick über die Betriebsarten
Tabelle 3-161: Überblick über die Betriebsarten
Betriebsart onDefaultOutValue
start hold continue cyclicOP updateTime reset Ausgang/Aktion
Neustart TRUE ↑ Baustein wird initialisiert.
Ausgang vorbelegen TRUE TRUE FALSE defaultOutValue
Fahrkurve ausgeben FALSE TRUE ↑ FALSE FALSE FALSE outputValue(t); Endwert wird nach Bearbeitung gehalten
Fahrkurve anhalten FALSE TRUE TRUE FALSE FALSE aktueller Wert von outputValue(t) wird gehalten
Bearbeitungsschritt und –zeit vorgeben
FALSE TRUE TRUE TRUE ↑ FALSE outputValue (alt)
FALSE Weitermachen mit parametriertem Stützpunkt
Zyklischen Betrieb einschalten
FALSE TRUE FALSE TRUE FALSE outputValue(t); nach Ende automatischer Neustart
Gesamtzeit und –restzeit aktualisieren
TRUE ↑ FALSE Gesamtzeit und –restzeit werden aktualisiert.
Neustart
Mit einer steigenden Flanke am Eingang "reset" wird der Ausgang "outValue" auf 0.0 zurückgesetzt. Bei "onDefaultOutValue" = TRUE wird am Ausgang "defaultOutValue" ausgegeben. Die Gesamtzeit und Gesamtrestzeit wird aktualisiert und am Ausgang ausgegeben.
Ausgang vorbelegen
Soll die Fahrkurve mit einem bestimmten Ausgangswert beginnen, dann muss "onDefaultOutValue" = TRUE sein. In diesem Fall steht am Ausgang des Zeitplangebers der Wert "defaultOutValue" an. Die interne Abarbeitung der Fahrkurve läuft in dieser Zeit weiter. Wechselt "onDefaultOutValue" wieder auf FALSE, so wird zum aktuell aktiven Stützpunkt interpoliert.
Fahrkurve ausgeben
Mit einer steigenden Flanke am Eingangs "start" wird die Fahrkurve ausgegeben - solange "start" TRUE ist oder bis die Fahrkurve durch das Erreichen des letzten Stützpunktes beendet wurde. Durch eine erneute steigende Flanke, wird die Fahrkurve nochmals ausgegeben. Zusätzlich wird bei jedem Einschalten die Gesamtzeit aktualisiert.
Zyklischen Betrieb einschalten
Wird zusätzlich zum Eingang "start" auch der Eingang "cyclicOP" auf TRUE gesetzt, kehrt die Fahrkurve nach Ausgabe des letzten Stützpunktwertes automatisch zum Startpunkt zurück und beginnt einen neuen Durchlauf.
Zwischen dem letzten Stützpunktwert und dem Startpunkt wird nicht interpoliert. Für einen stoßfreien Übergang muss gelten: letzter Stützpunktwert = Startpunkt.
Fahrkurve anhalten
Mit "hold" = TRUE wird der Wert der Ausgangsgröße (inkl. der Zeitbearbeitung) eingefroren. Bei Rücksetzen "hold" = FALSE wird an der Unterbrechungsstelle bzw. an einer parametrierten Stelle (Siehe "Bearbeitungsschritt und –zeit
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 122
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
vorgeben) fortgefahren. Die Bearbeitungszeit der Fahrkurve verlängert sich um die Haltezeit "T1*" (sieheAbbildung 3-90).
Bearbeitungsschritt und –zeit vorgeben
Wird während dem Anhalten der Fahrkurve ("hold" = TRUE) der Eingangsparameter "continue" für das Fortsetzen auf TRUE gesetzt, dann wird nach dem Zurücksetzen des Eingangs "hold" die Stützpunktnummer "contStepNbr" (Zielstützpunkt) innerhalb der Zeit "contStepTime" angefahren (Interpolation). Die Gesamtrestzeit wird neu berechnet.
Gesamtzeit und Gesamtrestzeit aktualisieren
Bei Änderungen von Werten der Stützpunkte können sich die Gesamtzeit und die Gesamtrestzeit der Fahrkurve ändern. Da die Berechnung von "totalTime" und "remainTotalTime" bei vielen Stützpunkten die Bearbeitungszeit des Funktionsbausteins stark vergrößern kann, wird sie nur einmal bei einer steigenden Flanke am Eingang "updateTime" durchgeführt.
Funktionsverläufe
Abbildung 3-90: Funktionsverläufe
5*
t
outputValue
defaultOutValue
actTimeTable
onDafaultOutValue
start
hold
continue
0
1 2
3 4/ 4* = contStepNbr
5 6 6*
T* = contStepTime
T1*
T1*
projektierte Kurveaktuelle Kurve
* aktuelle Werte
setpoints[…].time 0 1 2 3 4 5
setpoints[…].outVal
4 + T1* 5
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 123
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
3.8.4 FB LGF_NonLin
Kurzbeschreibung
Dieser Baustein realisiert eine Kennlinie. Die Kennlinie wird über eine Stützpunkt-tabelle mit linearer Interpolation zwischen den Stützpunkten vorgegeben. Ein vor-gegebener Eingangswert generiert in jedem Zyklus anhand der Kennlinie aus der Stützpunkttabelle einen Ausgangswert.
Baustein
Abbildung 3-91: FB LGF_NonLin
FB LGF_NonLin
REAL inputValue outputValue REAL
REAL defaultOutValue
BOOL onDefaultOutValue
BOOL track
BOOL reset
LGF_type
NonLinSetpoints setpoints
Eingangsparameter
Tabelle 3-162: Eingangsparameter
Parameter Datentyp Beschreibung
inputValue REAL Eingangswert zur Berechnung des Ausgangswerts über die definierte Kennlinie.
defaultOutValue REAL Standard-Ausgangswert ohne Nutzung der Kennlinie
onDefaultOutValue BOOL Aktivierung des Standard-Ausgangswerts Der Standard-Ausgangswert wird solange ausgegeben, solange dieser Eingang gesetzt ist.
track BOOL Der Wert des Ausgangs "outputValue" wird dem Wert des Eingangs "inputValue" ohne Nutzung der Kennlinie nachgeführt, solange dieser Eingang gesetzt ist.
reset BOOL Falls im laufenden Betrieb die Stützpunkttabelle verändert wird, muss anschließend den Eingang "reset" betätigt werden. Sonst kann der Baustein die korrekte Ausführung nicht gewährleisten.
Ein-/Ausgangsparameter (InOut)
Tabelle 3-163: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
setpoints LGF_typeNonLinSetpoints Stützpunkttabelle zur Definition der Kennlinie
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 124
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-164: Ausgangsparameter
Parameter Datentyp Beschreibung
outputValue REAL Der Ausgangswert, der anhand des Eingangswerts über die definierte Kennlinie berechnet wurde.
Funktionsweise
Der Wert des Ausgangs "outputValue" wird anhand folgender Priorität ausgegeben:
1. Solange der Eingang "onDefaultOutValue" gesetzt ist, wird der über den Parameter "defaultOutValue" definierte Wert als Ausgangswert ausgegeben.
2. Solange der Eingang "reset" gesetzt ist, wird der Baustein zurückgesetzt und als Ausgangswert wird der Wert 0.0 ausgegeben.
3. Solange der Eingang "track" gesetzt ist, wird als Ausgangswert direkt der Eingangswert ohne Berücksichtigung der Kennlinie ausgegeben.
4. Anhand des Eingangswerts wird über die linear interpolierte Stützpunkttabelle ein Kennlinienwert berechnet und als Ausgangswert ausgegeben.
– Befindet sich der Eingangswert zwischen zwei Stützpunkten innerhalb der Stützpunkttabelle, wird der Ausgangswert als Schnittpunkt mit der Verbindungsgeraden zwischen dem vorhergehenden und nachfolgenden Stützpunkt berechnet (siehe Abbildung 3-92).
– Befindet sich der Eingangswert vor dem ersten Stützpunkt (geringster Wert der in der Stützpunkttabelle definiert wurde), wird der Ausgangswert als Schnittpunkt der Geraden berechnet, die aus den ersten beiden Stützpunkten der Stützpunkttabelle gebildet wird.
– Befindet sich der Eingangswert hinter dem letzten Stützpunkt (höchster Wert der in der Stützpunkttabelle definiert wurde), wird der Ausgangswert als Schnittpunkt der Geraden berechnet, die aus den letzten beiden Stützpunkten der Stützpunkttabelle gebildet wird.
Abbildung 3-92: Beispielhafter Verlauf des Ausgangssignals
Eingangssignal
Ausgangssignal
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 125
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
ACHTUNG Um die Rechenzeit des Bausteins möglichst gering zu halten, wird keine Überprüfung der Parametrierung oder der Daten der Stützpunkttabelle vorgenommen.
Beim Eintragen der Stützpunkte in die Stützpunkttabelle muss auf folgende Besonderheiten geachtet werden. Andernfalls kann es zu einem Fehlverhalten des Bausteins führen.
In der Stützpunkttabelle müssen mindestens zwei Stützpunkte eingetragen sein.
Die Stützpunkte in der Stützpunkttabelle müssen in aufsteigender Reihenfolge der Eingangswerte in der Tabelle eingetragen sein.
Stützpunkttabelle
Die Stützpunkttabelle wird durch eine Variable vom Datentyp Array realisiert. Der Typ des Arrays entspricht dem PLC-Datentyp "LGF_typeNonLinSetpoint".
Die Stützpunkttabelle können Sie in einem beliebigen globalen Datenbaustein anlegen. Die Größe des Arrays ist von der Anzahl der Stützpunkte abhängig.
Beispiel
Abbildung 3-93: Exemplarischer Datenbaustein
3.8.5 Regeln von simulierten Regelstrecken
In dem Beitrag "Regeln von simulierten Regelstrecken" erhalten Sie die Baustein-bibliothek "LSim" zur Simulation von Regelstrecken für die Steuerungsfamilien SIMATIC S7-1200 und S7-1500.
https://support.industry.siemens.com/cs/ww/de/view/79047707
4 Literaturhinweise
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 126
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
4 Literaturhinweise
Tabelle 4-1: Literaturhinweise
Themengebiet
\1\ Siemens Industry Online Support
http://support.automation.siemens.com
\2\ Downloadseite des Beitrages
https://support.industry.siemens.com/cs/ww/de/view/109479728
\3\ Programmierleitfaden und Programmierstyleguide
https://support.industry.siemens.com/cs/ww/de/view/81318674
\4\ Bibliothek mit PLC-Datentypen (LPD) für STEP 7 (TIA Portal) und S7-1200 / S7-1500
https://support.industry.siemens.com/cs/ww/de/view/109482396
\5\ Leitfaden zur Bibliothekshandhabung
https://support.industry.siemens.com/cs/ww/de/view/109747503
\6\ Themenseite Bibliotheken
https://support.industry.siemens.com/cs/ww/de/view/109738702
5 Historie
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 127
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
5 Historie
5.1 Versionierung der Bibliothek
Die Bibliothek und Bibliothekselemente werden gemäß folgender Tabelle gepflegt:
Tabelle 5-1: Definition der Version
V 1. 2. 3
Nichtkompatible Änderung
Kompatible Änderung
Fehlerkorrektur
Reduzierung der Schnittstellen
Ändern der Schnittstellen
Inkompatible Erweiterung der Funktionalität
Erweiterung der Schnittstellen
Kompatible Erweiterung der Funktionalität
Bugfix
Upgrade auf neue TIA Portal Version
Beispiel zu Versionierung
Tabelle 5-2: Beispiel für Änderung der Version
Bibliothek FB1 FB2 FC1 FC2 Kommentar
1.0.0 1.0.0 1.0.0 1.0.0 - freigegeben
1.0.1 1.0.1 1.0.0 1.0.0 - Fehlerbehebung von FB1
1.0.2 1.0.1 1.0.1 1.0.0 - Optimierung von FB2
1.1.0 1.1.0 1.0.1 1.0.0 - Erweiterung an FB1
1.2.0 1.2.0 1.0.1 1.0.0 - Erweiterung an FB1
2.0.0 2.0.0 1.0.1 2.0.0 - neue Funktionalität an FB1 und FC1
2.0.1 2.0.0 1.0.2 2.0.0 - Fehlerbehebung FB2
3.0.0 2.0.0 1.0.2 2.0.0 1.0.0 Neue Funktion FC2
3.0.1 2.0.1 1.0.3 2.0.1 1.0.1 Upgrade auf neue TIA Portal Version
3.0.2 2.0.2 1.0.4 2.0.2 1.0.0 Neue Funktionen, Fehlerbehebungen
5 Historie
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 128
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
5.2 Änderungsprotokoll
Tabelle 5-3 : Änderungsprotokoll
Version Datum Änderung
V1.0.0 09/2015 Erste Ausgabe
V1.0.1 10/2015 LGF_Astro V1.0.1
T_ADD Anweisung wurde durch "+” ersetzt.
V1.0.2 10/2015 LGF_BinaryToGray V1.0.1
Name geändert
LGF_GrayToBinary V1.0.1
Name geändert
V1.0.3 11/2015 LGF_CompareVariant V1.0.1
Fehlerkorrektur
V1.0.4 11/2015 LGF_SawTooth V1.0.1
Fehlerkorrektur
V1.0.5 11/2015 LGF_Astro V1.0.2
Fehlerkorrektur
LGF_AverageAndDeviation V1.0.1
Fehlerkorrektur
LGF_TimerSwitch V1.0.1
Fehlerkorrektur
LGF_FIFO V1.0.1
Fehlerkorrektur
V2.0 07/2016 Neu:
Kapitel 1.3 Bibliotheksressourcen
FB LGF_PulseRelay V1.0.0
FB LGF_SetTime V1.0.0
FB LGF_FloatingAverage V1.0.0
FC LGF_DTLtoString V1.0.0
FC LGF_StringToDTL V1.0.0
FB LGF_LimRateOfChangeBasic V1.0.0
FB LGF_LimRateOfChangeAdvanced V1.0.0
Überarbeitet:
LGF_Astro V1.1.1
Ausgang systemTime und localTime hinzugefügt
FB LGF_TimerSwitch V1.1.0
Zwei neue Modi: Werktag, Wochenende
FB LGF_ShallSort… V1.1.0
Neuer Mode: Absteigend Sortieren
FB LGF_Frequency V1.1.0
Neue Funktion: Puls-Pause-Verhältnis einstellbar
FB LGF_Impulse V1.1.0
Ruft neuen LGF_Frequency V1.1.0 auf.
V2.0.1 01/2017 Überarbeitet:
LGF_Astro V1.1.2
Fehlerkorrektur bei Sonnenauf- und Sonnenuntergangsberechnung.
V2.0.2 01/2017 Überarbeitet:
Alle Bausteine: Upgrade TIA V14
5 Historie
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 129
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Version Datum Änderung
V3.0.0 03/2017 Neu:
FC LGF_CalendarDayWeekV1.0.0
FC LGF_CompareReal V1.0.0
FC LGF_RandomBasic V1.0.0
FC LGF_HighLowLimit V1.0.0
FC LGF_BitsToWord V1.0.0
FC LGF_WordToBits V1.0.0
FC LGF_ScaleLinear V1.0.0
FC LGF_StringToTaddr V1.0.0
FC LGF_TaddrToString V1.0.0
FB LGF_Ramp V1.0.0
FB LGF_NonLin V1.0.0
Überarbeitet:
Ergänzung im Kapitel 5.1 Versionierung der Bibliothek
FB LGF_PulseRelay V1.0.2
Kommentarkorrektur
FB LGF_Astro V1.1.4
Codeoptimierung
FB LGF_SetTime V1.0.2
Korrektur: FB Nummer: automatic
FB LGF_FloatingAverage V1.1.0
Codeoptimierung
Neuer Eingangsparameter "windowSize"
FC LGF_MatrixAddition V2.0.0
Codeoptimierung
Eingangsparameter geändert auf ARRAY*
FC LGF_MatrixInverse V2.0.0
Codeoptimierung
Eingangsparameter geändert auf ARRAY*
FC LGF_MatrixMultiplication V2.0.0
Codeoptimierung
Eingangsparameter geändert auf ARRAY*
FC LGF_MatrixSubtraction V2.0.0
Codeoptimierung
Eingangsparameter geändert auf ARRAY*
FC LGF_MatrixTranspose V2.0.0
Codeoptimierung
Eingangsparameter geändert auf ARRAY*
FB LGF_Impulse V1.2.0
Codeoptimierung: kein Aufruf von LGF_Frequency mehr
V3.0.1 05/2017 Überarbeitet:
FB LGF_Ramp V1.0.1
Kommentarkorrektur
V4.0.0 09/2018 Neu:
FC LGF_GermanHoliday V1.0.0 FC LGF_Factorial V1.0.0 FC LGF_Distance V1.0.0 FB LGF_LIFO V1.0.0 FC LGF_CRC8 V1.0.0
5 Historie
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 130
S
iem
en
s A
G 2
01
8 A
ll ri
gh
ts r
ese
rve
d
Version Datum Änderung
FC LGF_CRC8For1Byte V1.0.0 FC LGF_CRC16 V1.0.0 FC LGF_CRC32 V1.0.0 FC LGF_IntToString V1.0.0 FC LGF_TimeToString V1.0.0 FB LGF_SawToothCI V1.0.0 FB LGF_TriangleCI V1.0.0 FB LGF_RectangleCI V1.0.0 FB LGF_SinusCI V1.0.0 FB LGF_CosinusCI V1.0.0
Überarbeitet:
Ergänzung von Kapitel 2.2 Simulierbarkeit mit SIMATIC S7-PLCSIM Advanced (NEU)
FB LGF_Astro V1.1.5
Codeoptimierung
FB LGF_TimerSwitch V1.1.2
Codeoptimierung
V4.0.1 09/2018 Überarbeitet:
Alle Bausteine: Upgrade TIA V15
V4.0.2 10/2018 FB LGF_TimerSwitch V1.1.4
Verbindung zum Typ wiederhergestellt.