Functions (LGF) für SIMATIC S7 1500 · 2020. 5. 11. · • SIMATIC S7-1500 und SIMATIC S7-1500 F...
Transcript of Functions (LGF) für SIMATIC S7 1500 · 2020. 5. 11. · • SIMATIC S7-1500 und SIMATIC S7-1500 F...
Library of General
Functions (LGF)
für SIMATIC
S7-1200 / S7-1500
STEP 7 Basic/Professional V15.1 (TIA PORTAL)
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.6, 11/2019 2
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 3
© S
iem
en
s A
G 2
01
9 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 ............................................................................... 9
2.1 Allgemein .............................................................................................. 9 2.2 Simulierbarkeit mit SIMATIC S7-PLCSIM Advanced ......................... 10 2.3 Anwenderdefinierte Dokumentation (Anwenderhilfe) (NEU) .............. 11
3 Erläuterung der Bausteine .............................................................................. 13
3.0 Bit logic operations ............................................................................. 14 3.0.1 LGF_PulseRelay ................................................................................ 14 3.1 Date and timer operations .................................................................. 16 3.1.1 LGF_Astro .......................................................................................... 16 3.1.2 LGF_SetTime ..................................................................................... 20 3.1.3 LGF_TimerSwitch ............................................................................... 24 3.1.4 LGF_CalendarDayWeek .................................................................... 27 3.1.5 LGF_GermanHoliday ......................................................................... 29 3.2 Counter operations ............................................................................. 31 3.2.1 LGF_CountFalInDWordFB ................................................................. 31 3.2.2 LGF_CountRisInDWordFB ................................................................. 33 3.3 Comperator operations ....................................................................... 35 3.3.1 LGF_CompareVariant ........................................................................ 35 3.3.2 LGF_CompareReal ............................................................................ 37 3.4 Math operations .................................................................................. 39 3.4.1 LGF_MatrixAddition ............................................................................ 39 3.4.2 LGF_MatrixInverse ............................................................................. 41 3.4.3 LGF_MatrixMultiplication .................................................................... 43 3.4.4 LGF_MatrixSubtraction ...................................................................... 45 3.4.5 LGF_MatrixTranspose ........................................................................ 47 3.4.6 LGF_MinMaxHistory ........................................................................... 48 3.4.7 LGF_RandomBasic ............................................................................ 49 3.4.8 LGF_RandomINT / LGF_RandomReal .............................................. 50 3.4.9 LGF_SearchMinMax .......................................................................... 52 3.4.10 LGF_XRoot ........................................................................................ 54 3.4.11 LGF_HighLowLimit ............................................................................. 55 3.4.12 LGF_Integration ................................................................................. 57 3.4.13 LGF_Factorial ..................................................................................... 59 3.4.14 LGF_Distance .................................................................................... 60 3.5 Data handling ..................................................................................... 61 3.5.1 LGF_FIFO .......................................................................................... 61 3.5.2 LGF_LIFO .......................................................................................... 64 3.5.3 LGF_ShellSortInt / LGF_ShellSortUInt / LGF_ShellSortReal ............ 67 3.5.4 LGF_CRC8 ......................................................................................... 69 3.5.5 LGF_CRC8For1Byte .......................................................................... 71 3.5.6 LGF_CRC16 ....................................................................................... 72 3.5.7 LGF_CRC32 ....................................................................................... 74 3.6 Converter operations .......................................................................... 76 3.6.1 LGF_BinaryToGray ............................................................................ 76 3.6.2 LGF_GrayToBinary ............................................................................ 77 3.6.3 LGF_BitsToWord ................................................................................ 78 3.6.4 LGF_WordToBits ................................................................................ 79 3.6.5 LGF_DTLtoString ............................................................................... 80
Inhaltsverzeichnis
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 4
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.6 LGF_StringToDTL .............................................................................. 82 3.6.7 LGF_TemperatureConvert ................................................................. 84 3.6.8 LGF_ScaleLinear ............................................................................... 85 3.6.9 LGF_StringToTaddr ........................................................................... 88 3.6.10 LGF_TaddrToString ........................................................................... 90 3.6.11 LGF_IntToString ................................................................................. 91 3.6.12 LGF_TimeToString ............................................................................. 92 3.6.13 LGF_UnixTimeToDTL (NEU) ............................................................. 93 3.6.14 LGF_DTLToUnixTime (NEU) ............................................................. 94 3.7 Signal generators ............................................................................... 95 3.7.1 LGF_Frequency ................................................................................. 95 3.7.2 LGF_Impulse ...................................................................................... 97 3.7.3 LGF_SawTooth .................................................................................. 98 3.7.4 LGF_SawToothCI ............................................................................. 100 3.7.5 LGF_TriangleCI ................................................................................ 103 3.7.6 LGF_RectangleCI ............................................................................. 106 3.7.7 LGF_SinusCI .................................................................................... 109 3.7.8 LGF_CosinusCI ................................................................................ 112 3.8 Technology operations ..................................................................... 115 3.8.1 LGF_LimRateOfChangeBasic .......................................................... 115 3.8.2 LGF_LimRateOfChangeAdvanced .................................................. 118 3.8.3 LGF_Ramp ....................................................................................... 123 3.8.4 LGF_NonLin ..................................................................................... 128 3.8.5 Regeln von simulierten Regelstrecken ............................................. 130 3.9 Measurement data processing ......................................................... 131 3.9.1 LGF_AverageAndDeviation ............................................................. 131 3.9.2 LGF_FloatingAverage ...................................................................... 132 3.9.3 LGF_Boxplot (NEU) ......................................................................... 134 3.9.4 LGF_Histogram (NEU) ..................................................................... 138 3.9.5 LGF_SimpleSmoothingFB / LGF_SimpleSmoothingFC (NEU) ....... 142 3.9.6 LGF_SmoothByPolynomFB / LGF_SmoothByPolynomFC
(NEU) ................................................................................................ 145 3.9.7 LGF_DifferenceQuotientFB / LGF_DifferenceQuotientFC (NEU) ... 148 3.9.8 LGF_RegressionLine (NEU) ............................................................ 152
4 Anhang............................................................................................................ 154
4.1 Service und Support ......................................................................... 154 4.2 Links und Literatur ............................................................................ 155 4.3 Änderungsdokumentation ................................................................ 156 4.3.1 Versionierung der Bibliothek ............................................................ 156 4.3.2 Änderungsprotokoll .......................................................................... 157
1 Bibliotheksübersicht
1.1 Allgemein
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 5
© S
iem
en
s A
G 2
01
9 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 4.3.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:
• SIMATIC S7-1200 und SIMATIC S7-1200 F Produktfamilie (ab Firmware V4.2)
• SIMATIC S7-1500 und SIMATIC S7-1500 F Produktfamilie (ab Firmware V2.0)
• Simulation mit SIMATIC S7-PLCSIM (ab V14)
Software
• SIMATIC STEP 7 Basic/Professional (TIA PORTAL)
Hinweis Es ist generell möglich eine Bibliothek mit STEP 7 Basic zu öffnen, obwohl STEP 7 Professional Elemente (z.B. SIMATIC 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. SIMATIC S7-1500 Steuerung), wird eine Fehlermeldung angezeigt.
1 Bibliotheksübersicht
1.3 Bibliotheksressourcen
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 6
© S
iem
en
s A
G 2
01
9 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)
Arbeitsspeicher
CPU 1511 Belegung (Byte)
Arbeitsspeicher
Bit logic operations
FB LGF_PulseRelay V1.0.5 120 204
Date and timer operations
FB LGF_Astro V1.1.7 3703 3782
FB LGF_SetTime V1.0.6 2354 2428
FB LGF_TimerSwitch V1.1.5 4537 4647
FC LGF_CalendarDayWeekV1.0.2 1692 1767
FC LGF_GermanHoliday V1.0.2 957 1021
Counter operations
FB LGF_CountFalInDWordFB V1.0.0 1166 1230
FB LGF_CountRisInDWordFB V1.0.0 1166 1230
Comperator operations
FC LGF_CompareVariant V1.0.4 608 705
FC LGF_CompareReal V1.0.2 118 182
Math operations
FC LGF_MatrixAddition V2.0.2 489 553
FC LGF_MatrixInverse V2.0.2 1018 1082
FC LGF_MatrixMultiplication V2.0.2 546 610
FC LGF_MatrixSubtraction V2.0.2 489 553
FC LGF_MatrixTranspose V2.0.2 383 447
FB LGF_MinMaxHistory V1.0.3 114 178
FC LGF_RandomBasic V1.0.2 185 249
FC LGF_RandomInt V1.0.3 246 310
FC LGF_RandomReal V1.0.4 280 344
FC LGF_SearchMinMax V1.0.3 4645 4709
FC LGF_XRoot V1.0.4 38 102
FC LGF_HighLowLimit V1.0.2 271 343
FB LGF_Integration V1.0.2 322 392
FC LGF_Factorial V1.0.2 146 210
FC LGF_Distance V1.1.0 63 127
1 Bibliotheksübersicht
1.3 Bibliotheksressourcen
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 7
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Baustein CPU 1212 Belegung (Byte)
Arbeitsspeicher
CPU 1511 Belegung (Byte)
Arbeitsspeicher
Data handling
FB LGF_FIFO V2.0.0 1661 1753
FB LGF_LIFO V2.0.0 1520 1608
FB LGF_ShellSortInt V2.0.0 1458 1571
FB LGF_ShellSortUint V2.0.0 1458 1571
FB LGF_ShellSortReal V2.0.0 1458 1571
FC LGF_CRC8 V1.0.2 205 269
FC LGF_CRC8For1Byte V1.0.2 106 170
FC LGF_CRC16 V1.0.2 224 288
FC LGF_CRC32 V1.0.2 858 922
Converter operations
FC LGF_BinaryToGray V1.0.4 36 100
FC LGF_GrayToBinary V1.0.4 872 936
FC LGF_BitsToWord V1.0.2 186 250
FC LGF_WordToBits V1.0.2 175 239
FC LGF_DTLtoString V1.0.3 877 936
FC LGF_StringToDTL V1.0.3 1116 1139
FC LGF_TemperatureConvert V1.0.3 227 291
FC LGF_ScaleLinear V2.0.0 211 275
FC LGF_StringToTaddr V1.0.2 1001 1059
FC LGF_TaddrToString V1.0.2 410 469
FC LGF_IntToString V1.0.2 156 215
FC LGF_TimeToString V1.0.2 1105 1164
FC LGF_UnixTimeToDTL V1.0.0 241 305
FC LGF_DTLToUnixTime V1.0.0 269 333
Signal generators
FB LGF_Frequency V1.1.4 353 420
FB LGF_Impulse V1.2.2 132 201
FB LGF_SawTooth V1.0.4 249 320
FB LGF_SawToothCI V1.0.2 284 355
FB LGF_TriangleCI V1.0.2 375 446
FB LGF_RectangleCI V1.0.2 265 336
FB LGF_SinusCI V1.0.2 294 365
FB LGF_CosinusCI V1.0.2 294 365
Technology operations
FB LGF_LimRateOfChangeBasic V1.0.3 362 435
FB LGF_LimRateOfChangeAdvanced V1.0.3 1476 1708
FB LGF_Ramp V1.0.3 1446 1523
FB LGF_NonLin V1.0.2 566 642
1 Bibliotheksübersicht
1.3 Bibliotheksressourcen
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 8
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Baustein CPU 1212 Belegung (Byte)
Arbeitsspeicher
CPU 1511 Belegung (Byte)
Arbeitsspeicher
Measurement data processing
FC LGF_AverageAndDeviation V2.0.0 273 332
FB LGF_FloatingAverage V1.1.2 750 832
FB LGF_Boxplot V1.0.0 7477 7588
FB LGF_Histogram V1.0.0 4514 4669
FB LGF_SimpleSmoothingFB V1.0.0 551 556
FC LGF_SimpleSmoothingFC V1.0.0 321 385
FB LGF_SmoothByPolynomFB V1.1.0 514 659
FC LGF_SmoothByPolynomFC V1.0.0 1177 1241
FB LGF_DifferenceQuotientFB V1.0.1 556 635
FC LGF_DifferenceQuotientFC V1.0.0 1142 1206
FC LGF_RegressionLine V1.0.0 379 443
2 Arbeiten mit der Bibliothek
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 9
© S
iem
en
s A
G 2
01
9 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 SIMATIC S7-1200 und SIMATIC 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
• Automatisieren 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
• Bibliothek mit PLC-Datentypen für Peripherie- / Technologie-Module und PROFIdrive Antriebe (LPD) https://support.industry.siemens.com/cs/ww/de/view/109482396
2 Arbeiten mit der Bibliothek
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 10
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
2.2 Simulierbarkeit mit SIMATIC S7-PLCSIM Advanced
In den Eigenschaften der LGF Bausteine ist die Simulation mit SIMATIC S7-PLCSIM Advanced bereits aktiviert.
Abbildung 2-1: Bausteineigenschaften
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").
Hinweis Bausteine mit aktivierter Simulierbarkeit belegen mehr Speicherplatz in der PLC.
2 Arbeiten mit der Bibliothek
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 11
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
2.3 Anwenderdefinierte Dokumentation (Anwenderhilfe) (NEU)
Um den Anwendern der Bibliothek LGF die Funktionsweise und die Verwendung der Bausteine zu erläutern, wurde für jeden Baustein eine anwenderdefinierte Dokumentation erstellt. Die anwenderdefinierte Dokumentation pro Bausteine ist in den Sprachen Deutsch und Englisch als PDF-Datei verfügbar. Die PDF-Dateien sind in folgenden Verzeichnissen der Bibliothek LGF gespeichert.
• Deutsch: "UserFiles\UserDocumentation\de-DE\Library Types"
• Englisch: "UserFiles\UserDocumentation\en-US\Library Types"
Die anwenderdefinierte Dokumentation zu einem Baustein können Sie in der Task Card "Bibliothek" und in der Bibliotheksansicht mit der Tastenkombination <Shift+F1> aufrufen. Die jeweilige PDF wird immer mit dem in Microsoft Windows festgelegten Standardprogramm geöffnet.
Damit die anwenderdefinierten Dokumentationen der Bausteine auch in der Projektnavigation aufgerufen werden kann, müssen Sie die Verzeichnisse mit den PDF-Dateien in das Projektverzeichnis "UserFiles" kopieren.
Hinweis Für die Anwenderdefinierte Dokumentation benötigen Sie SIMATIC STEP 7 Basic/Professional V15.1 Update 1.
Zentrales Verzeichnis für anwenderdefinierte Dokumentation
Alternativ können Sie die anwenderdefinierte Dokumentation auch projektüber-greifend in einem zentralen Verzeichnis ablegen. Um einen zentralen Ablageort für Anwenderhilfe festzulegen, gehen Sie folgendermaßen vor:
1. Wählen Sie im Menü "Extras" ("Options") den Befehl "Einstellungen" ("Settings").
2. Öffnen Sie den Bereich "Allgemein > Allgemein" ("General > General").
3. Navigieren Sie zum Abschnitt "Anwenderdokumentation" ("User documentation").
4. Aktivieren Sie das Optionskästchen "Aufrufprotokoll zu anwenderdefinierter Dokumentation anzeigen" ("Display call log for user-defined documentation"), um im Inspektorfenster ein Protokoll vom Aufruf der anwenderdefinierten Dokumentation anzuzeigen.
5. Aktivieren Sie das Optionskästchen "Suche nach anwenderdefinierter Dokumentation in einem zentralen Verzeichnis" ("Search for user-defined documentation in a central directory"), um anwenderdefinierte Dokumentation in einem projektübergreifenden Verzeichnis abzulegen.
6. Geben Sie im Feld "Zentrales Verzeichnis für anwenderdefinierte Dokumentation" ("Central directory for user-defined documentation") den Pfad an, an dem Sie projektübergreifende Dokumentation speichern.
2 Arbeiten mit der Bibliothek
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 12
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Hinweis Ändern Sie nicht die Namen der PDF, denn der Dateiname muss exakt dem Namen des Objekts im TIA Portal entsprechen.
Hinweis Weitere Informationen zur anwenderdefinierten Dokumentation finden Sie im Systemhandbuch "SIMATIC STEP 7 Basic/Professional V15.1 und SIMATIC WinCC V15.1" unter:
https://support.industry.siemens.com/cs/ww/de/view/109755202/114872699275
3 Erläuterung der Bausteine
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 13
© S
iem
en
s A
G 2
01
9 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)
• Measurement operations (Messdatenoperationen)
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.6, 11/2019 14
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.0 Bit logic operations
3.0.1 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.6, 11/2019 15
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 16
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.1 Date and timer operations
3.1.1 LGF_Astro
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än
gen
grad
Äquator
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.6, 11/2019 17
© S
iem
en
s A
G 2
01
9 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 FALSE: Übergabeformat der Position in "Grad dezimal" über die Formalparameter "latitudeDD" und "longitudeDD"
TRUE: Ü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 FALSE: Kein Fehler
TRUE: 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.6, 11/2019 18
© S
iem
en
s A
G 2
01
9 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 Kein 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.6, 11/2019 19
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Sonnenuntergang hinzugerechnet 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.6, 11/2019 20
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.1.2 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
Hinweis: Für andere lokale Zeitzonen müssen Sie die statische Variable "statTimeZone" in der Schnittstelle des Bausteins anpassen. (siehe Parameter in Variable "statTimeZone" anpassen)
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 21
© S
iem
en
s A
G 2
01
9 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 FALSE: Kein Fehler
TRUE: 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 Kein 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.6, 11/2019 22
© S
iem
en
s A
G 2
01
9 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) Moscow, St. Petersburg, Baghdad, Kuwait, Riyadh
330 (UTC +03:30) Iran: Teheran
400 (UTC +04:00) Abu Dhabi, Muscat
430 (UTC +04:30) Afghanistan: Kabul
500 (UTC +05:00) Islamabad, Karachi, Tashkent
530 (UTC +05:30) India, Sri Lanka
545 (UTC +05:45) Nepal
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 Korea old
845 (UTC +08:45) Western Australia: Eucla
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) Tonga, Samoa
1400 (UTC +14:00) Kiribati
Hinweis Sommer-/Winterzeit
Die Parameter (Zeitunterschied, Beginn Sommerzeit, Beginn Winterzeit) müssen in der statischen Variablen "statTimeZone" an die gewünschte Zeitzone ange-passt werden.
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 23
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Parameter in Variable "statTimeZone" anpassen
Die statische Variable "statTimeZone" in der Schnittstelle des Bausteins ist vom Systemdatentyp TimeTransformationRule. Im diesem Systemdatentyp sind die Parameter für die lokale Zeitzone und die Sommer-/Winterzeitumschaltung hinterlegt.
Die Defaultwerte der statischen Variablen "statTimeZone" sind in der Schnittstelle des Bausteins auf die Mitteleuropäische Sommerzeit eingestellt:
• Zeitunterschied: 60 min
• Beginn Sommerzeit: Letzter Sonntag im März, 02:00 a.m.
• Beginn Winterzeit: letzter Sonntag im Oktober, 03:00 a.m.
Die folgende Abbildung zeigt die Einstellungen für die Sommer-/Winterzeitum-schaltung der Mitteleuropäischen Sommerzeit.
Der Parameter "Bias" wird vom Eingangsparameter "timeZone" bestimmt. Der Parameter "DaylightBias" ist abhängig vom Eingangsparameter "daylightSavingTime" und ist entweder "0" oder "60".
Für andere Zeitzonen müssen die markierten Parameter zur Sommer-/Winter-zeitumschaltung angepasst werden.
Abbildung 3-8
3 Erläuterung der Bausteine
3.1 Date and timer operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 24
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.1.3 LGF_TimerSwitch
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-9: 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.6, 11/2019 25
© S
iem
en
s A
G 2
01
9 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 FALSE: Kein Fehler
TRUE: 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 Kein 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.6, 11/2019 26
© S
iem
en
s A
G 2
01
9 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
Mode Modus Benötigte Formalparameter
1 Tägliche Zeitschaltuhr • onHour / offHour
• onMinute / offMinute
2 Wöchentlich Zeitschaltuhr • onWeekday / offWeekday
• onHour / offHour
• onMinute / offMinute
3 Monatliche Zeitschaltuhr • onDay / offDay
• onHour / offHour
• onMinute / offMinute
4 Jährliche Zeitschaltuhr • onMonth / offMonth
• onDay / offDay
• onHour / offHour
• onMinute / offMinute
5 Werktags • onHour / offHour
• onMinute / offMinute
6 Wochenende • 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.6, 11/2019 27
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.1.4 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-10: 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.
FALSE: Zählweise für die USA und viele anderen Länder
TRUE: 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.
FALSE: kein Fehler.
TRUE: 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 Kein 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.6, 11/2019 28
© S
iem
en
s A
G 2
01
9 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 = FALSE: Zählweise für die USA und viele anderen Länder
• modeEU = TRUE: 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.6, 11/2019 29
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.1.5 LGF_GermanHoliday
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-11: 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.6, 11/2019 30
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 31
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.2 Counter operations
3.2.1 LGF_CountFalInDWordFB
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-12: Beispiel für ein Oversampling von DI0 am TM Timer DIDQ 16x24V
Der Baustein LGF_CountFalInDWordFB 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-13: FB LGF_CountFalInDWordFB
FB LGF_CountFalInDWordFB
DWORD dWordActCycle countFalInDWord INT
Eingangsparameter
Tabelle 3-18: Eingangsparameter
Parameter Datentyp Beschreibung
dWordActCycle DWORD Doppelwort in dem die fallenden Flanken gezählt werden
3 Erläuterung der Bausteine
3.2 Counter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 32
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-19: Ausgangsparameter
Parameter Datentyp Beschreibung
countFalInDWord 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 "countFalInDWord" gibt dabei die Anzahl der fallenden Flanken aus.
Damit auch fallende Flanken an der Variablengrenze erkannt werden, wird der Eingang "dWordActCycle" am Ende der Auswertung auf die statische Variable "statDWordPrevCycle" kopiert und im nächsten Zyklus mit ausgewertet.
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 "statDWordPrevCycle" mit dem Doppelwort der vorherigen Abtastung verschaltet werden.
Tabelle 3-20: Beispiel
DWORD vorheriger Zyklus (statDWordPrevCycle)
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
Hinweis Der FB "LGF_CountFalInDWordFB" ersetzt den FC "LGF_CountFalInDWord". Den FC finden Sie im Ordner "99 Legacy".
3 Erläuterung der Bausteine
3.2 Counter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 33
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.2.2 LGF_CountRisInDWordFB
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-14: Beispiel für ein Oversampling von DI0 am TM Timer DIDQ 16x24V
Der Baustein LGF_CountRisInDWordFB 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-15: FB LGF_CountRisInDWordFB
FB LGF_CountRisInDWordFB
DWORD dWordActCycle countRisInDWord INT
Eingangsparameter
Tabelle 3-21: Eingangsparameter
Parameter Datentyp Beschreibung
dWordActCycle DWORD Doppelwort in dem die steigenden Flanken gezählt werden
3 Erläuterung der Bausteine
3.2 Counter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 34
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-22: Ausgangsparameter
Parameter Datentyp Beschreibung
countRisInDWord 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 "countRisInDWord" gibt dabei die Anzahl der steigenden Flanken aus.
Damit auch steigende Flanken an der Variablengrenze erkannt werden, wird der Eingang "dWordActCycle" am Ende der Auswertung auf die statische Variable "statDWordPrevCycle" kopiert und im nächsten Zyklus mit ausgewertet.
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 "statDWordPrevCycle" mit dem Doppelwort der vorherigen Abtastung verschaltet werden.
Tabelle 3-23: Beispiel
DWORD vorheriger Zyklus (statDWordPrevCycle)
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
Hinweis Der FB "LGF_CountRisInDWordFB" ersetzt den FC "LGF_CountRisInDWord". Den FC finden Sie im Ordner "99 Legacy".
3 Erläuterung der Bausteine
3.3 Comperator operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 35
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.3 Comperator operations
3.3.1 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-16: 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 FALSE: Werte der Vergleichsvariablen oder PLC Datentypen sind unterschiedlich.
TRUE: Werte der Vergleichsvariablen sind gleich und PLC Datentypen sind identisch.
error BOOL FALSE: Kein Fehler
TRUE: 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.6, 11/2019 36
© S
iem
en
s A
G 2
01
9 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 Kein Fehler -
2 - Fehler/Status von unterlagerten Baustein "Serialize"
-
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.6, 11/2019 37
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.3.2 LGF_CompareReal
Kurzbeschreibung
Diese Funktion überprüft über eine Näherungsformel zwei REAL-Zahlen auf ihre Gleichheit.
Baustein
Abbildung 3-17: 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 FALSE: ungleich
TRUE: gleich
error BOOL Fehleranzeige.
FALSE: Kein Fehler.
TRUE: 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 Kein 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.
3 Erläuterung der Bausteine
3.3 Comperator operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 38
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Näherungsformel
|𝑣𝑎𝑙𝑢𝑒𝐴 − 𝑣𝑎𝑙𝑢𝑒𝐵|
|𝑣𝑎𝑙𝑢𝑒𝐴| + |𝑣𝑎𝑙𝑢𝑒𝐵|≤ 𝐸𝑃𝑆𝐼𝐿𝑂𝑁
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.6, 11/2019 39
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4 Math operations
3.4.1 LGF_MatrixAddition
Kurzbeschreibung
Dieser Baustein addiert zwei gleich große Matrizen vom Datentyp ARRAY of REAL.
(
𝑎11 ⋯ 𝑎1𝑛⋮ ⋱ ⋮𝑎𝑚1 ⋯ 𝑎𝑚𝑛
) + (𝑏11 ⋯ 𝑏1𝑛⋮ ⋱ ⋮𝑏𝑚1 ⋯ 𝑏𝑚𝑛
) = (𝑎11 + 𝑏11 ⋯ 𝑎1𝑛 + 𝑏1𝑛
⋮ ⋱ ⋮𝑎𝑚1 + 𝑏𝑚1 ⋯ 𝑎𝑚𝑛 + 𝑏𝑚𝑛
)
Baustein
Abbildung 3-18: 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-31: Eingangsparameter
Parameter Datentyp Beschreibung
matrix1 ARRAY of REAL Erster Summand (Matrix)
matrix2 ARRAY of REAL Zweiter Summand (Matrix)
Ausgangsparameter
Tabelle 3-32: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL Summe (Matrix)
error BOOL FALSE: Kein Fehler
TRUE: 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-33: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.6, 11/2019 40
© S
iem
en
s A
G 2
01
9 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
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.6, 11/2019 41
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.2 LGF_MatrixInverse
Kurzbeschreibung
Dieser Baustein invertiert eine quadratische Matrix vom Datentyp ARRAY of REAL.
Baustein
Abbildung 3-19: FC LGF_MatrixInverse
FC LGF_MatrixInverse
ARRAY of REAL matrix matrixResult ARRAY of REAL
error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-34: Eingangsparameter
Parameter Datentyp Beschreibung
matrix ARRAY of REAL Quadratische Eingangsmatrix (Array [0..x,0..x] of REAL)
Ausgangsparameter
Tabelle 3-35: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL Invertierte Matrix
error BOOL FALSE: Kein Fehler
TRUE: 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-36: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.6, 11/2019 42
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 43
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.3 LGF_MatrixMultiplication
Kurzbeschreibung
Dieser Baustein multipliziert zwei Matrizen vom Datentyp Array of REAL.
Beispiel für 2x2-Matrix:
(𝑎11 𝑎12𝑎21 𝑎22
) ∗ (𝑏11 𝑏12𝑏21 𝑏22
) = (𝑎11𝑏11 + 𝑎12𝑏21 𝑎11𝑏12 + 𝑎12𝑏22𝑎21𝑏11 + 𝑎22𝑏21 𝑎21𝑏12 + 𝑎22𝑏22
)
Baustein
Abbildung 3-20: 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-37: Eingangsparameter
Parameter Datentyp Beschreibung
matrix1 ARRAY of REAL Erster Faktor: Zu multiplizierende Matrix
matrix2 ARRAY of REAL Zweiter Faktor: Zu multiplizierende Matrix
Ausgangsparameter
Tabelle 3-38: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL Produkt: Die resultierende Matrix
error BOOL FALSE: Kein Fehler
TRUE: 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.6, 11/2019 44
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-39: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.6, 11/2019 45
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.4 LGF_MatrixSubtraction
Kurzbeschreibung
Dieser Baustein subtrahiert eine Matrix vom Datentyp ARRAY of REAL von einer anderen.
(
𝑎11 ⋯ 𝑎1𝑛⋮ ⋱ ⋮𝑎𝑚1 ⋯ 𝑎𝑚𝑛
) − (𝑏11 ⋯ 𝑏1𝑛⋮ ⋱ ⋮𝑏𝑚1 ⋯ 𝑏𝑚𝑛
) = (𝑎11 − 𝑏11 ⋯ 𝑎1𝑛 − 𝑏1𝑛
⋮ ⋱ ⋮𝑎𝑚1 − 𝑏𝑚1 ⋯ 𝑎𝑚𝑛 − 𝑏𝑚𝑛
)
Baustein
Abbildung 3-21: 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-40: 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-41: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL Differenz: Die resultierende Matrix
error BOOL FALSE: Kein Fehler
TRUE: 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).
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 46
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-42: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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
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.6, 11/2019 47
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.5 LGF_MatrixTranspose
Kurzbeschreibung
Dieser Baustein transponiert eine Matrix vom Datentyp ARRAY of REAL.
Bedingung: Eingangsmatrix (m x n) = Ausgangsmatrix (n x m)
𝐴 = (
𝑎11 ⋯ 𝑎1𝑛⋮ ⋱ ⋮𝑎𝑚1 ⋯ 𝑎𝑚𝑛
) ; 𝐴𝑇 = (
𝑎11 ⋯ 𝑎𝑚1⋮ ⋱ ⋮𝑎1𝑛 ⋯ 𝑎𝑚𝑛
)
Baustein
Abbildung 3-22: FC LGF_MatrixTranspose
FC LGF_MatrixTranspose
ARRAY of REAL matrix matrixResult ARRAY of REAL
error BOOL
statusID UINT
status WORD
Eingangsparameter
Tabelle 3-43: Eingangsparameter
Parameter Datentyp Beschreibung
matrix ARRAY of REAL zu transponierende Matrix
Ausgangsparameter
Tabelle 3-44: Ausgangsparameter
Parameter Datentyp Beschreibung
matrixResult ARRAY of REAL resultierende Matrix
error BOOL FALSE: Kein Fehler
TRUE: 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-45: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.6, 11/2019 48
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.6 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-23: FB LGF_MinMaxHistory
FB LGF_MinMaxHistory
LREAL variable minValue LREAL
BOOL reset maxValue LREAL
Eingangsparameter
Tabelle 3-46: 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-47: 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.6, 11/2019 49
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.7 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-24: FC LGF_RandomBasic
FC LGF_RandomBasic
Ret_Val REAL
Ausgangsparameter
Tabelle 3-48: 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.6, 11/2019 50
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.8 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-25: 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-49: 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-50: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val INT / REAL Zufallszahl
error BOOL FALSE: Kein Fehler
TRUE: 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-51: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Kein 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.6, 11/2019 51
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 52
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.9 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-26: 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-52: Eingangsparameter
Parameter Datentyp Beschreibung
variableArray VARIANT Array, in dessen Feldern das Maximum und Minimum gesucht wird.
Ausgangsparameter
Tabelle 3-53: 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 FALSE: Kein Fehler
TRUE: 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.6, 11/2019 53
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-54: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Kein 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.6, 11/2019 54
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.10 LGF_XRoot
Kurzbeschreibung
Dieser Baustein berechnet die x-te Wurzel einer numerischen Variablen.
Baustein
Abbildung 3-27: FC LGF_Random
FC LGF_XRoot
REAL variable Ret_Val REAL
REAL root
Eingangsparameter
Tabelle 3-55: 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-56: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val REAL Ausgabe des Ergebnisses
Funktionsweise
Der Baustein berechnet die n-te Wurzel aus einer Zahl.
Die Wurzel ist folgendermaßen definiert:
𝑅𝑒𝑡_𝑉𝑎𝑙 = √𝑛𝑢𝑚𝑏𝑒𝑟𝑟𝑜𝑜𝑡
= 𝑛𝑢𝑚𝑏𝑒𝑟1
𝑟𝑜𝑜𝑡
In STEP 7 (TIA Portal) ergibt sich folgende Formel:
𝑅𝑒𝑡𝑉𝑎𝑙 = 𝑛𝑢𝑚𝑏𝑒𝑟 ∗∗ (1 𝑟𝑜𝑜𝑡⁄ )
3 Erläuterung der Bausteine
3.4 Math operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 55
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.11 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-28: 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-57: 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-58: 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: Kein Fehler
TRUE: Fehler im Baustein
status WORD 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.6, 11/2019 56
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-59: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#0000 Kein Fehler -
16#8101 Falscher Wertebereich "highValue" -
16#8102 Falscher Wertebereich "lowValue" -
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-29: 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.6, 11/2019 57
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.12 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-30: FB LGF_Integration
FB LGF_Integration
REAL value integral REAL
BOOL enable error BOOL
BOOL reset statusID UINT
status WORD
Eingangsparameter
Tabelle 3-60: 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-61: Ausgangsparameter
Parameter Datentyp Beschreibung
integral LREAL Integrierter Wert
error BOOL FALSE: Kein Fehler
TRUE: 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-62: Status/Fehlercodes
statusID Status Bedeutung Abhilfe / Hinweise
0 16#0000 Kein 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.6, 11/2019 58
© S
iem
en
s A
G 2
01
9 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-31: 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.6, 11/2019 59
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.13 LGF_Factorial
Kurzbeschreibung
Die Funktion berechnet die Fakultät einer natürlichen Zahl.
Baustein
Abbildung 3-32: LGF_Factorial
FC LGF_Factorial
INT n Ret_Val DINT
error BOOL
status WORD
Eingangsparameter
Tabelle 3-63: Eingangsparameter
Parameter Datentyp Beschreibung
n INT Natürliche Zahl
Ausgangsparameter
Tabelle 3-64: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DINT Berechnete Fakultät
error BOOL FALSE: Kein Fehler
TRUE: 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-65: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#0000 Kein 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.6, 11/2019 60
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.4.14 LGF_Distance
Kurzbeschreibung
Die Funktion berechnet den Abstand zwischen zwei Punkten in der Ebene.
Baustein
Abbildung 3-33: FC LGF_Distance
FC LGF_Distance
LREAL x1 Ret_Val LREAL
LREAL y1
LREAL x2
LREAL y2
Eingangsparameter
Tabelle 3-66: Eingangsparameter
Parameter Datentyp Beschreibung
x1 LREAL X-Koordinate Punkt 1
y1 LREAL Y-Koordinate Punkt 1
x2 LREAL X-Koordinate Punkt 2
y2 LREAL Y-Koordinate Punkt 2
Ausgangsparameter
Tabelle 3-67: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val LREAL Berechneter Abstand
Funktionsweise
Der Baustein berechnet den Abstand zwischen zwei Punkten in einem kartesischen Koordinatensystem. Der Abstand wird mit nachfolgender Formel berechnet:
𝑅𝑒𝑡_𝑉𝑎𝑙 = √(𝑥2 − 𝑥1)² + (𝑦2 − 𝑦1)²𝑟𝑜𝑜𝑡
Abbildung 3-34: 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.6, 11/2019 61
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.5 Data handling
3.5.1 LGF_FIFO
Kurzbeschreibung
Dieser Baustein speichert eingehende Aufträge/Daten und gibt den ältesten noch nicht abgearbeiteten Auftrag aus.
Baustein
Abbildung 3-35: FB LGF_FIFO
FB LGF_FIFO
BOOL execute error BOOL
BOOL mode statusID UINT
VARIANT initialValue status WORD
BOOL resetBuffer
VARIANT item (InOut)
VARIANT buffer (InOut)
Eingangsparameter
Tabelle 3-68: 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-69: 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.6, 11/2019 62
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-70: Ausgangsparameter
Parameter Datentyp Beschreibung
error BOOL FALSE: Kein Fehler
TRUE: 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-71: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Kein 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.
Hinweis Die Warteschlange (Queue) in der Informatik beruht ebenfalls auf dem FIFO-Prinzip.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 63
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 64
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.5.2 LGF_LIFO
Kurzbeschreibung
Dieser Baustein speichert eingehende Aufträge/Daten und gibt den aktuellsten noch nicht abgearbeiteten Auftrag/Daten aus.
Baustein
Abbildung 3-36: FB LGF_LIFO
FB LGF_LIFO
BOOL execute error BOOL
BOOL mode statusID UINT
VARIANT initialValue status WORD
BOOL resetBuffer
VARIANT item (InOut)
VARIANT buffer (InOut)
Eingangsparameter
Tabelle 3-72: 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-73: 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.6, 11/2019 65
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-74: Ausgangsparameter
Parameter Datentyp Beschreibung
error BOOL FALSE: Kein Fehler
TRUE: 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-75: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Kein 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.
Hinweis Der Stack in der Informatik beruht ebenfalls auf dem LIFO-Prinzip.
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 66
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 67
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.5.3 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-37: FB LGF_ShellSort…
FB LGF_ShellSort…
BOOL mode error BOOL
statusID UINT
VARIANT variantArray (InOut) status WORD
Eingangsparameter
Tabelle 3-76: Eingangsparameter
Parameter Datentyp Beschreibung
mode BOOL FALSE: aufsteigend sortieren (Standard)
TRUE: absteigend sortieren
Ein-/Ausagnagsparameter (InOut)
Tabelle 3-77: Ein-/Ausagnagsparameter (InOut)
Parameter Datentyp Beschreibung
variantArray VARIANT Array, das sortiert werden soll.
Ausgangsparameter
Tabelle 3-78: Ausgangsparameter
Parameter Datentyp Beschreibung
error BOOL FALSE: Kein Fehler
TRUE: 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.6, 11/2019 68
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-79: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#7000 Initialwert -
1 16#0000 Kein 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-80: Ausführungszeiten des Bausteins "LGF_ShellSort…"
Anzahl der Array-Elemente
SIMATIC S7-1212C DC/DC/DC SIMATIC 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.6, 11/2019 69
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.5.4 LGF_CRC8
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-38: FB LGF_CRC8
FC LGF_CRC8
BYTE initValue Ret_Val BYTE
BYTE mask
ARRAY of BYTE inputArray
Eingangsparameter
Tabelle-81: 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-82: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
inputArray ARRAY of BYTE Datenstrom, für den der CRC-Wert berechnet werden soll.
Ausgangsparameter
Tabelle-83: 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.6, 11/2019 70
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Hinweis Für die Berechnung der CRC-Werte stehen verschiedene Online-Tools zur Verfügung. Die Funktion des Bausteins wurde mit folgendem Online-Tool getestet, da es die Eingangsparameter "mask" ("Polynom") und "initValue" ("Initial Value") unterstützt:
http://www.sunshine2k.de/coding/javascript/crc/crc_js.html
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 71
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.5.5 LGF_CRC8For1Byte
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-39: FB LGF_CRC8For1Byte
FC LGF_CRC8For1Byte
BYTE initValue Ret_Val BYTE
BYTE mask
BYTE inputByte
Eingangsparameter
Tabelle-84: 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-85: 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.
Hinweis Für die Berechnung der CRC-Werte stehen verschiedene Online-Tools zur Verfügung. Die Funktion des Bausteins wurde mit folgendem Online-Tool getestet, da es die Eingangsparameter "mask" ("Polynom") und "initValue" ("Initial Value") unterstützt:
http://www.sunshine2k.de/coding/javascript/crc/crc_js.html
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 72
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.5.6 LGF_CRC16
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-40: FB LGF_CRC16
FC LGF_CRC16
WORD initValue Ret_Val WORD
WORD mask
ARRAY of BYTE inputArray
Eingangsparameter
Tabelle-86: 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-87: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
inputArray ARRAY of BYTE Datenstrom, für den der CRC-Wert berechnet werden soll.
Ausgangsparameter
Tabelle-88: 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.6, 11/2019 73
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Hinweis Für die Berechnung der CRC-Werte stehen verschiedene Online-Tools zur Verfügung. Die Funktion des Bausteins wurde mit folgendem Online-Tool getestet, da es die Eingangsparameter "mask" ("Polynom") und "initValue" ("Initial Value") unterstützt:
http://www.sunshine2k.de/coding/javascript/crc/crc_js.html
3 Erläuterung der Bausteine
3.5 Data handling
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 74
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.5.7 LGF_CRC32
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-41: 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-89: 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-90: 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.6, 11/2019 75
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle-91: 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.
Hinweis Für die Berechnung der CRC-Werte stehen verschiedene Online-Tools zur Verfügung. Die Funktion des Bausteins wurde mit folgendem Online-Tool getestet, da es die Eingangsparameter "mask" ("Polynom"), "initValue" ("Initial Value"), "finalXorValue" ("Final Xor Value"), "reflectInput" ("Input reflected") und "reflectResult" ("Result reflected") unterstützt:
http://www.sunshine2k.de/coding/javascript/crc/crc_js.html
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 76
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6 Converter operations
3.6.1 LGF_BinaryToGray
Kurzbeschreibung
Dieser Baustein wandelt einen binär codierten Wert in einen Gray codierten Wert um.
Baustein
Abbildung 3-42: FC LGF_BinaryToGray
FC LGF_BinaryToGray
DWORD variableBinary Ret_Val DWORD
Eingangsparameter
Tabelle 3-92: Eingangsparameter
Parameter Datentyp Beschreibung
variableBinary DWORD Binär codierter Wert
Ausgangsparameter
Tabelle 3-93: 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.6, 11/2019 77
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.2 LGF_GrayToBinary
Kurzbeschreibung
Dieser Baustein wandelt einen nach Gray codierten Wert in einen binär codierten Wert um.
Baustein
Abbildung 3-43: FC LGF_GrayToBinary
FC LGF_GrayToBinary
DWORD variableGray Ret_Val DWORD
Eingangsparameter
Tabelle 3-94: Eingangsparameter
Parameter Datentyp Beschreibung
variableGray DWORD Gray codierter Wert
Ausgangsparameter
Tabelle 3-95: 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.6, 11/2019 78
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.3 LGF_BitsToWord
Kurzbeschreibung
Dieser Baustein wandelt 16 BOOL-Variablen in eine WORD-Variable um.
Baustein
Abbildung 3-44: 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-96: Eingangsparameter
Parameter Datentyp Beschreibung
bit0
…
bit15
BOOL Bit-Variablen, deren Bits zu einer Bitfolge zusammengefügt werden
Ausgangsparameter
Tabelle 3-97: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val WORD Zusammengefügte Bitfolge, gespeichert in einer Variable
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 79
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.4 LGF_WordToBits
Kurzbeschreibung
Dieser Baustein wandelt eine WORD-Variable in 16 BOOL-Variablen um.
Baustein
Abbildung 3-45: 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-98: Eingangsparameter
Parameter Datentyp Beschreibung
word WORD Bitfolge, die zerlegt wird
Ausgangsparameter
Tabelle 3-99: Ausgangsparameter
Parameter Datentyp Beschreibung
bit0
…
bit15
BOOL Bit-Variablen, in denen die einzelnen Bits gespeichert werden
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 80
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.5 LGF_DTLtoString
Kurzbeschreibung
Dieser Baustein konvertiert ein Datum vom Datentyp DTL in eine Zeichenkette vom Datentyp STRING.
Baustein
Abbildung 3-46: FC LGF_DTLtoString
FC LGF_DTLtoString
DTL inDTL Ret_Val STRING
BOOL format
CHAR separatorDate
Eingangsparameter
Tabelle 3-100: 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-101: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val STRING Ausgegebenen Zeichenkette entsprechend dem Format. Beispiel:
0: '2019-01-22 14:06:51.524621000'
1: '22-01-2019 14:07:57.696417000'
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.
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 81
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
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 Folgende Abbildung stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.
Abbildung 3-47: 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-48: 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.6, 11/2019 82
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.6 LGF_StringToDTL
Kurzbeschreibung
Dieser Baustein konvertiert eine Zeichenkette vom Format String mit Datumskomponenten in den Datentyp DTL.
Baustein
Abbildung 3-49: FC LGF_StringToDTL
FC LGF_StringToDTL
STRING inString Ret_Val DTL
BOOL format error Bool
status WORD
Eingangsparameter
Tabelle 3-102: Eingangsparameter
Parameter Datentyp Beschreibung
inString STRING Datum als Zeichenkette entsprechend dem Format. Beispiel:
0: '2019-01-22 14:06:51.524621000'
1: '22-01-2019 14:07:57.696417000'
format BOOL Formatauswahl der eingelesenen Zeichenkette:
0: international (YYYY MM DD ...)
1: traditionell (DD MM YYYY ...)
Ausgangsparameter
Tabelle 3-103: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DTL Gibt das eingelesene Datum aus
error BOOL FALSE: kein Fehler
TRUE: Fehler im Baustein, "status" gibt Fehlercode aus
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle)
Status- und Fehleranzeigen
Tabelle 3-104: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#0000 Kein 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)
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 83
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status Bedeutung Abhilfe / Hinweise
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 (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-50: 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-51: Positionen der einzelnen Zeichen
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 84
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.7 LGF_TemperatureConvert
Kurzbeschreibung
Dieser Baustein rechnet °Celsius in °Fahrenheit oder Kelvin als auch °Fahrenheit in Kelvin um und umgekehrt.
Baustein
Abbildung 3-52: FC LGF_TemperatureConvert
FC LGF_TemperatureConvert
INT mode Ret_Val REAL
REAL temperature error BOOL
status WORD
Eingangsparameter
Tabelle 3-105: 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-106: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val REAL Umgerechnete Temperatur
error BOOL FALSE: Kein Fehler
TRUE: Fehler im Baustein
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-107: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#7000 Initialwert -
16#0000 Kein 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.6, 11/2019 85
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.8 LGF_ScaleLinear
Kurzbeschreibung
Diese Funktion skaliert eine Eingangsgröße über eine lineare Geradengleichung.
Baustein
Abbildung 3-53: FC LGF_ScaleLinear
FC LGF_ScaleLinear
LREAL x y LREAL
LREAL x1 error BOOL
LREAL y1 status WORD
LREAL x2
LREAL y2
LREAL yMin
LREAL yMax
Eingangsparameter
Tabelle 3-108: Eingangsparameter
Parameter Datentyp Beschreibung
x LREAL Eingangswert, der skaliert werden soll.
x1 LREAL Punkt 1 (P1) der linearen Funktion.
y1 LREAL
x2 LREAL Punkt 2 (P2) der linearen Funktion.
y2 LREAL
yMin LREAL Unterer Grenzwert des Ausgangs.
yMax LREAL Oberer Grenzwert des Ausgangs.
Ausgangsparameter
Tabelle 3-109: Ausgangsparameter
Parameter Datentyp Beschreibung
y LREAL Ausgangswert, skaliert.
error BOOL Fehleranzeige.
FALSE: kein Fehler.
TRUE: Fehler im Baustein, "status" gibt Fehlercode aus.
status WORD "status" gibt den Status/Fehlercode aus (siehe folgende Tabelle).
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 86
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-110: Status- und Fehlercodes
Status Bedeutung Abhilfe
16#0000 Kein Fehler. -
16#8204 Unterer Grenzwert "yMin"ist größer als oberer Grenzwert "yMax".
Wählen Sie unteren Grenzwert unterhalb des oberen Grenzwertes.
16#8205 Ausgabewert auf yMin begrenzt -
16#8206 Ausgabewert auf yMax begrenzt -
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.6, 11/2019 87
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Abbildung 3-54: 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-111: 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.6, 11/2019 88
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.9 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-55: FC LGF_StringToTaddr
FC LGF_StringToTaddr
STRING ipAddressString Ret_Val TADDR_param
error BOOL
status WORD
Eingangsparameter
Tabelle 3-112: Eingangsparameter
Parameter Datentyp Beschreibung
ipAddressString STRING IPV4-Addresse
Ausgangsparameter
Tabelle 3-113: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val TADDR_param IPV4-Addresse
error BOOL FALSE: Kein Fehler
TRUE: Fehler im Baustein
status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).
Status- und Fehleranzeigen
Tabelle 3-114: Status/Fehlercodes
Status Bedeutung Abhilfe / Hinweise
16#0000 Kein 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.6, 11/2019 89
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 90
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.10 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-56: FC LGF_TaddrToString
FC LGF_TaddrToString
TADDR_Param ipAdressTaddr Ret_Val STRING
Eingangsparameter
Tabelle 3-115: Eingangsparameter
Parameter Datentyp Beschreibung
ipAdressTaddr TADDR_Param IPV4-Addresse
Ausgangsparameter
Tabelle 3-116: 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.6, 11/2019 91
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.11 LGF_IntToString
Kurzbeschreibung
Dieser Baustein konvertiert eine Variable vom Systemdatentyp "DInt" in eine Variable vom Datentyp "String".
Baustein
Abbildung 3-57: FC LGF_IntToString
FC LGF_IntToString
DINT intValue Ret_Val STRING
Eingangsparameter
Tabelle 3-117: Eingangsparameter
Parameter Datentyp Beschreibung
intValue DINT Integer Wert
Ausgangsparameter
Tabelle 3-118: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val STRING Konvertierter Wert als String.
Beispiel: '+16927'
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 92
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.12 LGF_TimeToString
Kurzbeschreibung
Dieser Baustein konvertiert eine Variable vom Systemdatentyp "Time" in eine Variable vom Datentyp "String".
Baustein
Abbildung 3-58: FC LGF_TimeToString
FC LGF_TimeToString
TIME timeValue Ret_Val STRING
stringDay STRING
stringHour STRING
stringMinute STRING
stringSecond STRING
stringMilliSecond STRING
Eingangsparameter
Tabelle 3-119: Eingangsparameter
Parameter Datentyp Beschreibung
timeValue TIME Zeit-Wert
Beispiel: T#1D_3H_45M_6S
Ausgangsparameter
Tabelle 3-120: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val STRING Konvertierte Zeit als String.
Beispiel: '1D3H45M6S0MS'
stringDay STRING Konvertierter Tag als String.
Beispiel: '1'
stringHour STRING Konvertierte Stunde als String.
Beispiel: '3'
stringMinute STRING Konvertierte Minute als String.
Beispiel: '45'
stringSecond STRING Konvertierte Sekunde als String.
Beispiel: '6'
stringMilliSecond STRING Konvertierte Millisekunde als String.
Beispiel: '0'
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 93
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.13 LGF_UnixTimeToDTL (NEU)
Kurzbeschreibung
Dieser Baustein konvertiert eine Unixzeit vom Datentyp DInt in Datum und Uhrzeit vom Datentyp DTL. Der Zeitstempel wird in UTC gerechnet. Das bedeutet, dass die Zeitzone nicht berücksichtigt wird.
Es sind nur Zeiten ab dem 01.01.1990 zulässig.
Baustein
Abbildung 3-59: FC LGF_UnixTimeToDTL
FC LGF_UnixTimeToDTL
DINT timeUnix Ret_Val DTL
error BOOL
Eingangsparameter
Tabelle 3-121: Eingangsparameter
Parameter Datentyp Beschreibung
timeUnix DINT Unixzeit
Ausgangsparameter
Tabelle 3-122: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DTL Konvertierte Zeit (Datum und Uhrzeit)
Wenn error = TRUE, Ret_Val = 0
error BOOL FALSE: kein Fehler
TRUE: Fehler: Unixzeit (timeUnix) liegt vor dem 01.01.1990
3 Erläuterung der Bausteine
3.6 Converter operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 94
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.6.14 LGF_DTLToUnixTime (NEU)
Kurzbeschreibung
Dieser Baustein konvertiert Datum und Uhrzeit vom Datentyp DTL in eine Unixzeit vom Datentyp DInt. Der Zeitstempel wird in UTC gerechnet. Das bedeutet, dass die Zeitzone nicht berücksichtigt wird.
Es sind nur Zeiten ab dem 01.01.1990 zulässig.
Baustein
Abbildung 3-60: FC LGF_DTLToUnixTime
FC LGF_DTLToUnixTime
DTL timeDTL Ret_Val DINT
error BOOL
Eingangsparameter
Tabelle 3-123: Eingangsparameter
Parameter Datentyp Beschreibung
timeDTL DTL Datum und Uhrzeit
Ausgangsparameter
Tabelle 3-124: Ausgangsparameter
Parameter Datentyp Beschreibung
Ret_Val DINT Konvertierte Unixzeit
error BOOL FALSE: kein Fehler
TRUE: Fehler: Datum und Uhrzeit (timeDTL) liegt vor dem 01.01.1990
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 95
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.7 Signal generators
3.7.1 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-125: Eingangsparameter
Parameter Datentyp Beschreibung
frequency REAL Taktfrequenz in Hz
pulsePauseRatio REAL Pulspausenverhältnis (Standard: 1.0 enspricht 1:1)
Ausgangsparameter
Tabelle 3-126: 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.6, 11/2019 96
© S
iem
en
s A
G 2
01
9 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
Hinweis Der Takt ("clock") des FB LGF_Frequency ist abhängig von der Zykluszeit des OB Main. Um die Genauigkeit zu erhöhen, kann der FB auch in einem Weckalarm-OB (Cyclic Interrupt OB) mit niedrigem Zeittakt aufgerufen werden.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 97
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.7.2 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-127: Eingangsparameter
Parameter Datentyp Beschreibung
frequency REAL Taktfrequenz in Hz
Ausgangsparameter
Tabelle 3-128: 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.6, 11/2019 98
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.7.3 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-129: 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-130: Ausgangsparameter
Parameter Datentyp Beschreibung
value INT Aktueller Wert des Sägezahnsignales.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 99
© S
iem
en
s A
G 2
01
9 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 "value" ausgegeben werden. Das Signal beginnt mit dem 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.6, 11/2019 100
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.7.4 LGF_SawToothCI
Kurzbeschreibung
Dieser Baustein generiert einen sägezahnförmigen Signalverlauf. Er verwendet dazu den Zeittakt des aufrufenden Cyclic Interrupt OB.
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-131: 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-132: Ausgangsparameter
Parameter Datentyp Beschreibung
sawToothValues REAL Aktueller Wert des Sägezahnsignales.
error BOOL FALSE: Kein Fehler
TRUE: 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.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 101
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-133: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.
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 aufrufenden 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.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 102
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
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.6, 11/2019 103
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.7.5 LGF_TriangleCI
Kurzbeschreibung
Dieser Baustein generiert einen dreieckigen Signalverlauf. Er verwendet dazu den Zeittakt des aufrufenden Cyclic Interrupt OB.
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-134: 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-135: Ausgangsparameter
Parameter Datentyp Beschreibung
triangleValues REAL Aktueller Wert des Dreiecksignales.
error BOOL FALSE: Kein Fehler
TRUE: 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.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 104
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-136: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.
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.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 105
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
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.6, 11/2019 106
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.7.6 LGF_RectangleCI
Kurzbeschreibung
Dieser Baustein generiert einen rechteckigen Signalverlauf. Er verwendet dazu den Zeittakt des aufrufenden Cyclic Interrupt OB.
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-137: 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-138: Ausgangsparameter
Parameter Datentyp Beschreibung
rectangleValues REAL Aktueller Wert des Rechtecksignales.
error BOOL FALSE: Kein Fehler
TRUE: 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.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 107
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-139: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.
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.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 108
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
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.6, 11/2019 109
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.7.7 LGF_SinusCI
Kurzbeschreibung
Dieser Baustein generiert einen sinusförmigen Signalverlauf. Er verwendet dazu den Zeittakt des aufrufenden Cyclic Interrupt OB.
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-140: 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-141: Ausgangsparameter
Parameter Datentyp Beschreibung
sinusValues REAL Aktueller Wert des Dreiecksignales.
error BOOL FALSE: Kein Fehler
TRUE: 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.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 110
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-142: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.
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.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 111
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
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.6, 11/2019 112
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.7.8 LGF_CosinusCI
Kurzbeschreibung
Dieser Baustein generiert einen cosinusförmigen Signalverlauf. Er verwendet dazu den Zeittakt des aufrufenden Cyclic Interrupt OB.
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-143: 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-144: Ausgangsparameter
Parameter Datentyp Beschreibung
cosinusValues REAL Aktueller Wert des Dreiecksignales.
error BOOL FALSE: Kein Fehler
TRUE: 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.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 113
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-145: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.
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.
3 Erläuterung der Bausteine
3.7 Signal generators
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 114
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
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.6, 11/2019 115
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.8 Technology operations
3.8.1 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-146: 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-147: Ausgangsparameter
Parameter Datentyp Beschreibung
outputValue REAL Ausgangsgröße
error BOOL FALSE: Kein Fehler
TRUE: 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.6, 11/2019 116
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-148: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.6, 11/2019 117
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 118
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.8.2 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-149: 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
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 119
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Parameter Datentyp Beschreibung
track BOOL Eingangsgröße durchschalten (Nachführen)
manOp BOOL Regelgröße durchschalten
reset BOOL Neustart
callOB OB_CYCLIC Aufrufender Weckalarm-OB
Ausgangsparameter
Tabelle 3-150: 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
FALSE: Kein Fehler
TRUE: 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-151: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 120
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
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
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.
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 121
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Tabelle 3-152: 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.6, 11/2019 122
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 123
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.8.3 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-153: 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-154: 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.6, 11/2019 124
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-155: 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
FALSE: Kein Fehler
TRUE: 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-156: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein 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.6, 11/2019 125
© S
iem
en
s A
G 2
01
9 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.6, 11/2019 126
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Überblick über die Betriebsarten
Tabelle 3-157: Überblick über die Betriebsarten
Betriebsart onDefault
OutValue 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.
3 Erläuterung der Bausteine
3.8 Technology operations
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 127
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
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 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.6, 11/2019 128
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.8.4 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-158: 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-159: 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.6, 11/2019 129
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-160: 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.6, 11/2019 130
© S
iem
en
s A
G 2
01
9 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 SIMATIC S7-1500.
https://support.industry.siemens.com/cs/ww/de/view/79047707
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 131
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.9 Measurement data processing
3.9.1 LGF_AverageAndDeviation
Kurzbeschreibung
Dieser Baustein berechnet aus einer Reihe von Zahlen das arithmetische Mittel und die Standardabweichung.
Baustein
Abbildung 3-94: FC LGF_AverageAndDeviation
FC LGF_AverageAndDeviation
ARRAY[*] of LREAL variableArray arithmeticAverage LREAL
standardDeviation LREAL
Eingangsparameter
Tabelle 3-161: Eingangsparameter
Parameter Datentyp Beschreibung
variableArray ARRAY[*] of LREAL
Zahlenreihe, mit der gerechnet werden soll
Ausgangsparameter
Tabelle 3-162: Ausgangsparameter
Parameter Datentyp Beschreibung
arithmeticAverage LREAL Arithmetischer Mittelwert
standardDeviation LREAL Standardabweichung
Funktionsweise
Über den Eingang "variableArray" wird ein Array beliebiger Größe angeschlossen. Nach dem Auslesen der Array-Grenzen, wird aus den Werten der arithmetische Mittelwert und die Standardabweichung berechnet und beides ausgegeben.
Hinweis Ein Array mit zu vielen Elementen kann zu einem Überschreiten der Zyklusüberwachungszeit führen.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 132
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.9.2 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-95: 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-163: 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/de/de/view/109755202/100611494667
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 133
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-164: Ausgangsparameter
Parameter Datentyp Beschreibung
average LREAL Gleitender Mittelwert
windowSizeReached BOOL FALSE: Maximale noch nicht Fensterbreite erreicht
TRUE: Maximale Fensterbreite erreicht
error BOOL FALSE: Kein Fehler
TRUE: Fehler im Baustein
status WORD Status/Fehler-Code (siehe folgende Tabelle)
Status- und Fehleranzeigen
Tabelle 3-165: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Kein 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.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 134
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.9.3 LGF_Boxplot (NEU)
Kurzbeschreibung
Wenn Sie sich einen Überblick über bestehende Daten verschaffen wollen, dann können Sie ein Boxplot-Diagramm verwenden. Ein Boxplot zeigt Ihnen, in welchem Bereich die Daten liegen und wie sie sich über diesen Bereich verteilen. Ein Boxplot besteht aus folgenden Kenngrößen:
• Minimum (kleinster auftretender Wert der Stichprobe)
• Unteres oder erstes Quartil (unterhalb dieses Wertes liegen 25% der Stichproben-Werte)
• Median oder zweites Quartil (unterhalb diesem Wert liegen 50% der Stichproben-Werte)
• Oberes oder drittes Quartil (unterhalb diesem Wert liegen 75% der Stichproben-Werte)
• Maximum (größter auftretender Wert der Stichprobe)
Abbildung 3-96: Boxplot
MIN MAX
1. QUARTIL 3. QUARTIL
2.QUARTIL / MEDIAN
WinCC-Control
Zur Visualisierung des Boxplots bietet Ihnen der Siemens Industry Online Support ein .Net-Control, das Sie in Verbindung mit WinCC Runtime Professional nutzen können. Den Download finden Sie unter Beitrags-ID: 81662739.
Abbildung 3-97: .Net Control "Boxplot"
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 135
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Baustein
Abbildung 3-98: LGF_Boxplot
FB LGF_Boxplot
BOOL execute outlierMax REAL
Real rangeOutlier max REAL
VARIANT Array (InOut) q75 REAL
median REAL
q25 REAL
min REAL
outlierMin REAL
skewness REAL
busy BOOL
done BOOL
error BOOL
status WORD
statusID UINT
Eingangsparameter
Tabelle 3-166: Eingangsparameter
Parameter Datentyp Beschreibung
execute Bool Aktivierung der Berechnung mit jeder positiven Flanke.
rangeOutlier Real Ausreißererkennung:
• 0: Ausreißererkennung ist deaktiviert
• 0-1: Wert ist ungültig
• >1: Ausreißererkennung ist aktiviert.
Ausgangsparameter
Tabelle 3-167: Ausgangsparameter
Parameter Datentyp Beschreibung
outlierMax Real Obere Ausreißer in %.
max Real Maximaler Wert, der kein Ausreißer ist.
q75 Real 3.Quartil oder Q75 der Datenreihe.
median Real 2.Quartil oder Median der Datenreihe.
q25 Real 1.Quartil oder Q25 der Datenreihe.
min Real Minimaler Wert, der kein Ausreißer ist.
outlierMin Real Untere Ausreißer in %.
skewness Real Schiefe der Datenreihe.
busy Bool Die Bearbeitung des Bausteins ist aktiv.
done Bool Die Bearbeitung wurde erfolgreich beendet.
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 136
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Parameter Datentyp Beschreibung
status Word Gibt den Statuscode der Bearbeitung aus (siehe Tabelle).
statusID UInt Gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
Ein-/Ausgangsparameter (InOut)
Tabelle 3-168: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
array Variant Array, mit dem gerechnet werden soll. Folgende Datentypen werden unterstützt:
• Int
• UInt
• Real
Status- und Fehleranzeigen
Tabelle 3-169: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein Fehler Bearbeitung erfolgreich beendet.
1 16#7000 Kein Fehler Der Baustein wartet auf eine positive Flanke am Eingang "execute".
1 16#7001 Kein Fehler Erster Aufruf.
1 16#7002 Kein Fehler Die Bearbeitung ist aktiv.
1 16#9100 Falscher Datentyp Verwenden Sie einen der folgenden Datentypen:
• Int
• UInt
• Real
1 16#9101 Der Parameter "rangeOutlier" ist ungültig
Geben Sie dem Parameter "rangeOutlier" einen gültigen Wert:
• 0: Ausreißererkennung deaktiviert
• >1 gültiger Wert.
1 16#9102 Kein Array übergeben Übergeben Sie dem Baustein am InOut-Parameter "array" ein Array.
1 16#8xxx Fehler bei der Bearbeitung der Anweisung "MOVE_BLK_VARIANT".
Nutzen Sie die TIA Portal Online Hilfe zur Fehlerbeseitigung.
2 16#8xxx Fehler bei der Bearbeitung des Bausteins "LGF_Shellsort"
Informationen zu diesem Baustein erhalten Sie in Kapitel 3.5.3.
Funktionsweise
Der Baustein sortiert die Datenreihe und berechnet anschließend die sogenannte "Fünf-Punkte-Zusammenfassung":
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 137
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Tabelle 3-170: Fünf-Punkte-Zusammenfassung
Kennwert der Fünf-Punkte-Zusammenfassung Ausgangsparameter des Bausteins
Minimum (kleinster auftretender Wert der Stichprobe)
min
Unteres oder erstes Quartil (unterhalb dieses Wertes liegen 25% der Stichproben-Werte)
q25
Median oder zweites Quartil (unterhalb diesem Wert liegen 50% der Stichproben-Werte)
median
Oberes oder drittes Quartil (unterhalb diesem Wert liegen 75% der Stichproben-Werte)
q75
Maximum (größter auftretender Wert der Stichprobe)
max
Der Baustein berechnet, falls die Ausreißererkennung aktiviert ist, zuerst die Grenzen. Ab diesen Grenzwerten werden die Werte als Ausreißer erkannt :
𝐵𝑜𝑢𝑛𝑑𝑙𝑜𝑤𝑒𝑟 = 𝑞25 − 𝑟𝑎𝑛𝑔𝑒𝑂𝑢𝑡𝑙 𝑒𝑟 ∗ (𝑞75 − 𝑞25)
𝐵𝑜𝑢𝑛𝑑𝑢𝑝𝑝𝑒𝑟 = 𝑞75 + 𝑟𝑎𝑛𝑔𝑒𝑂𝑢𝑡𝑙 𝑒𝑟 ∗ (𝑞75 − 𝑞25)
Anschließend berechnet der Baustein neue Werte für die Parameter "max" und "min", die innerhalb der Ausreißergrenzen liegen. Die Ausreißer werden gezählt und in Prozent ausgegeben.
Um leichter beurteilen zu können, wie die Daten verteilt sind, berechnet der Baustein berechnet ebenfalls die Schiefe. Die Schiefe liegt zwischen den Werten -1 und 1 mit folgender Bedeutung:
• -1: extrem linkschiefe Verteilung
• 0: symmetrische Verteilung
• 1: extrem rechtsschiefe Verteilung
Die Elemente des übergebenen Arrays werden vom Baustein aufsteigend sortiert. Zur Sortierung werden die "LGF_Shellsort"-Bausteine verwendet. (siehe 3.5.3)
Die Kenngrößen werden folgendermaßen berechnet:
Tabelle 3-171: Formeln Boxplot
Parameter Formel
q25 (1.Quartil) 𝑞25 = 𝑥(𝑘) mit 𝑘 =
{[1
2(𝑛+1)]+1}
2=
𝑛+3
4
median / q50 (2.Quartil) 𝑞50 = 𝑥([𝑛+1]/2)
q75 (3.Quartil) 𝑞75 = 𝑥(𝑛+1−𝑘) mit 𝑛 + 1 − 𝑘 =
3𝑛+1
4
n := Anzahl der Stichproben (Größe des Arrays)
Ist das Ergebnis des zu ermittelnden Elements (aus dem sich die Quartile ableiten lassen) nicht ganzzahlig, errechnet sich das Quartil aus dem linearen Anteil zwischen den beiden benachbarten Stichproben.
skewness skewness =
(𝑞25 + 𝑞75) − 2 ∗ q50q75 − q25
Hinweis: Dies ist lediglich eine Näherungsformel.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 138
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.9.4 LGF_Histogram (NEU)
Kurzbeschreibung
Das Histogramm stellt die Häufigkeitsverteilung einer Stichprobe nach Klassen dar. Eine Klasse beschreibt ein Werteintervall, in dem die einzelnen Häufigkeiten auf-addiert werden. Nach Vorgabe der Anzahl der Klassen wird die Klassenbreite und die jeweilige Klassenmitte berechnet. Die Klassenanzahl ist auf 15 Klassen begrenzt.
Die Verteilung stellt sich als Rechteck um den Klassenmittelwert mit der Klassenbreite und der aufsummierten Häufigkeit als Höhe dar.
Abbildung 3-99: Verteilung
1
3
5
8
6
5
2
0
1
2
3
4
5
6
7
8
9
154,00 158,93 163,86 168,79 173,72 178,65 183,58
Nu
mb
er
of
Ele
me
nts
Middle of Classes
Range
WinCC-Control
Zur Visualisierung des Histograms bietet Ihnen der Siemens Industry Online Support ein .Net-Control, das Sie in Verbindung mit WinCC Runtime Professional nutzen können. Den Download finden Sie unter Beitrags-ID: 81662739.
Abbildung 3-100: .Net-Control
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 139
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Baustein
Abbildung 3-101: LGF_Histogram
FB LGF_Histogram
BOOL execute busy BOOL
UINT numberOfClasses done BOOL
VARIANT Array (InOut) error BOOL
status WORD
statusID UINT
histValues Array [0..1, 0..14] of REAL
axis Array [0..3] of REAL
classWidth REAL
Eingangsparameter
Tabelle 3-172: Eingangsparameter
Parameter Datentyp Beschreibung
execute Bool Aktivierung der Berechnung mit jeder positiven Flanke.
NumberOfClasses UInt Anzahl der gewünschten Klassen.
Ausgangsparameter
Tabelle 3-173: Ausgangsparameter
Parameter Datentyp Beschreibung
busy Bool Die Bearbeitung des Bausteins ist aktiv.
done Bool Die Bearbeitung wurde erfolgreich beendet.
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
status Word Gibt den Statuscode der Bearbeitung aus (siehe Tabelle).
statusID UInt Gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.
histValues Array[0..1, 0..14] of Real
Gibt in einem zweidimensionalen Array die errechneten Werte aus.
• HistValues[0,0..14] gibt die relative Häufigkeit der einzelnen Klassen aus.
• HistValues[1,0..14] gibt die Klassenmitten aus.
Falls weniger als 15 Klassen gewünscht sind, dann werden die nicht benötigten Arrayelemente mit 0 ausgegeben.
axis Array[0..3] of Real
Gibt die Achsenwerte an:
• Unterer Wert der X-Achse
• Oberer Wert der X-Achse
• Unterer Wert der Y-Achse
• Oberer Wert der Y-Achse
classWidth Real Gibt die berechnete Klassenbreite aus.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 140
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ein-/Ausgangsparameter (InOut)
Tabelle 3-174: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
array Variant Array, mit dem gerechnet werden soll. Folgende Datentypen werden unterstützt:
• Int
• UInt
• Real
Status- und Fehleranzeigen
Tabelle 3-175: Status/Fehlercodes
statusID status Bedeutung Abhilfe / Hinweise
1 16#0000 Kein Fehler Bearbeitung erfolgreich beendet
1 16#7000 Kein Fehler Der Baustein wartet auf eine positive Flanke am Eingang "execute".
1 16#7001 Kein Fehler Erster Aufruf
1 16#7002 Kein Fehler Die Bearbeitung ist aktiv.
1 16#9100 Falscher Datentyp Verwenden Sie einen der folgenden Datentypen:
• Int
• UInt
• Real
1 16#9101 Falsche Anzahl der Klassen
Übergeben Sie dem Parameter "NumberOfClasses" einen gültigen Wert (1 bis 15).
1 16#9102 Kein Array übergeben Übergeben Sie dem Baustein am InOut-Parameter "array" ein Array.
2 16#8xxx Fehler bei der Bearbeitung der Anweisung "MOVE_BLK_VARIANT".
Nutzen Sie die TIA Portal Online Hilfe zur Fehlerbeseitigung.
3 16#8xxx Fehler bei der Bearbeitung des Bausteins "LGF_Shellsort"
Informationen zu diesem Baustein erhalten Sie in Kapitel 3.5.3.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 141
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Der Baustein sortiert die übergebenen Daten und berechnet mithilfe der überge-benen Klassenanzahl und den Datenbereich die allgemeine Klassenbreite. Anschließend zählt der Baustein die Werte, die innerhalb einer Klasse liegen. Um ein Histogramm zeichnen zu können, errechnet der Baustein auch die nötigen X- und Y-Koordinaten.
Die Elemente des übergebenen Arrays werden vom Baustein aufsteigend sortiert. Zur Sortierung werden die "LGF_Shellsort"-Bausteine verwendet (siehe 3.5.3).
Die Klassenanzahl kann mit folgender Faustformel angegeben werden:
𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝐶𝑙𝑎 𝑒 = √𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑒𝑙𝑒𝑚𝑒𝑛𝑡
z. B. 100 Werte -> 𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝐶𝑙𝑎 𝑒 = √100 = 10
Formeln
Die Klassenbreite errechnet der Baustein mit folgender Formel:
𝑐𝑙𝑎 𝑊 𝑑𝑡ℎ =𝑚𝑎𝑥 − 𝑚 𝑛
𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑐𝑙𝑎 𝑒
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 142
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.9.5 LGF_SimpleSmoothingFB / LGF_SimpleSmoothingFC (NEU)
Kurzbeschreibung
Die einfachste Form der Glättung einer Messwertfolge ist die Berechnung des linearen Mittelwerts durch drei Punkte.
Der Baustein ist als Funktion und als Funktionsbaustein realisiert.
Tabelle 3-176: Gegenüberstellung FC-FB
Funktion (FC) Funktionsbaustein (FB)
Die Funktion berechnet den linearen Mittelwert azyklisch.
Die Funktion liest ein Array ein, das geglättet wird. Aus N-Messwerten lassen sich N-2 geglättete Messwerte berechnen. Daher enthält das Ausgabe-Array im Index (0) und Index (N) den Wert 0.
Der Funktionsbaustein berechnet den linearen Mittelwert zyklisch.
Der Funktionsbaustein liest mit jeder positiven Flanke am Eingang "insert" einen Wert ein. Sobald drei Werte eingelesen wurden, berechnet der Baustein einen geglätteten Wert und gibt diesen aus.
Funktionsbaustein (FB)
Abbildung 3-102: LGF_SimpleSmoothingFB
FB LGF_SimpleSmoothingFB
BOOL enable smoothedValue REAL
BOOL insert busy BOOL
REAL value done BOOL
error BOOL
status WORD
Eingangsparameter
Tabelle 3-177: Eingangsparameter
Parameter Datentyp Beschreibung
enable Bool Aktiviert den Baustein. Solange enable "TRUE" ist, kann der Baustein Werte am Parameter "value" übernehmen.
insert Bool Übernimmt bei einer positiven Flanke den Wert am Eingang "value" und gibt einen "smoothedValue" aus, wenn drei Werte eingelesen wurden.
value Real Wert, der in die Glättung eingehen sollen.
Ausgangsparameter
Tabelle 3-178: Ausgangsparameter
Parameter Datentyp Beschreibung
smoothedValue Real Die geglätteten Werte.
busy Bool Die Bearbeitung des Bausteins ist aktiv.
done Bool Die Bearbeitung wurde erfolgreich beendet.
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
status Word Gibt den Statuscode der Bearbeitung aus (siehe Tabelle).
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 143
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-179: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Kein Fehler Bearbeitung erfolgreich beendet
16#7000 Kein Fehler Der Baustein wartet auf die Aktivierung durch den Parameter "enable".
16#7001 Kein Fehler Erster Aufruf
16#7002 Kein Fehler Die Bearbeitung ist aktiv.
16#9000 Zu wenig Werte Der Baustein benötigt drei Werte um einen geglätteten Wert zu berechnen. Übergeben Sie weitere Werte mit einer positiven Flanke am Eingang "insert".
Funktion (FC)
Abbildung 3-103: LGF_SimpleSmoothingFC
FC LGF_SimpleSmoothingFC
ARRAY [*] of REAL values (InOut) error BOOL
ARRAY [*] of REAL smoothedValues(InOut) status WORD
Ausgangsparameter
Tabelle 3-180: Ausgangsparameter
Parameter Datentyp Beschreibung
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
status Word Gibt den Statuscode der Bearbeitung aus (siehe Tabelle).
Ein-/Ausgangsparameter (InOut)
Tabelle 3-181: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
values Array[*] of Real Werte, die in die Glättung eingehen sollen.
smoothedValues Array[*] of Real Die geglätteten Werte.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 144
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-182: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Kein Fehler Bearbeitung erfolgreich beendet
16#7001 Kein Fehler Erster Aufruf
16#7002 Kein Fehler Die Bearbeitung ist aktiv.
16#9000 Zu wenig Werte Der Baustein benötigt drei Werte um einen geglätteten Wert zu berechnen. Vergrößern Sie das Array am Eingangsparameter "values". Passen Sie das Array am Ausgangsparameter "smoothedValues" an die neue Größe an.
16#9001 Ungleiche Arraygrößen
Die Arrays "values" und "smoothedValues" müssen die gleiche Größe besitzen.
Funktionsweise
Der Baustein berechnet die geglätteten Werte mit der folgenden Formel:
𝑦(𝑛)̅̅ ̅̅ ̅̅ =𝑦(𝑛 − 1) + 𝑦(𝑛) + 𝑦(𝑛 + 1)
3
Der berechnete Wert wird bzw. die berechneten Werte werden am Ausgang "smoothedValue" ausgegeben.
Aufgrund dieser Formel kann der FC keine Werte für die Elemente 0 und N berechnen.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 145
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.9.6 LGF_SmoothByPolynomFB / LGF_SmoothByPolynomFC (NEU)
Kurzbeschreibung
Zur Glättung wird durch fünf Wertepunkte ein Polynom 3. Grades gelegt. Die Fehlerquadrate der Distanzen zwischen Polynom und realem Wert werden hierbei minimiert. Aus den so gewonnenen Parametern des Polynoms können die geglätteten Werte bestimmt werden.
Der Baustein ist als Funktion und als Funktionsbaustein realisiert.
Tabelle 3-183: Gegenüberstellung FC-FB
Funktion (FC) Funktionsbaustein (FB)
Die Funktion berechnet die geglätteten Werte azyklisch.
Die Funktion liest ein Array ein, das geglättet wird. Aus N-Messwerten lassen sich N-4 geglättete Messwerte berechnen. Das Ausgabe-Array enthält im Index (0,1,N-1,N) den Wert 0. Allerdings können Ersatzwerte berechnet werden.
Der Funktionsbaustein berechnet die geglätteten Werte zyklisch.
Der Funktionsbaustein liest mit jeder positiven Flanke am Eingang "insert" einen Wert ein. Sobald fünf Werte eingelesen wurden, berechnet der Baustein einen geglätteten Wert und gibt diesen aus.
Funktionsbaustein (FB)
Abbildung 3-104: LGF_SmoothByPolynomFB
FB LGF_SmoothByPolynomFB
BOOL enable smoothedValue REAL
BOOL insert busy BOOL
REAL value done BOOL
error BOOL
status WORD
Eingangsparameter
Tabelle 3-184: Eingangsparameter
Parameter Datentyp Beschreibung
enable Bool Aktiviert den Baustein. Solange enable "TRUE" ist, kann der Baustein Werte am Parameter "value" übernehmen.
insert Bool Übernimmt den Wert am Eingang "value" und gibt einen "smoothedValue" aus, wenn fünf Werte eingelesen wurden.
value Real Wert, der in die Glättung eingehen soll.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 146
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-185: Ausgangsparameter
Parameter Datentyp Beschreibung
smoothedValue Real Der geglättete Wert.
busy Bool Die Bearbeitung des Bausteins ist aktiv.
done Bool Die Bearbeitung wurde erfolgreich beendet.
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
status Word Gibt den Statuscode der Bearbeitung aus (siehe Tabelle).
Status- und Fehleranzeigen
Tabelle 3-186: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Kein Fehler Bearbeitung erfolgreich beendet
16#7000 Kein Fehler Der Baustein wartet auf die Aktivierung durch den Parameter "enable".
16#7001 Kein Fehler Erster Aufruf
16#7002 Kein Fehler Die Bearbeitung ist aktiv.
16#9000 Zu wenig Werte Der Baustein benötigt fünf Werte um einen geglätteten Wert zu berechnen. Übergeben Sie weitere Werte mit einer positiven Flanke am Eingang "insert".
Funktion (FC)
Abbildung 3-105: LGF_SmoothByPolynomFC
FC LGF_SmoothByPolynomFC
ARRAY [*] of REAL values (InOut) error BOOL
ARRAY [*] of REAL smoothedValues(InOut) status WORD
Ausgangsparameter
Tabelle 3-187: Ausgangsparameter
Parameter Datentyp Beschreibung
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
status Word Gibt den Statuscode der Bearbeitung aus.
Ein-/Ausgangsparameter (InOut)
Tabelle 3-188: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
values Array[*] of Real Werte, die in die Glättung eingehen sollen.
smoothedValues Array[*] of Real Die geglätteten Werte.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 147
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Status- und Fehleranzeigen
Tabelle 3-189: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Kein Fehler Bearbeitung erfolgreich beendet
16#7001 Kein Fehler Erster Aufruf
16#7002 Kein Fehler Die Bearbeitung ist aktiv.
16#9000 Zu wenig Werte Der Baustein benötigt fünf Werte um einen geglätteten Wert zu berechnen. Vergrößern Sie das Array am Eingangsparameter "values". Passen Sie das Array am Ausgangsparameter "smoothedValues" an die neue Größe an.
16#9001 Ungleiche Arraygrößen
Die Arrays "values" und "smoothedValues" müssen die gleiche Größe besitzen.
Funktionsweise
Das Ausgleichspolynom 3.Grades wird wie folgt berechnet:
𝑦(𝑛)̅̅ ̅̅ ̅̅ =1
35∗ (−3 ∗ 𝑦(𝑛 − 2) + 12 ∗ 𝑦(𝑛 − 1) + 17 ∗ 𝑦(𝑛) + 12 ∗ 𝑦(𝑛 + 1) − 3 ∗ 𝑦(𝑛 + 2))
Aus den N-Messwerten lassen sich so N-4 geglättete Messwerte berechnen. Das Ausgabe-Array enthält im Index (0,1, N-1, N) den Wert 0.
Diese "fehlenden" Werte werden mit den folgenden Formalismen berechnet:
𝑦(𝑛 − 2)̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ =1
70∗ (69 ∗ 𝑦(𝑛 − 2) + 4 ∗ 𝑦(𝑛 − 1) − 6 ∗ 𝑦(𝑛) + 4 ∗ 𝑦(𝑛 + 1) − 𝑦(𝑛 + 2))
𝑦(𝑛 − 1)̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ =2
70∗ (2 ∗ 𝑦(𝑛 − 2) + 27 ∗ 𝑦(𝑛 − 1) + 12 ∗ 𝑦(𝑛) − 8 ∗ 𝑦(𝑛 + 1) + 2 ∗ 𝑦(𝑛 + 2))
𝑦(𝑛 + 1)̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ =2
70∗ (2 ∗ 𝑦(𝑛 − 2) − 8 ∗ 𝑦(𝑛 − 1) + 12 ∗ 𝑦(𝑛) + 27 ∗ 𝑦(𝑛 + 1) + 2 ∗ 𝑦(𝑛 + 2))
𝑦(𝑛 + 2)̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ =1
70∗ (−𝑦(𝑛 − 2) + 4 ∗ 𝑦(𝑛 − 1) − 6 ∗ 𝑦(𝑛) + 4 ∗ 𝑦(𝑛 + 1) + 69 ∗ 𝑦(𝑛 + 2))
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 148
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.9.7 LGF_DifferenceQuotientFB / LGF_DifferenceQuotientFC (NEU)
Kurzbeschreibung
Dieser Baustein differenziert numerisch ein zeitlich äquidistant abgetastetes Signal. So kann z. B. aus einer gemessenen Ortskurve die Geschwindigkeit, oder aus der gemessenen Geschwindigkeit die Beschleunigung errechnet werden. Um die Auswirkungen eines streuenden Messsignals zu minimieren nutzt dieser Algorithmus ein Ausgleichspolynom.
Der Baustein ist als Funktion und als Funktionsbaustein realisiert.
Tabelle 3-190: Gegenüberstellung FC-FB
Funktion (FC) Funktionsbaustein (FB)
Die Funktion berechnet die differenzierten Werte azyklisch.
Die Funktion liest ein Array ein, das differenziert wird. Aus N-Messwerten lassen sich N-4 geglättete Messwerte berechnen. Das Ausgabe-Array enthält im Index (0,1,N-1,N) den Wert 0. Allerdings können Ersatzwerte berechnet werden.
Der Funktionsbaustein berechnet die differenzierten Werte zyklisch.
Der Funktionsbaustein liest mit jeder positiven Flanke am Eingang "insert" einen Wert ein. Sobald fünf Werte eingelesen wurden, berechnet der Baustein einen differenzierten Wert und gibt diesen aus.
Funktionsbaustein (FB)
Abbildung 3-106: LGF_DifferenceQuotientFB
FB LGF_DifferenceQuotientFB
BOOL enable derivatedValue REAL
BOOL insert busy BOOL
REAL value valid BOOL
REAL deltaT error BOOL
status WORD
Eingangsparameter
Tabelle 3-191: Eingangsparameter
Parameter Datentyp Beschreibung
enable Bool Aktiviert den Baustein. Solange enable "TRUE" ist, kann der Baustein Werte am Parameter "value" übernehmen.
insert Bool Übernimmt den Wert am Eingang "value" und gibt einen "derivatedValue" aus, wenn fünf Werte eingelesen wurden.
value Real Wert, der in die Differenzierung eingehen sollen.
deltaT Real äquidistanter Abstand zwischen zwei Messwerten. (z. B. 1s)
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 149
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-192: Ausgangsparameter
Parameter Datentyp Beschreibung
derivatedValue Real Der differenzierte Wert.
busy Bool Die Bearbeitung des Bausteins ist aktiv.
valid Bool Die Bearbeitung wurde erfolgreich beendet.
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
status Word Gibt den Statuscode der Bearbeitung aus (siehe Tabelle).
Status- und Fehleranzeigen
Tabelle 3-193: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Kein Fehler Bearbeitung erfolgreich beendet
16#7000 Kein Fehler Der Baustein wartet auf die Aktivierung durch den Parameter "enable".
16#7001 Kein Fehler Erster Aufruf
16#7002 Kein Fehler Die Bearbeitung ist aktiv.
16#9000 Zu wenig Werte Der Baustein benötigt fünf Werte um einen differenzierten Wert zu berechnen. Übergeben Sie weitere Werte mit einer positiven Flanke am Eingang "insert".
Funktion (FC)
Abbildung 3-107: LGF_DifferenceQuotientFC
FC LGF_DifferenceQuotientFC
REAL deltaT error BOOL
ARRAY [*] of REAL values (InOut) status WORD
ARRAY [*] of REAL derivatedValues(InOut)
Eingangsparameter
Tabelle 3-194: Eingangsparameter
Parameter Datentyp Beschreibung
deltaT Real äquidistanter Abstand zwischen zwei Messwerten. (z. B. 1s)
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 150
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ausgangsparameter
Tabelle 3-195: Ausgangsparameter
Parameter Datentyp Beschreibung
busy Bool Die Bearbeitung des Bausteins ist aktiv.
done Bool Die Bearbeitung wurde erfolgreich beendet.
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
status Word Gibt den Statuscode der Bearbeitung aus (siehe Tabelle).
Ein-/Ausgangsparameter (InOut)
Tabelle 3-196: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
values Array[*] of Real Werte, die in die Differenzierung eingehen sollen.
derivatedValues Array[*] of Real Die differenzierte Wertereihe.
Status- und Fehleranzeigen
Tabelle 3-197: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Kein Fehler Bearbeitung erfolgreich beendet
16#7001 Kein Fehler Erster Aufruf
16#7002 Kein Fehler Die Bearbeitung ist aktiv.
16#9000 Zu wenig Werte Der Baustein benötigt fünf Werte um einen differenzierten Wert zu berechnen. Vergrößern Sie das Array am Eingangsparameter "values".
16#9001 Ungleiche Arraygrößen
Die Arrays "values" und "derivatedValues" müssen die gleiche Größe besitzen.
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 151
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Funktionsweise
Zur Berechnung des Differenzenquotienten eines streuenden Signals wird zuerst ein Ausgleichspolynom dritten Grades durch die Messwerte gelegt. Anschließend wird dieses Polynom differenziert. Durch dieses Verfahren kann auch ein verrauschtes Eingangssignal noch sinnvoll differenziert werden.
Der Differenzquotient berechnet sich mit folgender Formel:
�̇̅�(𝑛) =1
12𝑑𝑒𝑙𝑡𝑎𝑇(𝑦(𝑛 − 2) − 8𝑦(𝑛 − 1) + 8𝑦(𝑛 + 1) − 𝑦(𝑛 + 2))
deltaT: äquidistanter Abstand zwischen zwei Messwerten (z.B. 1s).
Die Funktion (FC) kann aus N-Messwerten N-4 differenzierte und geglättete Messwerte berechnen. Das Ausgabe-Array würde im Index (0,1,N-1,N) mit 0 belegt werden. Allerdings können mit folgenden Formalismen Ersatzwerte berechnet werden:
�̇̅�(𝑛 − 2) =1
84𝑑𝑒𝑙𝑡𝑎𝑇(−125𝑦(𝑛 − 2) + 136𝑦(𝑛 − 1) + 48𝑦(𝑛) − 88𝑦(𝑛 + 1)
+ 29𝑦(𝑛 + 2))
�̇̅�(𝑛 − 1) =1
84𝑑𝑒𝑙𝑡𝑎𝑇(−38𝑦(𝑛 − 2) − 2𝑦(𝑛 − 1) + 24𝑦(𝑛) + 26𝑦(𝑛 + 1)
− 10𝑦(𝑛 + 2))
�̇̅�(𝑛 + 1) =1
84d𝑑𝑒𝑙𝑡𝑎𝑇(10𝑦(𝑛 − 2) − 26𝑦(𝑛 − 1) − 24𝑦(𝑛) + 2𝑦(𝑛 + 1)
+ 38𝑦(𝑛 + 2))
�̇̅�(𝑛 + 2) =1
84𝑑𝑒𝑙𝑡𝑎𝑇(−29𝑦(𝑛 − 2) + 88𝑦(𝑛 − 1) − 48𝑦(𝑛) − 136𝑦(𝑛 + 1)
+ 125𝑦(𝑛 + 2))
deltaT: äquidistanter Abstand zwischen zwei Messwerten (z. B. 1s).
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 152
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
3.9.8 LGF_RegressionLine (NEU)
Kurzbeschreibung
Der einfachste Fall einer Regression ist die Regressionsgerade. D. h. der angenommene Zusammenhang zwischen Ein- und Ausgangssignal ist eine lineare Gerade.
Abbildung 3-108: Regressionline
Baustein
Abbildung 3-109: LGF_RegressionLine
FC LGF_RegressionLine
ARRAY [*] of LGF_typeRegressionLine values(InOut) slope LREAL
intercept LREAL
error BOOL
status WORD
Ausgangsparameter
Tabelle 3-198: Ausgangsparameter
Parameter Datentyp Beschreibung
slope LReal Steigung der Geraden
intercept LReal Schnittpunkt mit der Y-Achse
error Bool Bei der Bearbeitung ist ein Fehler aufgetreten.
status Word Gibt den Statuscode der Bearbeitung aus (siehe Tabelle).
3 Erläuterung der Bausteine
3.9 Measurement data processing
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 153
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Ein-/Ausgangsparameter (InOut)
Tabelle 3-199: Ein-/Ausgangsparameter (InOut)
Parameter Datentyp Beschreibung
values Array[*] of LGF_typeRegressionLine
Die Datenpunkte werden mit Ihren X- und Y-Werten übergeben.
Der Datentyp "LGF_typeRegressionLine" hat den folgenden Aufbau:
• x (Real)
• y (Real)
Status- und Fehleranzeigen
Tabelle 3-200: Status/Fehlercodes
status Bedeutung Abhilfe / Hinweise
16#0000 Kein Fehler Bearbeitung erfolgreich beendet
16#9000 Zu wenig Werte Der Baustein benötigt mindestens zwei Wertepaare um eine Regressionsgerade zu berechnen. Vergrößern Sie das Array am Eingangsparameter "values" in der zweiten Dimension.
Funktionsweise
Der Baustein berechnet die Regressionsgerade mit folgender Geradengleichung:
𝑓(𝑥) = 𝑎 + 𝑏 ∗ 𝑥
b: Steigung der Gerade
a: Schnittpunkt mit y-Achse
Die Steigung b wird mit folgender Gleichung berechnet:
𝑏 =𝑛 ∗ ∑ (𝑥(𝑛) ∗ 𝑦(𝑛)) − (∑ 𝑥(𝑛) ∗ ∑ 𝑦(𝑛))𝑁
1𝑁1
𝑁1
𝑛 ∗ ∑ 𝑥2(𝑛)𝑁1 − (∑ 𝑥(𝑛) ∗ ∑ 𝑥(𝑛)𝑁
1𝑁1 )
Der Schnittpunkt mit der Y-Achse wird mit folgender Gleichung berechnet:
𝑎 =∑ 𝑦(𝑛)𝑁1
𝑁− 𝑏 ∗
∑ 𝑥(𝑛)𝑁1
𝑁
4 Anhang
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 154
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
4 Anhang
4.1 Service und Support
Industry Online Support
Sie haben Fragen oder brauchen Unterstützung?
Über den Industry Online Support greifen Sie rund um die Uhr auf das gesamte Service und Support Know-how sowie auf unsere Dienstleistungen zu.
Der Industry Online Support ist die zentrale Adresse für Informationen zu unseren Produkten, Lösungen und Services.
Produktinformationen, Handbücher, Downloads, FAQs und Anwendungsbeispiele – alle Informationen sind mit wenigen Mausklicks erreichbar: support.industry.siemens.com
Technical Support
Der Technical Support von Siemens Industry unterstützt Sie schnell und kompetent bei allen technischen Anfragen mit einer Vielzahl maßgeschneiderter Angebote – von der Basisunterstützung bis hin zu individuellen Supportverträgen.
Anfragen an den Technical Support stellen Sie per Web-Formular: www.siemens.de/industry/supportrequest
SITRAIN – Training for Industry
Mit unseren weltweit verfügbaren Trainings für unsere Produkte und Lösungen unterstützen wir Sie praxisnah, mit innovativen Lernmethoden und mit einem kundenspezifisch abgestimmten Konzept.
Mehr zu den angebotenen Trainings und Kursen sowie deren Standorte und Termine erfahren Sie unter: www.siemens.de/sitrain
Serviceangebot
Unser Serviceangebot umfasst folgendes:
• Plant Data Services
• Ersatzteilservices
• Reparaturservices
• Vor-Ort und Instandhaltungsservices
• Retrofit- und Modernisierungsservices
• Serviceprogramme und Verträge
Ausführliche Informationen zu unserem Serviceangebot finden Sie im Servicekatalog: support.industry.siemens.com/cs/sc
Industry Online Support App
Mit der App "Siemens Industry Online Support" erhalten Sie auch unterwegs die optimale Unterstützung. Die App ist für Apple iOS, Android und Windows Phone verfügbar: support.industry.siemens.com/cs/ww/de/sc/2067
4 Anhang
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 155
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
4.2 Links und Literatur
Tabelle 4-1
Nr. Thema
\1\ Siemens Industry Online Support
https://support.industry.siemens.com
\2\ Link auf die Beitragsseite des Anwendungsbeispiels
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 SIMATIC 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
4 Anhang
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 156
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
4.3 Änderungsdokumentation
4.3.1 Versionierung der Bibliothek
Die Bibliothek und Bibliothekselemente werden gemäß folgender Tabelle gepflegt:
Tabelle 4-2: 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 4-3: 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
4 Anhang
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 157
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
4.3.2 Änderungsprotokoll
Tabelle 4-4 : Ä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
V3.0.0 03/2017 Neu:
4 Anhang
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 158
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Version Datum Änderung
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 4.3.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
4 Anhang
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 159
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Version Datum Änderung
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 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
FB LGF_Astro V1.1.5
• Codeoptimierung
FB LGF_TimerSwitch V1.1.2
• Codeoptimierung
V4.0.1 - Nur für TIA Portal V15
V4.0.2 10/2018 FB LGF_TimerSwitch V1.1.3
Verbindung zum Typ wiederhergestellt.
V4.0.3 02/2019 Alle Bausteine: Upgrade TIA V15.1 Upd1
Anwenderdefinierte Dokumentation (Anwenderhilfe) für alle Bausteine.
Neu:
FB LGF_Boxplot
FB LGF_Histogram
FB LGF_SimpleSmoothingFB
FC LGF_SimpleSmoothingFC
FB LGF_SmoothByPolynomFB
FC LGF_SmoothByPolynomFC
FB LGF_DifferenceQuotiontFB
FC LGF_DifferenceQuotiontFC
FB LGF_RegressionLine
FC LGF_UnixTimeToDTL
FC LGF_DTLToUnixTime
FB LGF_CountFalInDWordFB (FC LGF_CountFalInDWord → 99_Legacy)
FB LGF_CountRisInDWordFB (FC LGF_CountRisInDWord → 99_Legacy)
4 Anhang
Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.6, 11/2019 160
© S
iem
en
s A
G 2
01
9 A
ll ri
gh
ts r
ese
rve
d
Version Datum Änderung
Überarbeitet:
FC LGF_XRoot V1.0.4
• Codeoptimierung
FC LGF_Distance V1.1.0
• Codeoptimierung
FB LGF_FIFO V2.0.0
• Ausgang "done" gelöscht
FB LGF_LIFO V2.0.0
• Ausgang "done" gelöscht
FB LGF_ShellSortInt V2.0.0
• Ausgang "done" gelöscht
FB LGF_ShellSortUint V2.0.0
• Ausgang "done" gelöscht
FB LGF_ShellSortReal V2.0.0
• Ausgang "done" gelöscht
FC LGF_ScaleLinear V2.0.0
• Datentyp geändert (Variant → LREAL)
FC LGF_AverageAndDeviation V2.0.0
• Datentyp geändert (Variant → ARRAY [*] of LREAL)
FB LGF_SetTime V1.0.5
• Steigende Flanke am Eingang REQ der Anweisung SET_TIMEOUT
V4.0.4 06/2019 Bugfixing
FB LGF_DifferenceQuotientFB V1.0.1
FB LGF_PulseRelay V1.0.5
V4.0.5 09/2019 FB LGF_SetTime V1.0.6
• Doku überarbeitet und neue Zeitzonen hinzugefügt
V4.0.6 11/2019 Bugfixing
FB LGF_SmoothByPolynomFB