Library of General Functions (LGF) für S7-1200/1500

130
Library of General Functions (LGF) für S7-1200/1500 STEP 7 (TIA Portal) V15 https://support.industry.siemens.com/cs/ww/de/view/109479728 Siemens Industry Online Support

Transcript of Library of General Functions (LGF) für S7-1200/1500

Page 1: Library of General Functions (LGF) für S7-1200/1500

Library of General Functions (LGF) für S7-1200/1500

STEP 7 (TIA Portal) V15

https://support.industry.siemens.com/cs/ww/de/view/109479728

Siemens Industry Online Support

Page 2: Library of General Functions (LGF) für S7-1200/1500

Rechtliche Hinweise

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 2

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Rechtliche Hinweise Nutzung der Anwendungsbeispiele

In den Anwendungsbeispielen wird die Lösung von Automatisierungsaufgaben im Zusammen-spiel mehrerer Komponenten in Form von Text, Grafiken und/oder Software-Bausteinen beispielhaft dargestellt. Die Anwendungsbeispiele sind ein kostenloser Service der Siemens AG und/oder einer Tochtergesellschaft der Siemens AG („Siemens“). Sie sind unverbindlich und erheben keinen Anspruch auf Vollständigkeit und Funktionsfähigkeit hinsichtlich Konfiguration und Ausstattung. Die Anwendungsbeispiele stellen keine kundenspezifischen Lösungen dar, sondern bieten lediglich Hilfestellung bei typischen Aufgabenstellungen. Sie sind selbst für den sachgemäßen und sicheren Betrieb der Produkte innerhalb der geltenden Vorschriften verantwortlich und müssen dazu die Funktion des jeweiligen Anwendungsbeispiels überprüfen und auf Ihre Anlage individuell anpassen. Sie erhalten von Siemens das nicht ausschließliche, nicht unterlizenzierbare und nicht übertragbare Recht, die Anwendungsbeispiele durch fachlich geschultes Personal zu nutzen. Jede Änderung an den Anwendungsbeispielen erfolgt auf Ihre Verantwortung. Die Weitergabe an Dritte oder Vervielfältigung der Anwendungsbeispiele oder von Auszügen daraus ist nur in Kombination mit Ihren eigenen Produkten gestattet. Die Anwendungsbeispiele unterliegen nicht zwingend den üblichen Tests und Qualitätsprüfungen eines kostenpflichtigen Produkts, können Funktions- und Leistungsmängel enthalten und mit Fehlern behaftet sein. Sie sind verpflichtet, die Nutzung so zu gestalten, dass eventuelle Fehlfunktionen nicht zu Sachschäden oder der Verletzung von Personen führen.

Haftungsausschluss Siemens schließt seine Haftung, gleich aus welchem Rechtsgrund, insbesondere für die Verwendbarkeit, Verfügbarkeit, Vollständigkeit und Mangelfreiheit der Anwendungsbeispiele, sowie dazugehöriger Hinweise, Projektierungs- und Leistungsdaten und dadurch verursachte Schäden aus. Dies gilt nicht, soweit Siemens zwingend haftet, z.B. nach dem Produkthaftungs-gesetz, in Fällen des Vorsatzes, der groben Fahrlässigkeit, wegen der schuldhaften Verletzung des Lebens, des Körpers oder der Gesundheit, bei Nichteinhaltung einer übernommenen Garantie, wegen des arglistigen Verschweigens eines Mangels oder wegen der schuldhaften Verletzung wesentlicher Vertragspflichten. Der Schadensersatzanspruch für die Verletzung wesentlicher Vertragspflichten ist jedoch auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht Vorsatz oder grobe Fahrlässigkeit vorliegen oder wegen der Verletzung des Lebens, des Körpers oder der Gesundheit gehaftet wird. Eine Änderung der Beweislast zu Ihrem Nachteil ist mit den vorstehenden Regelungen nicht verbunden. Von in diesem Zusammen-hang bestehenden oder entstehenden Ansprüchen Dritter stellen Sie Siemens frei, soweit Siemens nicht gesetzlich zwingend haftet. Durch Nutzung der Anwendungsbeispiele erkennen Sie an, dass Siemens über die beschriebene Haftungsregelung hinaus nicht für etwaige Schäden haftbar gemacht werden kann.

Weitere Hinweise Siemens behält sich das Recht vor, Änderungen an den Anwendungsbeispielen jederzeit ohne Ankündigung durchzuführen. Bei Abweichungen zwischen den Vorschlägen in den Anwendungs-beispielen und anderen Siemens Publikationen, wie z. B. Katalogen, hat der Inhalt der anderen Dokumentation Vorrang. Ergänzend gelten die Siemens Nutzungsbedingungen (https://support.industry.siemens.com).

Securityhinweise Siemens bietet Produkte und Lösungen mit Industrial Security-Funktionen an, die den sicheren Betrieb von Anlagen, Systemen, Maschinen und Netzwerken unterstützen. Um Anlagen, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches Industrial Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht. Die Produkte und Lösungen von Siemens formen nur einen Bestandteil eines solchen Konzepts. Der Kunde ist dafür verantwortlich, unbefugten Zugriff auf seine Anlagen, Systeme, Maschinen und Netzwerke zu verhindern. Systeme, Maschinen und Komponenten sollten nur mit dem Unternehmensnetzwerk oder dem Internet verbunden werden, wenn und soweit dies notwendig ist und entsprechende Schutzmaßnahmen (z.B. Nutzung von Firewalls und Netzwerk-segmentierung) ergriffen wurden. Zusätzlich sollten die Empfehlungen von Siemens zu entsprechenden Schutzmaßnahmen beachtet werden. Weiterführende Informationen über Industrial Security finden Sie unter: https://www.siemens.com/industrialsecurity.

Die Produkte und Lösungen von Siemens werden ständig weiterentwickelt, um sie noch sicherer zu machen. Siemens empfiehlt ausdrücklich, Aktualisierungen durchzuführen, sobald die entsprechenden Updates zur Verfügung stehen und immer nur die aktuellen Produktversionen zu verwenden. Die Verwendung veralteter oder nicht mehr unterstützter Versionen kann das Risiko von Cyber-Bedrohungen erhöhen.

Um stets über Produkt-Updates informiert zu sein, abonnieren Sie den Siemens Industrial Security RSS Feed unter: https://www.siemens.com/industrialsecurity.

Page 3: Library of General Functions (LGF) für S7-1200/1500

Inhaltsverzeichnis

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 3

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Inhaltsverzeichnis Rechtliche Hinweise .................................................................................................... 2

1 Bibliotheksübersicht ......................................................................................... 5

1.1 Allgemein .............................................................................................. 5 1.2 Hard- und Softwarevoraussetzungen ................................................... 5 1.3 Bibliotheksressourcen .......................................................................... 6

2 Arbeiten mit der Bibliothek ............................................................................... 8

2.1 Allgemein .............................................................................................. 8 2.2 Simulierbarkeit mit SIMATIC S7-PLCSIM Advanced (NEU) ................ 9

3 Erläuterung der Bausteine .............................................................................. 11

3.0 Bit logic operations ............................................................................. 12 3.0.1 FB LGF_PulseRelay ........................................................................... 12 3.1 Date and timer operations .................................................................. 14 3.1.1 FB LGF_Astro (Korrektur) .................................................................. 14 3.1.2 FB LGF_SetTime ............................................................................... 18 3.1.3 FB LGF_TimerSwitch (Korrektur) ....................................................... 21 3.1.4 FC LGF_CalendarDayWeek .............................................................. 24 3.1.5 FC LGF_GermanHoliday (NEU) ........................................................ 26 3.2 Counter operations ............................................................................. 28 3.2.1 FC LGF_CountFalInDWord ................................................................ 28 3.2.2 FC LGF_CountRisInDWord................................................................ 30 3.3 Comperator operations ....................................................................... 32 3.3.1 FC LGF_CompareVariant .................................................................. 32 3.3.2 FC LGF_CompareReal ...................................................................... 34 3.4 Math operations .................................................................................. 36 3.4.1 FC LGF_AverageAndDeviation .......................................................... 36 3.4.2 FB LGF_FloatingAverage................................................................... 38 3.4.3 FC LGF_MatrixAddition ...................................................................... 40 3.4.4 FC LGF_MatrixInverse ....................................................................... 42 3.4.5 FC LGF_MatrixMultiplication .............................................................. 44 3.4.6 FC LGF_MatrixSubtraction................................................................. 46 3.4.7 FC LGF_MatrixTranspose .................................................................. 48 3.4.8 FB LGF_MinMaxHistory ..................................................................... 50 3.4.9 FC LGF_RandomBasic ...................................................................... 51 3.4.10 FC LGF_RandomINT / LGF_RandomReal ........................................ 52 3.4.11 FC LGF_SearchMinMax ..................................................................... 54 3.4.12 FC LGF_XRoot ................................................................................... 56 3.4.13 FC LGF_HighLowLimit ....................................................................... 57 3.4.14 FB LGF_Integration ............................................................................ 59 3.4.15 FC LGF_Factorial (NEU) .................................................................... 61 3.4.16 FC LGF_Distance (NEU).................................................................... 62 3.5 Data handling ..................................................................................... 63 3.5.1 FB LGF_FIFO ..................................................................................... 63 3.5.2 FB LGF_LIFO (NEU) .......................................................................... 66 3.5.3 FB LGF_RingBuffer (NEU) ................................................................. 69 3.5.4 FB LGF_ShellSortInt / LGF_ShellSortUInt / LGF_ShellSortReal....... 71 3.5.5 FC LGF_CRC8 (NEU) ........................................................................ 73 3.5.6 FC LGF_CRC8For1Byte (NEU) ......................................................... 74 3.5.7 FC LGF_CRC16 (NEU) ...................................................................... 75 3.5.8 FC LGF_CRC32 (NEU) ...................................................................... 76 3.6 Converter operations .......................................................................... 78 3.6.1 FC LGF_BinaryToGray ...................................................................... 78 3.6.2 FC LGF_GrayToBinary ...................................................................... 79 3.6.3 FC LGF_BitsToWord .......................................................................... 80

Page 4: Library of General Functions (LGF) für S7-1200/1500

Inhaltsverzeichnis

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 4

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.4 FC LGF_WordToBits .......................................................................... 81 3.6.5 FC LGF_DTLtoString ......................................................................... 82 3.6.6 FC LGF_StringToDTL ........................................................................ 84 3.6.7 FC LGF_TemperatureConvert ........................................................... 86 3.6.8 FC LGF_ScaleLinear .......................................................................... 87 3.6.9 FC LGF_StringToTaddr ...................................................................... 90 3.6.10 FC LGF_TaddrToString ...................................................................... 92 3.6.11 FC LGF_IntToString (NEU) ................................................................ 93 3.6.12 FC LGF_TimeToString (NEU) ............................................................ 94 3.7 Signal generators ............................................................................... 95 3.7.1 FB LGF_Frequency ............................................................................ 95 3.7.2 FB LGF_Impulse ................................................................................ 97 3.7.3 FB LGF_SawTooth ............................................................................. 98 3.7.4 FB LGF_SawToothCI (NEU) ............................................................ 100 3.7.5 FB LGF_TriangleCI (NEU) ............................................................... 102 3.7.6 FB LGF_RectangleCI (NEU) ............................................................ 104 3.7.7 FB LGF_SinusCI (NEU) ................................................................... 106 3.7.8 FB LGF_CosinusCI (NEU) ............................................................... 108 3.8 Technology operations ..................................................................... 110 3.8.1 FB LGF_LimRateOfChangeBasic .................................................... 110 3.8.2 FB LGF_LimRateOfChangeAdvanced ............................................. 113 3.8.3 FB LGF_Ramp ................................................................................. 118 3.8.4 FB LGF_NonLin ............................................................................... 123 3.8.5 Regeln von simulierten Regelstrecken ............................................. 125

4 Literaturhinweise ........................................................................................... 126

5 Historie............................................................................................................ 127

5.1 Versionierung der Bibliothek ............................................................ 127 5.2 Änderungsprotokoll .......................................................................... 128

Page 5: Library of General Functions (LGF) für S7-1200/1500

1 Bibliotheksübersicht

1.1 Allgemein

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 5

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

1 Bibliotheksübersicht

1.1 Allgemein

TIA Portal hat eine umfangreiche Anzahl an "ready-to-use" Anweisungen (Mathematische Funktionen, Zeiten, Zähler, usw.). Darüber hinaus gibt es noch weitere nützliche Basisfunktionen.

Diese Funktionen werden in Form einer Bibliothek zur Verfügung gestellt und können frei verwendet werden. Die fertigen Funktionen sind frei anpassbar und können somit universell eingesetzt werden.

Die hier beschriebene Bibliothek ist versioniert und wird kontinuierlich erweitert. Informationen zur Versionierung finden Sie in Kapitel 5.1 Versionierung.

1.2 Hard- und Softwarevoraussetzungen

Voraussetzungen für diese Bibliothek

Um die Funktionalität der hier beschriebenen Bibliothek nutzen zu können, sind nachfolgend genannte Hard- und Softwarevoraussetzungen einzuhalten.

Hardware

Alle Bausteine (FB, FC, DB, …) in der Bibliothek sind universal mit folgenden Steuerungen einsetzbar:

S7-1200 und S7-1200 F Produktfamilie

S7-1500 und S7-1500 F Produktfamilie

Simulation mit S7-PLCSIM (ab V14)

Software

STEP 7 (TIA Portal) Basic oder Professional ab V14

Hinweis Es ist generell möglich eine Bibliothek mit STEP 7 Basic zu öffnen, obwohl STEP 7 Professional Elemente (z.B. S7-1500 Steuerung) enthalten sind. In diesem Fall werden Sie mit einer Meldung beim Öffnen der Bibliothek informiert.

Es können alle Elemente (Typen und Kopiervorlagen) verwendet werden, wenn sie von der installierten Hardware im TIA Portal unterstützt werden.

Falls Sie versuchen Elemente mit STEP 7 Basic aus der Bibliothek zu kopieren, die nicht unterstützt werden (z.B. S7-1500 Steuerung), wird eine Fehlermeldung angezeigt.

Page 6: Library of General Functions (LGF) für S7-1200/1500

1 Bibliotheksübersicht

1.3 Bibliotheksressourcen

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 6

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

1.3 Bibliotheksressourcen

Nachfolgend erhalten Sie einen Überblick über die Belegung des Lade- und Arbeitsspeichers durch die Bibliotheksbausteine.

Speicherbelegung der einzelnen Bausteine

Tabelle 1-1: Speicherbelegung (CPU 1212 DC/DC/DC V4.2, CPU 1511-1 PN V2.0)

Baustein CPU 1212 Belegung (Byte) CPU 1511 Belegung (Byte)

Lade- speicher

Arbeits- speicher

Lade- speicher

Arbeits- speicher

Bit logic operations

FB LGF_PulseRelay V1.0.3 7561 201 7636 302

Date and timer operations

FB LGF_Astro V1.1.6 55134 3703 55209 3782

FB LGF_SetTime V1.0.3 29604 2242 29737 2312

FB LGF_TimerSwitch V1.1.4 40562 4537 40548 4647

FC LGF_CalendarDayWeekV1.0.1 23852 1692 23872 1767

FC LGF_GermanHoliday V1.0.1 18763 957 18821 1021

Counter operations

FC LGF_CountFalInDWord V1.0.2 16085 1124 16115 1188

FC LGF_CountRisInDWord V1.0.2 15973 1124 16001 1188

Comperator operations

FC LGF_CompareVariant V1.0.1 11457 608 11502 672

FC LGF_CompareReal V1.0.1 6615 118 6637 182

Math operations

FC LGF_AverageAndDeviation V1.0.3 30067 2909 30105 2978

FB LGF_FloatingAverage V1.1.1 17864 750 17837 832

FC LGF_MatrixAddition V2.0.1 12183 489 12223 553

FC LGF_MatrixInverse V2.0.1 16822 1018 16875 1082

FC LGF_MatrixMultiplication V2.0.1 12843 546 12887 610

FC LGF_MatrixSubtraction V2.0.1 12102 489 12154 553

FC LGF_MatrixTranspose V2.0.1 10491 383 10525 447

FB LGF_MinMaxHistory V1.0.2 6416 114 6425 178

FC LGF_RandomBasic V1.0.1 7122 185 7140 249

FC LGF_RandomInt V1.0.2 9654 246 9678 310

FB LGF_RandomReal V1.0.3 10165 280 10179 344

FC LGF_SearchMinMax V1.0.2 36551 4645 36592 4709

FC LGF_XRoot V1.0.2 4824 51 4850 115

FC LGF_HighLowLimit V1.0.1 9446 271 9488 343

FB LGF_Integration V1.0.1 11636 322 11664 392

FC LGF_Factorial V1.0.1 6579 146 6610 210

FC LGF_Distance V1.0.1 5268 63 5298 127

Page 7: Library of General Functions (LGF) für S7-1200/1500

1 Bibliotheksübersicht

1.3 Bibliotheksressourcen

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 7

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Baustein CPU 1212 Belegung (Byte) CPU 1511 Belegung (Byte)

Lade- speicher

Arbeits- speicher

Lade- speicher

Arbeits- speicher

Data handling

FB LGF_FIFO V1.0.3 21958 1665 21979 1764

FB LGF_LIFO V1.0.1 19449 1528 19496 1620

FB LGF_RingBuffer V1.0.3 9694 327 9766 399

FB LGF_ShellSortInt V1.1.2 19661 1466 19704 1548

FB LGF_ShellSortUint V1.1.2 19807 1466 19841 1548

FB LGF_ShellSortReal V1.1.2 19703 1466 19732 1548

FC LGF_CRC8 V1.0.1 7420 205 7455 269

FC LGF_CRC8For1Byte V1.0.1 5795 106 5825 170

FC LGF_CRC16 V1.0.1 7787 224 7825 288

FC LGF_CRC32 V1.0.1 16589 858 16613 922

Converter operations

FC LGF_BinaryToGray V1.0.3 4464 36 4466 100

FC LGF_GrayToBinary V1.0.3 12292 872 12319 936

FC LGF_BitsToWord V1.0.1 6332 186 6349 250

FC LGF_WordToBits V1.0.1 6507 175 6528 239

FC LGF_DTLtoString V1.0.2 16779 877 16755 936

FC LGF_StringToDTL V1.0.2 21202 1116 21174 1139

FC LGF_TemperatureConvert V1.0.2 7050 227 7054 291

FC LGF_ScaleLinear V1.0.1 31164 4450 31196 4514

FC LGF_StringToTaddr V1.0.1 22225 1001 22250 1059

FC LGF_TaddrToString V1.0.1 11009 410 11079 469

FC LGF_IntToString V1.0.1 6253 156 6281 215

FC LGF_TimeToString V1.0.1 14330 1105 14365 1164

Signal generators

FB LGF_Frequency V1.1.3 11361 353 11364 420

FB LGF_Impulse V1.2.1 7905 132 7929 201

FB LGF_SawTooth V1.0.3 10641 249 10659 320

FB LGF_SawToothCI V1.0.1 10429 284 10493 355

FB LGF_TriangleCI V1.0.1 11205 375 11248 446

FB LGF_RectangleCI V1.0.1 10317 265 10366 336

FB LGF_SinusCI V1.0.1 10649 294 10700 365

FB LGF_CosinusCI V1.0.1 10682 294 10721 365

Technology operations

FB LGF_LimRateOfChangeBasic V1.0.2 12756 362 12810 435

FB LGF_LimRateOfChangeAdvanced V1.0.2 25907 1476 26092 1708

FB LGF_Ramp V1.0.2 29040 1446 29099 1523

FB LGF_NonLin V1.0.1 13515 566 13599 642

Page 8: Library of General Functions (LGF) für S7-1200/1500

2 Arbeiten mit der Bibliothek

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 8

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

2 Arbeiten mit der Bibliothek

2.1 Allgemein

Alle Bausteine in der Bibliothek "LGF" sind frei verwendbar in Verbindung mit S7-1200 und S7-1500 Steuerungen.

Der Großteil der Bausteine ist als Typ in der Bibliothek abgelegt. Somit sind die Bausteine versioniert und können somit alle Vorteile nutzen.

Zentrale Updatefunktion von Bibliothekselementen

Versionierung von Bibliothekselementen

Hinweis Informationen zum generellen Umgang mit Bibliotheken finden Sie im Leitfaden zur Bibliothekshandhabung

https://support.industry.siemens.com/cs/ww/de/view/109747503

und im Programmierleitfaden für S7-1200/1500 im Kapitel "Bibliotheken".

https://support.industry.siemens.com/cs/ww/de/view/81318674

Hinweis Alle Bausteine in der LGF wurden nach dem Programmierstyleguide erstellt.

https://support.industry.siemens.com/cs/ww/de/view/81318674

Weitere Informationen zu Bibliotheken im TIA Portal:

Themenseite Bibliotheken https://support.industry.siemens.com/cs/ww/de/view/109738702

Wie öffnen Sie Bibliotheken in STEP 7 (TIA Portal)? https://support.industry.siemens.com/cs/ww/de/view/37364723

in weniger als 10 Minuten TIA Portal: Time Savers – Globale Bibliotheken https://support.industry.siemens.com/cs/ww/de/view/78529894

Welche Elemente aus STEP 7 (TIA Portal) können in einer Bibliothek als Typ oder als Kopiervorlage abgelegt werden? https://support.industry.siemens.com/cs/ww/de/view/109476862

Wie können Sie beim Starten von TIA Portal ab V13 eine globale Bibliothek automatisch öffnen und z.B. als Unternehmensbibliothek verwenden? https://support.industry.siemens.com/cs/ww/de/view/100451450

Page 9: Library of General Functions (LGF) für S7-1200/1500

2 Arbeiten mit der Bibliothek

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 9

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

2.2 Simulierbarkeit mit SIMATIC S7-PLCSIM Advanced (NEU)

Damit die Bausteine nach dem Übersetzen mit SIMATIC S7-PLCSIM Advanced simuliert werden können, gehen Sie folgendermaßen vor:

1. Öffnen Sie die Eigenschaften Ihres Projekts und aktivieren Sie im Register "Schutz" die Option "Beim Übersetzen von Bausteinen Simulierbarkeit unterstützen" ("Support simulation during block compilation").

2. Klicken Sie in Ihrem Project mit der rechten Maustaste auf einen Baustein z. B. "LGF_FIFO" in der Projektbibliothek und wählen Sie "Typ bearbeiten" ("Edit type").

Eine neue Version des Bausteins wird angelegt.

3. Übersetzen Sie das Project.

Page 10: Library of General Functions (LGF) für S7-1200/1500

2 Arbeiten mit der Bibliothek

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 10

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

In den Eigenschaften des Bausteins z. B. "LGF_FIFO" wird die Option "Simulierbar mit SIMATIC S7-PLCSIM (Advanced)" ("Can be simulated with SIMATIC S7-PLCSIM (Advanced)") automatisch gesetzt.

4. Der Baustein kann nach dem Laden mit SIMATIC S7-PLCSIM Advanced simuliert werden.

5. Klicken Sie in der Projektbibliothek mit der rechten Maustaste auf die neue Version "[im Test]" ("[in test]").

– Möchten Sie nach der Simulation die ursprüngliche Version beibehalten, dann wählen Sie "Änderungen verwerfen und Version löschen" ("Discard changes and delete version"). Damit bleiben Sie kompatibel mit der Bibliothek LGF.

– Wenn Sie diese Version dennoch beibehalten möchten, wählen Sie im Kontextmenü "Version freigeben" ("Release version").

Hinweis Bausteine mit aktivierter Simulierbarkeit belegen mehr Speicherplatz in der PLC.

Page 11: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 11

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3 Erläuterung der Bausteine Die folgenden Kapitel beschreiben alle Bausteine der Bibliothek "Library General Functions". Die Kapitel sind nach der gleichen Struktur aufgebaut wie die Bibliothek selbst.

Alle Bausteine sind in Anwendungsgebiete bzw. Kategorien eingeteilt:

Bit logic operations (Bitoperationen)

Date and timer operations (Datum und Zeitoperationen)

Counter operations (Zähloperationen)

Comperator operations (Vergleichsoperationen)

Math operations (mathematische Operationen)

Data handling (Datenverarbeitung)

Converter operations (Konvertierungsoperationen)

Signal generators (Signalgeneratoren)

Technology operations (Technologieoperationen)

Abbildung 3-1: Globale Bibliothek (LGF)

Page 12: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.0 Bit logic operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 12

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.0 Bit logic operations

3.0.1 FB LGF_PulseRelay

Kurzbeschreibung

Dieser Baustein entspricht einem Stromstoßrelais bzw. einem Toggle-Flip-Flop inklusive Setz- und Rücksetzeingang.

Baustein

Abbildung 3-2: FB LGF_PulseRelay

FB LGF_PulseRelay

BOOL trigger out BOOL

BOOL set

BOOL reset

Eingangsparameter

Tabelle 3-1: Eingangsparameter

Parameter Datentyp Beschreibung

trigger BOOL Jede steigende Flanke ändert den boolschen Wert des Ausgangs "out".

set BOOL Jede steigende Flanke setzt den boolschen Wert des Ausgangs "out" auf "TRUE".

reset BOOL Jede steigende Flanke setzt den boolschen Wert des Ausgangs "out" auf "FALSE".

Ausgangsparameter

Tabelle 3-2: Ausgangsparameter

Parameter Datentyp Beschreibung

out BOOL Signalausgang

Page 13: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.0 Bit logic operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 13

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Abbildung 3-3: LGF_PulseRelay Signaldiagramm

trigger

Zeit

set

reset

out

1

2

3 4

1

1. Jede steigende Flanke des Eingangs "trigger "ändert den boolschen Wert des Ausgangs "out".

2. Jede steigende Flanke des Eingangs "set" setzt den boolschen Wert des Ausgangs "out" auf "TRUE".

3. Jede steigende Flanke des Eingangs "reset" setzt den boolschen Wert des Ausgangs "out" auf "FALSE".

4. Falls die Eingänge "set" und "reset" im gleichen Zyklus gesetzt werden, hat der "reset" Eingang Vorrang.

Der Baustein kann auch als Frequenzteiler verwendet werden. Wenn der Eingang "trigger" mit einer festen Frequenz versorgt wird, liefert der Ausgang "out" die halbe Frequenz.

Page 14: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 14

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.1 Date and timer operations

3.1.1 FB LGF_Astro (Korrektur)

Kurzbeschreibung

Dieser Baustein berechnet die Zeiten des Sonnenauf- und Sonnenuntergangs für einen bestimmten Ort auf der Erde. Die genaue Position wird dem Baustein in Form von geographischen Koordinaten (Längen- und Breitengrad) übergeben.

Abbildung 3-4: Erde mit Längen- und Breitengrad

Südpol

Nordpol

Westlich (-) Östlich (+) Nördlich (+)

Südlich (-)

60° 120°120° 60°

60°

30°

30°

60°

0°Nullmeridian

Breitengrad

Längengrad

Äquator

Informationen zum Thema Uhrzeitsynchronisation finden Sie unter folgenden Beitrag: https://support.industry.siemens.com/cs/ww/de/view/86535497

Baustein

Abbildung 3-5: FB LGF_Astro

FB LGF_Astro

REAL latitudeDD sunrise DTL

REAL longitudeDD sunset DTL

BOOL modeDMS daytime BOOL

LGF_typeAstroDMS latitudeDMS actSystemTime DTL

LGF_typeAstroDMS longitudeDMS actLocalTime DTL

TIME offsetSunrise error BOOL

TIME offsetSunset statusID UINT

status WORD

Page 15: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 15

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Eingangsparameter

Tabelle 3-3: Eingangsparameter

Parameter Datentyp Beschreibung

latitudeDD REAL Breitengrad in Grad mit Nachkommastellen (Einheit: Grad dezimal),

gültiger Wertebereich [-90.00000..+90.00000]°

Dies ist ein gebräuchliches Koordinatenformat in GPX-Dateien (GPS).

longitudeDD REAL Längengrad in Grad mit Nachkommastellen (Einheit: Grad dezimal)

1

gültiger Wertebereich [-180.0000..+180.0000]°

modeDMS BOOL 1. Übergabeformat der Position in "Grad dezimal" über die Formalparameter "latitudeDD" und "longitudeDD"

1. Übergabeformat der Position in Richtung, Grad, Minuten und Sekunden über die Formalparameter "latitudeDMS" und "longitudeDMS"

latitudeDMS LGF_typeAstroDMS Breitengrad in Himmelsrichtung; Grad; Minuten und Sekunden im PLC-Datentyp "LGF_typeAstroDMS". gültige Parameterwerte [N,S]; [0..90]; [0..59]; [0..59] gültiger Wertebereich (Summe Parameterwerte) [N, S, n, s]; [0..90]°

Dies ist ein gebräuchliches Koordinatenformat in der Navigation mit Karten.

longitudeDMS LGF_typeAstroDMS Längengrad in Richtung; Grad; Minuten und Sekunden im PLC-

Datentyp "LGF_typeAstroDMS". gültige Parameterwerte [E, W]; [0..180]; [0..59]; [0..59] gültiger Wertebereich (Summe Parameterwerte) [E, W, e, w]; [0..180]°

Der Buchstabe für Osten wird international mit "E" (East) angegeben.

offsetSunrise TIME Offset des Einschaltzeitpunktes für "daytime"

offsetSunset TIME Offset des Ausschaltzeitpunktes für "daytime"

Ausgangsparameter

Tabelle 3-4: Ausgangsparameter

Parameter Datentyp Beschreibung

sunrise DTL Sonnenaufgang am angegebenen Ort unter Berücksichtigung des "offsetSunrise"

sunset DTL Sonnenuntergang am angegebenen Ort unter Berücksichtigung des "offsetSunset"

daytime BOOL Liegt die Lokalzeit der Steuerung zwischen "sunrise" und "sunset" liefert "daytime" den Wert "TRUE".

actSystemTime DTL Aktuelle Systemzeit (UTC)

actLocalTime DTL Aktuelle Lokalzeit

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Page 16: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 16

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status- und Fehleranzeigen

Tabelle 3-5: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8200 Falsche Richtungsangabe an Eingang "latitudeDMS.dir"

Es sind nur folgende Buchstaben erlaubt: N, n, S, s, W, w, E, e

1 16#8201 Falsche Werte bei "latitiudeDMS" Kontrollieren Sie die Werte bei

"latitudeDMS.deg"

"latitudeDMS.min"

"latitudeDMS.sec"

1 16#8202 Falsche Richtungsangabe bei "longitudeDMS.dir"

Es sind nur folgende Buchstaben erlaubt: N, n, S, s, W, w, E, e

1 16#8203 Falsche Werte bei "longitudeDMS" Kontrollieren Sie die Werte bei

"longitudeDMS.deg"

"longitudeDMS.min"

"longitudeDMS.sec"

1 16#8204 Falscher Wert an Eingang "latitudeDD"

Prüfen Sie den Aktualwert am Eingang.

1 16#8205 Falscher Wert an Eingang "longitudeDD"

Prüfen Sie den Aktualwert am Eingang.

2 - Fehler/Status von unterlagerten Baustein "RD_SYS_T".

-

3 - Fehler/Status von unterlagerten Baustein "RD_LOC_T".

-

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Wenn Prozesse in Abhängigkeit vom Wechsel zwischen Tag und Nacht automatisiert ablaufen sollen, wird die Funktion einer astronomischen Uhr benötigt. Beispiele dafür wären das Ein- und Ausschalten einer Außenbeleuchtung oder das Öffnen und Schließen von Rollläden.

Sollen diese Prozesse zeitversetzt, also eine definierte Zeit vor oder nach Sonnnenauf- oder Sonnenuntergang, ausgeführt werden, wird jeweils noch ein Offset benötigt.

Hinweis Für eine exakte Ausführung der Funktion, muss gewährleistet sein, dass die Systemzeit und Lokalzeit der SIMATIC Steuerung richtig eingestellt ist.

Basierend auf der Systemzeit/Lokalzeit der SIMATIC Steuerung und den eingestellten Koordinaten berechnet der Baustein die Zeiten für Sonnenauf- und Sonnenuntergang. Die Offset-Zeiten werden zum Sonnenauf- und

Page 17: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 17

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Sonnenuntergang hinzu gerechnet und an den Ausgängen "sunrise" und "sunset" ausgegeben. Liegt die Systemzeit der SIMATIC Steuerung zwischen diesen Werten, wird der Ausgang "daytime" auf den Wert "TRUE" gesetzt.

Hinweis Da sich die Zeiten für Sonnenauf- und Sonnenuntergang täglich verändern, kann es sein, dass der Ausgang "daytime" über einen längeren Zeitraum dauerhaft auf "TRUE" oder "FALSE" "stehen bleibt":

bei entsprechend großen Offsetwerten

bei einem Ort jenseits des Polarkreises

Die Eingabe der Koordinaten kann im Format "DMS" (mit PLC-Datentyp "LGF_typeAstroDMS") oder "Grad.Dezimal" angegeben werden.

Welches Format aktiv ist, wird mit dem Formalparameter "modeDMS" festgelegt (siehe Tabelle 3-3).

Die Eingabe der Koordinatenwerte wird auf gültige Werte geprüft. Bei ungültigen Werten wird ein entsprechender Fehlercode an "status" (siehe Tabelle 3-5) ausgegeben.

Liegt an einem Formalparameter ein ungültiger Koordinatenwert vor und dieser Formalparameter wurde über "modeDMS" aktiviert, werden die Ausgänge "sunrise" und "sunset" auf den Wert DTL#1970-01-01-00:00:00 gesetzt.

Beispiel

Das folgende Beispiel verdeutlicht die Funktionsweise des Bausteins.

Tabelle 3-6: Geografische Koordinaten für Nürnberg-Moorenbrunn, Datum und Systemzeit

Längengrad: + 11.07675° bzw. E 11° 4' 36''

Breitengrad: + 49.45203° bzw. N 49° 27' 7''

Datum: 07.07.2016 Lokalzeit: 09:20 AM

Abbildung 3-6: FB LGF_Astro, Beobachtung des Bausteins online mit den Parametern sowie den Aktualparametern über die Beobachtungstabelle

Page 18: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 18

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.1.2 FB LGF_SetTime

Kurzbeschreibung

Dieser Baustein fasst die Funktionen Systemzeit, Lokalzeit und Zeitzone einstellen zusammen.

Baustein

Abbildung 3-7: FB LGF_SetTime

FB LGF_SetTime

BOOL setSystemTimeUTC actSystemTime DTL

DTL systemTimeUTC actLocalTime DTL

BOOL setLocalTime lastSetTimeZone STRING

DTL localTime error BOOL

BOOL setTimeZone statusID UINT

INT timeZone status WORD

BOOL daylightSavingTime

Eingangsparameter

Tabelle 3-7: Eingangsparameter

Parameter Datentyp Beschreibung

setSystemTimeUTC BOOL Steigende Flanke setzt die definierte Systemzeit am Eingang "systemTimeUTC"

systemTimeUTC DTL Definierte Systemzeit, enspricht UTC (Coordinated Universal Time)

setLocalTime BOOL Steigende Flanke übernimmt die definierte Lokalzeit am Eingang "localTime"

localTime DTL Definierte Lokalzeit

setTimeZone BOOL Steigende Flanke übernimmt

den Wert am Eingang "timeZone"

den Wert am Eingang "daylightSavingTime"

timeZone INT Definierte Zeitzone (Format [+-HHMM]

Beispiele:

UTC -12:00 [-1200]

UTC -03:30 [-330]

UTC [0]

UTC +13:00 [1300]

daylightSavingTime BOOL TRUE: Sommerzeitumstellung aktiv (Lokalzeit + 60 min)

– von letzter Sonntag im März um 02:00 Uhr

– bis letzter Sonntag im Oktober um 03:00 Uhr

FALSE: keine Sommerzeitumstellung

Page 19: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 19

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-8: Ausgangsparameter

Parameter Datentyp Beschreibung

systemTime DTL Aktuelle Systemzeit (UTC)

localTime DTL Aktuelle Lokalzeit

lastSetTimeZone STRING Zeitzone, die als letztes durch den Baustein gesetzt wurde

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-9: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8200 Es wurde keine gültige Zeitzone am Eingang "timeZone" übergeben.

Nur erlaubte Werte (siehe Funktionsweise) verwenden.

2 - Fehler/Status von unterlagerten Baustein "SET_TIMEZONE"

-

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Dieser Baustein fasst die Funktionen Systemzeit, Lokalzeit und Zeitzone einstellen zusammen.

Folgende Zeitzonen sind am Eingang "timeZone" möglich.

Eingang "timeZone"

Zeitzone

-1200 (UTC -12:00) Eniwetok, Kwajalein

-1100 (UTC -11:00) Midway Island

-1000 (UTC -10:00) Hawaii

-930 (UTC -09:30) (French) Polynesia

-900 (UTC -09:00) Alaska

-800 (UTC -08:00) Tijuana, Los Angeles, Seattle, Vancouver

-700 (UTC -07:00) Arizona, Denver, Salt Lake City, Calgary

-600 (UTC -06:00) Chicago, Dallas, Kansas City, Winnipeg

Page 20: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 20

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Eingang "timeZone"

Zeitzone

-500 (UTC -05:00) Eastern Time (USA & Canada)

-400 (UTC -04:00) La Paz, Georgetown

-330 (UTC -03:30) Newfoundland

-300 (UTC -03:00) Brasilia, Buenos Aires

-200 (UTC -02:00) Mid-Atlantic

-100 (UTC -01:00) Azores, Cape Verde Is.

0 (UTC) Dublin, Edinburgh, Lisbon, London

100 (UTC +01:00) Berlin, Bern, Brussels, Rome, Stockholm, Vienna

200 (UTC +02:00) Athens, Istanbul, Minsk, Bucharest

300 (UTC +03:00) Baghdad, Kuwait, Riyadh

330 (UTC +03:30) Iran

400 (UTC +04:00) Moscow, St. Petersburg, Volgograd, Abu Dhabi, Muscat

430 (UTC +04:30) Afghanistan

500 (UTC +05:00) Islamabad, Karachi, Tashkent

530 (UTC +05:30) India, Sri Lanka

545 (UTC +05:45) India, Sri Lanka

600 (UTC +06:00) Astana, Almaty, Dhaka, Colombo

630 (UTC +06:30) Coco Island, Mayanmar

700 (UTC +07:00) Bangkok, Hanoi, Jakarta

800 (UTC +08:00) Beijing, Chongqing, Hong Kong, Urumqi

830 (UTC +08:30) North Corea

900 (UTC +09:00) Yakutsk, Osaka, Sapporo, Tokyo, Seoul

930 (UTC +09:30) Australia: Northern Territory, South Australia

1000 (UTC +10:00) Brisbane, Canberra, Melbourne, Sydney

1030 (UTC +10:30) Australia: Lord Howe Island

1100 (UTC +11:00) Vladivostok, Magadan, Solomon Is., New Caledonia

1200 (UTC +12:00) Auckland, Wellington

1245 (UTC +12:45) Chatham Islands

1300 (UTC +13:00) Kiribati

Hinweis Sommer-/Winterzeit

Die Parameter (Zeitunterschied, Beginn Sommerzeit, Beginn Winterzeit) können in der statischen Variablen "statTimeZone" angepasst werden.

Standardwerte der statischen Variablen "statTimeZone":

Zeitunterschied: 60 min

Beginn Sommerzeit: Letzter Sonntag im März, 02:00 a.m.

Beginn Winterzeit: letzter Sonntag im Oktober, 03:00 a.m.

Page 21: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 21

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.1.3 FB LGF_TimerSwitch (Korrektur)

Kurzbeschreibung

Dieser Baustein ist eine Zeitschaltuhr. Es ist möglich tägliche, wöchentliche, monatliche, jährliche Zeitschaltpunkte und Zeitschaltpunkte für Werktage oder Wochenendtage festzulegen.

Baustein

Abbildung 3-8: FB LGF_TimerSwitch

FB LGF_TimerSwitch

USINT onMonth signal BOOL

USINT onDay actLocalTime DTL

USINT onWeekday error BOOL

USINT onWeekOfMonth statusID UINT

USINT onHour status WORD

USINT onMinute

USINT offMonth

USINT offDay

USINT offWeekday

USINT offWeekOfMonth

USINT offHour

USINT offMinute

USINT mode

Eingangsparameter

Tabelle 3-10: Eingangsparameter

Parameter Datentyp Beschreibung

onMonth USINT Monat, in dem das Signal gesetzt werden soll.

onDay USINT Tag, an dem das Signal gesetzt werden soll.

onWeekday USINT Wochentag, an dem das Signal gesetzt werden soll. (Sonntag = 1)

onHour USINT Stunde, in der das Signal gesetzt werden soll.

onMinute USINT Minute, in der das Signal gesetzt werden soll.

offMonth USINT Monat, in dem das Signal rückgesetzt werden soll.

offDay USINT Tag, an dem das Signal rückgesetzt werden soll.

offWeekday USINT Wochentag, an dem das Signal rückgesetzt werden soll. (Sonntag = 1)

offHour USINT Stunde, in der das Signal rückgesetzt werden soll.

offMinute USINT Minute, in der das Signal rückgesetzt werden soll.

mode USINT Angabe des Modus (siehe Funktionsweise).

Page 22: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 22

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-11: Ausgangsparameter

Parameter Datentyp Beschreibung

signal BOOL Ausgabesignal

actLocalTime DTL Aktuelle Lokale Zeit

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-12: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8200 Es wurde kein gültiger Aktualwert an Eingang "mode" übergeben.

Erlaubte Werte "1", "2", "3" "4", "5", "6"

2 - Fehler/Status von unterlagerten Baustein "RD_LOC_T"

-

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Der Baustein bietet verschiedene Arten einer Zeitschaltuhr, die im Parameter "mode" bestimmt werden:

Tägliche Zeitschaltuhr (mode = 1)

Wöchentliche Zeitschaltuhr (mode = 2)

Monatliche Zeitschaltuhr (mode = 3)

Jährliche Zeitschaltuhr (mode = 4)

Werktags, Montag bis Freitag (mode = 5)

Wochenende, Samstag und Sonntag (mode = 6)

Page 23: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 23

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Abhängig vom Modus müssen folgende Formalparameter beschaltet werden:

Tabelle 3-13: Benötigten Formalparameter für den jeweiligen Modus

Modus Benötigte Formalparameter

Tägliche Zeitschaltuhr

(mode = 1)

onHour / offHour

onMinute / offMinute

Wöchentlich Zeitschaltuhr

(mode = 2)

onWeekday / offWeekday

onHour / offHour

onMinute / offMinute

Monatliche Zeitschaltuhr

(mode = 3)

onDay / offDay

onHour / offHour

onMinute / offMinute

Jährliche Zeitschaltuhr

(mode = 4)

onMonth / offMonth

onDay / offDay

onHour / offHour

onMinute / offMinute

Werktags (mode = 5)

onHour / offHour

onMinute / offMinute

Wochenende (mode = 6)

onHour / offHour

onMinute / offMinute

Entspricht die eingestellte Startzeit der aktuellen Lokalzeit der Steuerung, wird der Ausgang "signal" auf "TRUE" gesetzt. Entspricht die eingestellte Abschaltzeit der aktuellen Lokalzeit der Steuerung, wird der Ausgang "signal" wieder zurückgesetzt.

Hinweis Beachten Sie, dass der Baustein in den Modi „Monatliche Zeitschaltuhr“ (mode = 3) oder „Jährliche Zeitschaltuhr“ (mode = 4) nur dann schaltet, wenn die Tage, die Sie an den Eingangsparametern „onDay“ und „offDay“ angeben, tatsächlich in diesem Monat vorkommen.

Page 24: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 24

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.1.4 FC LGF_CalendarDayWeek

Kurzbeschreibung

Diese Funktion berechnet aus dem vorgegebenen Datum die Kalenderwoche und die Anzahl der Tage, die seit dem Anfang des Jahres vergangen sind.

Baustein

Abbildung 3-9: FC LGF_ CalendarDayWeek

FC LGF_ CalendarDayWeek

DTL inDate daysPassed DINT

BOOL modeEU weekNumber DINT

error BOOL

status WORD

Eingangsparameter

Tabelle 3-14: Eingangsparameter

Parameter Datentyp Beschreibung

inDate DTL Datum zur Berechnung der Kalenderwoche und der Tage seit dem 1. Januar.

modeEU BOOL Auswahl der Zählweise für Kalenderwochen.

0: Zählweise für die USA und viele anderen Länder

1: Zählweise für europäische Länder nach ISO 8601

Ausgangsparameter

Tabelle 3-15: Ausgangsparameter

Parameter Datentyp Beschreibung

daysPassed DINT Vergangene Tage seit 1.Januar.

weekNumber DINT Nummer der Kalenderwoche.

error BOOL Fehleranzeige.

0: kein Fehler.

1: Fehler im Baustein, "status" gibt Fehlercode aus.

status WORD "status" gibt den Status/Fehlercode aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-16: Status/Fehlercodes

Status Bedeutung Abhilfe

16#0000 Keine Fehler. -

16#8201 Datum am Eingang "inDate" zu unterhalb der unteren Grenze.

Wählen Sie "inDate" größer als 1971-01-01.

16#8202 Datum am Eingang "inDate" zu oberhalb der oberen Grenze.

Wählen Sie "inDate" kleiner als 2261-12-31.

Page 25: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 25

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Für die Bestimmung der Kalenderwoche für das angegebene Datum stehen zwei Zählweisen zur Auswahl. Mit dem Eingang "modeEU" wählen Sie die Zählweise aus:

modeEU = 0: Zählweise für die USA und viele anderen Länder

modeEU = 1: Zählweise für europäische Länder nach ISO 8601

Zählweise für europäische Länder nach ISO 8601

Kalenderwochen haben 7 Tage, beginnen an einem Montag und werden über das Jahr fortlaufend gezählt

Die Kalenderwoche 1 eines Jahres ist diejenige, die den ersten Donnerstag enthält.

Jedes Jahr hat entweder 52 oder 53 Kalenderwochen.

Ein Jahr hat 53 Kalenderwochen, wenn folgende Eigenschaften zutreffen:

– Ein Gemeinjahr beginnt an einem Donnerstag und endet an einem Donnerstag.

– Ein Schaltjahr beginnt entweder an einem Mittwoch und endet an einem Donnerstag oder es beginnt an einem Donnerstag und endet an einem Freitag.

Der 29., 30. und 31. Dezember können schon zur Kalenderwoche 1 des Folgejahres gehören.

Der 1., 2. und 3. Januar können noch zu der letzten Kalenderwoche des Vorjahres gehören.

Zählweise für die USA und viele anderen Länder

Kalenderwochen haben 7 Tage, beginnen an einem Sonntag und werden über das Jahr fortlaufend gezählt

Die Kalenderwoche 1 eines Jahres ist diejenige, die den 1. Januar enthält.

Jedes Jahr hat entweder 52 oder 53 Kalenderwochen.

Ein Jahr hat 53 Kalenderwochen, wenn folgende Eigenschaften zutreffen:

– Ein Gemeinjahr beginnt an einem Samstag und endet an einem Samstag.

– Ein Schaltjahr beginnt entweder an einem Samstag und endet an einem Sonntag oder es beginnt an einem Freitag und endet an einem Samstag.

Die Tage nach dem letzten Dezembersamstag können bereits zur ersten Kalenderwoche des Folgejahres gehören.

Page 26: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 26

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.1.5 FC LGF_GermanHoliday (NEU)

Kurzbeschreibung

Der FC LGF_GermanHoliday ermittelt, ob ein gegebenes Datum ein Feiertag ist. Es werden alle Feiertage in Deutschland berücksichtigt. Feiertage, die bundesweit nicht einheitlich sind, können ein- und ausgeschalten werden.

Baustein

Abbildung 3-10: FB LGF_GermanHoliday

FC LGF_GermanHoliday

DTL date Ret_Val BOOL

BOOL threeKings

BOOL roseMonday

BOOL ascension

BOOL corpusChristi

BOOL augsburgerFriedensfest

BOOL assumptionOfMary

BOOL reformationDay

BOOL allSaintDay

BOOL bussUndBettag

Eingangsparameter

Tabelle-17: Eingangsparameter

Parameter Datentyp Beschreibung

date DTL Datum, das auf einen Feiertag überprüft wird.

threeKings BOOL Heilige Drei Könige

roseMonday BOOL Rosenmontag

ascension BOOL Christi Himmelfahrt

corpusChristi BOOL Fronleichnam

augsburgerFriedensfest BOOL Augsburger Friedensfest

assumptionOfMary BOOL Mariä Himmelfahrt

refomationDay BOOL Reformationstag

allSaintDay BOOL Allerheiligen

bussUndBettag BOOL Buß- und Bettag

Ausgangsparameter

Tabelle 3: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val BOOL Bei TRUE ist das Datum am Eingangsparameter "date" ein Feiertag.

Page 27: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.1 Date and timer operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 27

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein berechnet für ein gegebenes Datum den Feiertagskalender des Jahres und zeigt an, ob das gegebene Datum ein Feiertag ist. Optional werden nicht bundesweit einheitliche Feiertage, wie z. B. Heilige Drei Könige, über die entsprechenden Eingangsparameter im Baustein berücksichtigt.

Page 28: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.2 Counter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 28

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.2 Counter operations

3.2.1 FC LGF_CountFalInDWord

Kurzbeschreibung

Dieser Baustein analysiert eine Variable von Typ DWORD und gibt aus, wie oft in der Variablen eine 1-0 Abfolge (fallende Flanke) vorkommt.

Anwendungsbeispiel

Auszug aus dem Handbuch des Technologiemodul TM Timer DIDQ 16x24V

Mit der Funktion Oversampling erfasst das Technologiemodul den Zustand des jeweiligen Digitaleingangs pro Applikationszyklus (z. B. OB61) zu 32 Zeitpunkten mit gleichmäßigem zeitlichen Abstand. Die 32 Zustände werden in der Rückmeldeschnittstelle gemeinsam als 32-Bit-Wert zurückgeliefert.

Abbildung 3-11: Beispiel für ein Oversampling von DI0 am TM Timer DIDQ 16x24V

Der Baustein LGF_CountFalInDWord wird in diesem Fall verwendet um zu zählen, wie oft eine fallende Flanke vorkommt.

SIMATIC ET 200MP/S7-1500 Technologiemodul TM Timer DIDQ 16x24V (6ES7552-1AA00-0AB0)

https://support.industry.siemens.com/cs/ww/de/view/95153313

Baustein

Abbildung 3-12: FC LGF_CountFalInDWord

FC LGF_CountFalInDWord

DWORD dWordActCycle Ret_Val INT

DWORD dWordPrevCycle

Eingangsparameter

Tabelle 3-18: Eingangsparameter

Parameter Datentyp Beschreibung

dWordActCycle DWORD Doppelwort in dem die fallenden Flanken gezählt werden

dWordPrevCycle DWORD Doppelwort aus dem vorherigen Zyklus

Page 29: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.2 Counter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 29

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-19: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val INT Anzahl der fallenden Flanken im Doppelwort

Funktionsweise

Der Baustein zählt in einer Variablen vom Datentyp DWORD die fallenden Flanken (1-0 Übergänge) von links nach rechts. Der Ausgang "Ret_Val" gibt dabei die Anzahl der fallenden Flanken aus.

Damit auch fallende Flanken an Variablengrenze erkannt werden, muss der Eingang "dWordPrevCycle" mit der Variablen des vorherigen Zyklus beschalten werden.

Beispiel

Das folgende Beispiel verdeutlicht die Funktionsweise des Bausteins. In diesem Fall geht man davon aus, dass ein Signal von unbekannter Länge kontinuierlich in Form von Doppelwörtern (DWORD) pro Zyklus abgetastet wird.

Innerhalb dieses Signals sollen kontinuierlich die 1-0 Abfolgen (fallenden Flanken) gezählt und ausgegeben werden. Damit auch - wie in diesem Beispiel - die fallende Flanke an Variablengrenzen erkannt werden, muss der Eingang "dWordPrevCycle" mit dem Doppelwort der vorherigen Abtastung verschaltet werden.

Tabelle 3-20: Beispiel

DWORD vorheriger Zyklus (dWordPrevCycle)

DWORD aktueller Zyklus (dWordActCycle)

1001_0000_0001_1010_1001_0000_0001_1011 0010_1010_0001_1111_0100_0011_1000_0101

Anzahl der 1-0 Abfolgen (fallenden Flanken): "Ret_Val" = 8

Page 30: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.2 Counter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 30

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.2.2 FC LGF_CountRisInDWord

Kurzbeschreibung

Dieser Baustein analysiert eine Variable von Typ DWORD und gibt aus, wie oft in der Variablen eine 0-1 Abfolge (steigende Flanke) vorkommt.

Anwendungsbeispiel:

Auszug aus dem Handbuch des Technologiemodul TM Timer DIDQ 16x24V:

Mit der Funktion Oversampling erfasst das Technologiemodul den Zustand des jeweiligen Digitaleingangs pro Applikationszyklus (z. B. OB61) zu 32 Zeitpunkten mit gleichmäßigem zeitlichen Abstand. Die 32 Zustände werden in der Rückmeldeschnittstelle gemeinsam als 32-Bit-Wert zurückgeliefert.

Abbildung 3-13: Beispiel für ein Oversampling von DI0 am TM Timer DIDQ 16x24V

Der Baustein LGF_CountRisInDWord wird in diesem Fall verwendet, um zu zählen, wie oft eine steigende Flanke vorkommt.

SIMATIC ET 200MP/S7-1500 Technologiemodul TM Timer DIDQ 16x24V (6ES7552-1AA00-0AB0)

https://support.industry.siemens.com/cs/ww/de/view/95153313

Baustein

Abbildung 3-14: FC LGF_CountRisInDWord

FC LGF_CountRisInDWord

DWORD dWordActCycle Ret_Val INT

DWORD dWordPrevCycle

Eingangsparameter

Tabelle 3-21: Eingangsparameter

Parameter Datentyp Beschreibung

dWordActCycle DWORD Doppelwort in dem die steigenden Flanken gezählt werden

dWordPrevCycle DWORD Doppelwort aus dem vorherigen Zyklus

Page 31: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.2 Counter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 31

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-22: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val INT Anzahl der steigenden Flanken im Doppelwort

Funktionsweise

Der Baustein zählt in einer Variablen vom Datentyp DWORD die steigenden Flanken (0-1 Übergänge) von links nach rechts. Der Ausgang "Ret_Val" gibt dabei die Anzahl der steigenden Flanken aus.

Damit auch steigende Flanken an Variablengrenzen erkannt werden, muss der Eingang "dWordPrevCycle" mit der Variablen des vorherigen Zyklus beschalten werden.

Beispiel

Das folgende Beispiel verdeutlicht die Funktionsweise des Bausteins. In diesem Fall geht man davon aus, dass ein Signal von unbekannter Länge kontinuierlich in Form von Doppelwörtern (DWORD) pro Zyklus abgetastet wird.

Innerhalb dieses Signals sollen kontinuierlich die 0-1 Abfolgen (steigenden Flanken) gezählt und ausgegeben werden. Damit auch - wie in diesem Beispiel - die steigende Flanke an Variablengrenzen erkannt werden, muss der Eingang "dWordPrevCycle" mit dem Doppelwort der vorherigen Abtastung verschaltet werden.

Tabelle 3-23: Beispiel

DWORD vorheriger Zyklus (dWordPrevCycle)

DWORD aktueller Zyklus (dWordActCycle)

1001_0000_0001_1010_1001_0000_0001_1010 1010_1010_0001_1111_0100_0011_1000_0101

Anzahl der 0-1 Abfolgen (steigende Flanken): "Ret_Val" = 9

Page 32: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.3 Comperator operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 32

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.3 Comperator operations

3.3.1 FC LGF_CompareVariant

Kurzbeschreibung

Dieser Baustein vergleicht zwei strukturierte (Array, PLC Datentyp) Aktualparameter und gibt aus, ob sie dem gleichen Typ entsprechen und gleiche Werte haben.

Baustein

Abbildung 3-15: FC LGF_CompareVariant

FC LGF_CompareVariant

VARIANT variable1 (InOut) Ret_Val BOOL

VARIANT variable2 (InOut) error BOOL

statusID UINT

status WORD

Ein-/Ausgangsparameter (InOut)

Tabelle 3-24: Ein-/Ausgangsparameter (InOut)

Parameter Datentyp Beschreibung

variable1 VARIANT Vergleichsvariable mit beliebigen Datentyp

variable2 VARIANT Vergleichsvariable mit beliebigen Datentyp

Ausgangsparameter

Tabelle 3-25: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val BOOL 0: Werte der Vergleichsvariablen oder PLC Datentypen sind unterschiedlich.

1: Werte der Vergleichsvariablen sind gleich und PLC Datentypen sind identisch.

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Page 33: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.3 Comperator operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 33

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status- und Fehleranzeigen

Tabelle 3-26: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

Funktionsweise

Dieser Baustein vergleicht zwei (strukturierte) Aktualparameter und gibt aus, ob sie dem gleichen Wert entsprechen.

Hinweis Folgende Unterschiede können mit der Vergleichsmethode (Bytelevel) nicht erkannt werden:

Variablen vom Datentyp "Struct" können nicht verglichen werden.

Bei Strings können im Bereich zwischen tatsächlicher Länge und Maximallänge Unterschiede vorhanden sein.

Bei REAL Zahlen in der Struktur kann auch bei "gleichen" Variablen eine Ungleichheit angezeigt werden.

Variablen vom Typ "ARRAY of BOOL" können mit der Funktion nicht auf Gleichheit geprüft werden, da die verwendete Anweisung "CountOfElements" auch die Füllelemente mitzählt (z.B. bei einem ARRAY[0..1] of BOOL wird 8 zurückgegeben).

Page 34: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.3 Comperator operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 34

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.3.2 FC LGF_CompareReal

Kurzbeschreibung

Diese Funktion überprüft über eine Näherungsformel zwei REAL-Zahlen auf ihre Gleichheit.

Baustein

Abbildung 3-16: FC LGF_CompareReal

FC LGF_CompareReal

REAL valueA Ret_Val BOOL

REAL valueB error BOOL

status WORD

Eingangsparameter

Tabelle 3-27: Eingangsparameter

Parameter Datentyp Beschreibung

valueA REAL Zahl, die verglichen werden soll.

valueB REAL Zahl, die verglichen werden soll.

Ausgangsparameter

Tabelle 3-28: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val BOOL 0: ungleich

1: gleich

error BOOL Fehleranzeige.

0: kein Fehler.

1: Fehler im Baustein, "status" gibt Fehlercode aus.

status WORD "status" gibt den Status/Fehlercode aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-29: Status/Fehlercodes

Status Bedeutung Abhilfe

16#0000 Keine Fehler. -

16#8601 |valueA|+|valueB| überschreitet den maximalen Wertebereich einer REAL-Zahl.

|valueA|+|valueB| muss kleiner

+3,402823 ∗ 1038 sein.

Funktionsweise

Mit einer Näherungsformel werden zwei REAL-Zahlen "valueA" und "valueB" auf die Gleichheit überprüft. Damit der Vergleich unabhängig von der Größe der Zahlen funktioniert, wird das Verhältnis der beiden Zahlen überprüft.

Näherungsformel

|𝑣𝑎𝑙𝑢𝑒𝐴 − 𝑣𝑎𝑙𝑢𝑒𝐵|

|𝑣𝑎𝑙𝑢𝑒𝐴| + |𝑣𝑎𝑙𝑢𝑒𝐵|≤ 𝐸𝑃𝑆𝐼𝐿𝑂𝑁

Page 35: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.3 Comperator operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 35

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Zwei REAL-Zahlen werden als gleich gewertet, wenn das Verhältnis der Differenz

zur Summe der beiden Zahlen kleiner oder gleich 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 ist.

Der Wert von 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 gibt die Genauigkeit vor, mit der die zwei Zahlen als gleich

gewertet werden. 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 ist in der Funktion als eine Konstante mit dem Wert

1,0 ∙ 10−6 definiert.

Um eine Division durch Null zu vermeiden, ist die Näherungsformel in der Funktion umgestellt:

|𝑣𝑎𝑙𝑢𝑒𝐴 − 𝑣𝑎𝑙𝑢𝑒𝐵| ≤ 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 ∗ (|𝑣𝑎𝑙𝑢𝑒𝐴| + |𝑣𝑎𝑙𝑢𝑒𝐵|)

Folgende Tabelle zeigt zwei Beispiele zur Verdeutlichung der Funktionsweise.

Tabelle 3-30

Beispiel 1 Beispiel 2

|𝑣𝑎𝑙𝑢𝑒𝐴| + |𝑣𝑎𝑙𝑢𝑒𝐵| 5 5.000.000

𝐸𝑃𝑆𝐼𝐿𝑂𝑁 1,0 ∙ 10−6

Maximale Differenz von "𝑣𝑎𝑙𝑢𝑒𝐴" und "𝑣𝑎𝑙𝑢𝑒𝐵", bei der die zwei Zahlen noch als gleich gewertet werden.

0,000005 5

Hinweis Wenn Sie für Ihren Anwendungsfall eine andere Genauigkeit bei der Bewertung des Verhältnisses der Zahlen benötigen, passen Sie in der Funktion die Konstante 𝐸𝑃𝑆𝐼𝐿𝑂𝑁 an Ihre Anforderung an.

Page 36: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 36

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4 Math operations

3.4.1 FC LGF_AverageAndDeviation

Kurzbeschreibung

Dieser Baustein ermittelt aus einer Reihe von Zahlen das arithmetische Mittel und die Standardabweichung.

Baustein

Abbildung 3-17: FC LGF_AverageAndDeviation

FC LGF_AverageAndDeviation

VARIANT variableArray arithmeticAverage REAL

standardDeviation REAL

error BOOL

statusID UINT

status WORD

Eingangsparameter

Tabelle 3-31: Eingangsparameter

Parameter Datentyp Beschreibung

variableArray VARIANT Zahlenreihe, mit der gerechnet werden soll

Ausgangsparameter

Tabelle 3-32: Ausgangsparameter

Parameter Datentyp Beschreibung

arithmeticAverage REAL Arithmetischer Mittelwert

standardDeviation REAL Standardabweichung

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Page 37: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 37

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status- und Fehleranzeigen

Tabelle 3-33: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8200 Am Eingang "variableArray" ist der Aktualparameter kein Array.

-

1 16#8201 Der Datentype der Arrayelemente wird nicht unterstützt (siehe Funktionsweise).

-

2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT".

-

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Über den Eingang "variableArray" wird ein Array beliebiger Größe angeschlossen. Nach einer Datentypabfrage im Baustein, wird aus den Werten der arithmetische Mittelwert berechnet und die Standardabweichung berechnet und beides ausgegeben.

Hinweis Ein Array mit zu vielen Elementen kann zu einem Überschreiten der Zyklusüberwachungszeit führen.

Hinweis Hinweis: Es werden nur die Datentypen Int, UInt, DInt, UDInt, USInt, SInt und Real unterstützt.

Page 38: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 38

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.2 FB LGF_FloatingAverage

Kurzbeschreibung

Dieser Baustein berechnet aus REAL-Werten einen gleitenden arithmetischen Mittelwert. Diese Methode kann zur Glättung von Datenreihen verwendet werden. Die Werte können zyklisch oder getriggert eingelesen werden.

Baustein

Abbildung 3-18: LGF_FloatingAverage

FB LGF_FloatingAverage

REAL value average LREAL

INT mode windowSizeReached BOOL

INT windowSize error BOOL

BOOL trigger status WORD

BOOL reset

Eingangsparameter

Tabelle 3-34: Eingangsparameter

Parameter Datentyp Beschreibung

value REAL Werte, aus welchen der gleitende Mittelwert bestimmt werden soll.

mode INT Auswahl des Modus (siehe Funktionsweise); Standardwert: mode=1.

windowsSize INT Fensterlänge für die gleitende Mittelung im Bereich von 1..100

Der Standardwert liegt bei 100.

trigger BOOL Trigger-Variable, Impuls

reset BOOL Der Baustein wird zurückgesetzt und die Berechnung beginnt erneut.

Hinweis Der Baustein "LGF_FloatingAverage" führt keine Datentypabfrage für den Eingangsparameter "value" durch. Bei anderen Datentypen als REAL wird entweder automatisch eine implizite Konvertierung durchgeführt oder ein Fehler beim Übersetzen generiert.

Weitere Informationen finden Sie im Kapitel "Übersicht über die Datentypkonvertierung" in der Online Hilfe des TIA Portals oder unter:

https://support.industry.siemens.com/cs/ww/de/view/109011420/58427923211

Page 39: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 39

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-35: Ausgangsparameter

Parameter Datentyp Beschreibung

average LREAL Gleitender Mittelwert

windowSizeReached BOOL 0: maximale noch nicht Fensterbreite erreicht

1: maximale Fensterbreite erreicht

error BOOL 0: keine Fehler

1: Fehler im Baustein

status WORD Status/Fehler-Code (siehe folgende Tabelle)

Status- und Fehleranzeigen

Tabelle 3-36: Status/Fehlercodes

status Bedeutung Abhilfe / Hinweise

16#0000 Keine Fehler -

16#8201 Kein Modus ausgewählt Wählen Sie einen Modus (1 oder 2).

16#8202 Keine korrekte Fensterbreite Stellen Sie einen Wert zwischen 1 und 100 ein.

Funktionsweise

Der Baustein berechnet den (gleitenden) Mittelwert anhand der eingestellten Fensterbreite. Die Fensterbreite gibt die maximale Anzahl der zuletzt eingelesenen Werte an. Nachdem die maximale Anzahl an Werten eingelesen wurde, wird der Ausgang "windowSizeReached" gesetzt und jeder neu eingelesene Wert ersetzt den jeweils ältesten Wert (FIFO-Prinzip).

Für das Einlesen der Werte stehen zwei Modi zur Verfügung, die mit dem Parameter "mode" festgelegt werden:

mode = 1: Einlesen bei jedem Impuls am Eingang "trigger"

mode = 2: Zyklisches Einlesen

Der Baustein wird aktiviert, sobald Sie einen Modus ausgewählt haben. Zwischen den Modi kann im Betrieb gewechselt werden.

Page 40: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 40

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.3 FC LGF_MatrixAddition

Kurzbeschreibung

Dieser Baustein addiert zwei gleich große Matrizen vom Datentyp ARRAY of REAL.

Baustein

Abbildung 3-19: FC LGF_MatrixAddition

FC LGF_MatrixAddition

ARRAY of REAL matrix1 matrixResult ARRAY of REAL

ARRAY of REAL matrix2 error BOOL

statusID UINT

status WORD

Eingangsparameter

Tabelle 3-37: Eingangsparameter

Parameter Datentyp Beschreibung

matrix1 ARRAY of REAL Erster Summand (Matrix)

matrix2 ARRAY of REAL Zweiter Summand (Matrix)

Ausgangsparameter

Tabelle 3-38: Ausgangsparameter

Parameter Datentyp Beschreibung

matrixResult ARRAY of REAL Summe (Matrix)

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-39: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 Keine Fehler -

1 16#8200 Untere Grenzen der Arrays sind unterschiedlich.

Alle Arrays müssen die gleiche untere Grenze haben, z. B. : Array[0..2, 0..2] of Real

1 16#8201 Obere Grenzen der Arrays sind unterschiedlich.

Alle Arrays müssen die gleiche obere Grenze haben, z. B. : Array[0..2, 0..2] of Real

Page 41: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 41

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein addiert zwei Matrizen gleicher Größe. Die einzelnen Felder der zwei eingehenden Matrizen werden gelesen, addiert und anschließend in der Matrix "matrixResult" ausgegeben.

Hinweis Beachten Sie, dass alle Ein- und Ausgangsmatrizen die gleiche untere und obere Grenze und somit die gleiche Anzahl an Spalten und Reihen haben müssen.

Page 42: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 42

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.4 FC LGF_MatrixInverse

Kurzbeschreibung

Dieser Baustein invertiert eine quadratische Matrix vom Datentyp ARRAY of REAL.

Baustein

Abbildung 3-20: FC LGF_MatrixInverse

FC LGF_MatrixInverse

ARRAY of REAL matrix matrixResult ARRAY of REAL

error BOOL

statusID UINT

status WORD

Eingangsparameter

Tabelle 3-40: Eingangsparameter

Parameter Datentyp Beschreibung

matrix ARRAY of REAL Eingangsmatrix

Ausgangsparameter

Tabelle 3-41: Ausgangsparameter

Parameter Datentyp Beschreibung

matrixResult ARRAY of REAL Invertierte Matrix

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-42: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 Keine Fehler -

1 16#8200 Untere Grenzen der Arrays sind unterschiedlich.

Alle Arrays müssen die gleiche untere Grenze haben, z. B. : Array[0..2, 0..2] of Real

1 16#8201 Obere Grenzen der Arrays sind unterschiedlich.

Alle Arrays müssen die gleiche obere Grenze haben, z. B. : Array[0..2, 0..2] of Real

1 16#8202 Eingangsmatrix ist nicht quadratisch. Die Anzahl der Zeilen muss gleich der Anzahl der Spalten sein.

1 16#8203 Anwendung des Algorithmus für die Eingangsmatrix nicht möglich.

Erstes Element (a1,1) der Eingangsmatrix darf nicht Null sein.

Page 43: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 43

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein invertiert eine quadratische Matrix beliebiger Größe nach dem Shipley-Coleman Verfahren.

Hinweis Beachten Sie, dass die Eingangsmatrix quadratisch sein muss. Dies bedeutet, die Anzahl der Zeilen muss gleich der Anzahl der Spalten sein.

Die Ausgangsmatrix muss genauso groß sein und die gleichen Array-Grenzen haben, wie die Eingangsmatrix.

Page 44: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 44

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.5 FC LGF_MatrixMultiplication

Kurzbeschreibung

Dieser Baustein multipliziert zwei Matrizen vom Datentyp Array of REAL.

Baustein

Abbildung 3-21: FC LGF_MatrixMultiplication

FC LGF_MatrixMultiplication

ARRAY of REAL matrix1 matrixResult ARRAY of REAL

ARRAY of REAL matrix2 error BOOL

statusID UINT

status WORD

Eingangsparameter

Tabelle 3-43: Eingangsparameter

Parameter Datentyp Beschreibung

matrix1 ARRAY of REAL Erster Faktor: Zu multiplizierende Matrix

matrix2 ARRAY of REAL Zweiter Faktor: Zu multiplizierende Matrix

Hinweis Neu ab V2.0.0 Die Eingangsparameter "rows1", "columns1", "rows2" und "columns2" werden bei dieser Version des Bausteins nicht mehr benötigt, da hier die variablen Grenzen von Array[*,*] mit den Anweisungen "LOWER_BOUND" und "UPPER_BOUND" abgefragt werden.

Ausgangsparameter

Tabelle 3-44: Ausgangsparameter

Parameter Datentyp Beschreibung

matrixResult ARRAY of REAL Produkt: Die resultierende Matrix

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Page 45: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 45

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status- und Fehleranzeigen

Tabelle 3-45: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 Keine Fehler -

1 16#8200 Die Anzahl der Spalten der ersten Matrix entspricht nicht der Anzahl der Zeilen der zweiten Matrix.

Die Grenzen der Arrays müssen ebenfalls identisch sein.

1 16#8201 Größe der Ausgangsmatrix (m x n) entspricht nicht der Anzahl der Zeilen (m) der "matrix1" und Anzahl der Spalten (n) der "matrix2".

Die Grenzen der Arrays müssen ebenfalls identisch sein.

Funktionsweise

Der Baustein multipliziert zwei Matrizen variabler Größe. Die einzelnen Elemente der zwei eingehenden Matrizen werden gelesen, multipliziert und anschließend in der "matrixResult"-Matrix ausgegeben.

Hinweis Beachten Sie, dass die Anzahl der Spalten der ersten Matrix gleich der Anzahl der Zeilen der zweiten Matrix sein muss.

Die Größe der Ausgangsmatrix (m * n) ergibt sich aus der Anzahl der Zeilen (m) der "matrix1" und Anzahl der Spalten (n) der "matrix2".

Page 46: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 46

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.6 FC LGF_MatrixSubtraction

Kurzbeschreibung

Dieser Baustein subtrahiert eine Matrix vom Datentyp ARRAY of REAL von einer anderen.

Baustein

Abbildung 3-22: FC LGF_MatrixSubtraction

FC LGF_MatrixSubtraction

ARRAY of REAL matrix1 matrixResult ARRAY of REAL

ARRAY of REAL matrix2 error BOOL

statusID UINT

status WORD

Eingangsparameter

Tabelle 3-46: Eingangsparameter

Parameter Datentyp Beschreibung

matrix1 ARRAY of REAL Minuend: Von dieser Matrix wird "matrix2" subtrahiert.

matrix2 ARRAY of REAL Subtrahend: Diese Matrix wird von "matrix1" subtrahiert.

Ausgangsparameter

Tabelle 3-47: Ausgangsparameter

Parameter Datentyp Beschreibung

matrixResult ARRAY of REAL Differenz: Die resultierende Matrix

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-48: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 Keine Fehler -

1 16#8200 Untere Grenzen der Arrays sind unterschiedlich.

Alle Arrays müssen die gleiche untere Grenze haben, z. B. : Array[0..2, 0..2] of Real

1 16#8201 Obere Grenzen der Arrays sind unterschiedlich.

Alle Arrays müssen die gleiche obere Grenze haben, z. B. : Array[0..2, 0..2] of Real

Page 47: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 47

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein subtrahiert zwei Matrizen variabler Größe. Die einzelnen Felder der zwei Matrizen werden gelesen, subtrahiert und anschließend in der Matrix "matrixResult" ausgegeben.

Hinweis Beachten Sie, dass alle Ein- und Ausgangsmatrizen die gleiche Anzahl an Spalten und Zeilen haben müssen.

Page 48: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 48

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.7 FC LGF_MatrixTranspose

Kurzbeschreibung

Dieser Baustein transponiert eine Matrix vom Datentyp ARRAY of REAL.

Bedingung: Eingangsmatrix (m x n) = Ausgangsmatrix (n x m)

Baustein

Abbildung 3-23: FC LGF_MatrixTranspose

FC LGF_MatrixTranspose

ARRAY of REAL matrix matrixResult ARRAY of REAL

error BOOL

statusID UINT

status WORD

Eingangsparameter

Tabelle 3-49: Eingangsparameter

Parameter Datentyp Beschreibung

matrix ARRAY of REAL zu transponierende Matrix

Hinweis Neu ab V2.0.0 Die Eingangsparameter "rows" und "columns" werden bei dieser Version des Bausteins nicht mehr benötigt, da hier die variablen Grenzen von Array[*,*] mit den Anweisungen "LOWER_BOUND" und "UPPER_BOUND" abgefragt werden.

Ausgangsparameter

Tabelle 3-50: Ausgangsparameter

Parameter Datentyp Beschreibung

matrixResult ARRAY of REAL resultierende Matrix

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt Fehlerquelle aus, "status" gibt Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-51: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 Keine Fehler -

1 16#8200 Untere Grenzen der Arrays sind unterschiedlich.

Alle Arrays müssen die gleiche untere Grenze haben, z. B. : Array[0..2, 0..2] of Real

Page 49: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 49

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

statusID status Bedeutung Abhilfe / Hinweise

1 16#8201 Obere Grenzen der Arrays sind unterschiedlich.

Alle Arrays müssen die gleiche obere Grenze haben, z. B. : Array[0..2, 0..2] of Real

Page 50: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 50

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.8 FB LGF_MinMaxHistory

Kurzbeschreibung

Dieser Baustein liest bei jedem Aufruf einen Wert einer Variablen ein und gibt den maximalen und minimalen Wert aus, der seit dem ersten Aufruf eingelesen wurde.

Die Auswertung kann bei Bedarf zurückgesetzt werden. Der Baustein unterstützt den Datentyp LREAL.

Baustein

Abbildung 3-24: FB LGF_MinMaxHistory

FB LGF_MinMaxHistory

LREAL variable minValue LREAL

BOOL reset maxValue LREAL

Eingangsparameter

Tabelle 3-52: Eingangsparameter

Parameter Datentyp Beschreibung

variable LREAL Variable dessen Wert auf Minimum und Maximum geprüft wird.

reset BOOL Der Baustein wird zurückgesetzt und die Auswertung beginnt von vorne.

Ausgangsparameter

Tabelle 3-53: Ausgangsparameter

Parameter Datentyp Beschreibung

minValue LREAL Minimaler Wert seit erstem Aufruf oder seit Aktivierung des Eingangs "reset".

maxValue LREAL ‚Maximaler Werte seit erstem Aufruf oder seit Aktivierung des Eingangs "reset".

Page 51: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 51

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.9 FC LGF_RandomBasic

Kurzbeschreibung

Diese Funktion generiert bei jedem Aufruf einen zufälligen Wert zwischen 0.0 und 1.0. Die Zufallszahl hat den Datentyp REAL.

Baustein

Abbildung 3-25: FC LGF_RandomBasic

FC LGF_RandomBasic

Ret_Val REAL

Ausgangsparameter

Tabelle 3-54: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val REAL Zufallszahl

Funktionsweise

Die Funktion generiert zufällige Werte im Bereich 0.0 ≤ Ret_Val ≤ 1.0.

Hintergrundinformation

Der Zufallswert wird aus den Nanosekunden der aktuellen Systemzeit der CPU gebildet. Dabei wird die Bytereihenfolge dieses Wertes invertiert und anschließend in eine normierte Gleitkommazahl ungewandelt.

Page 52: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 52

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.10 FC LGF_RandomINT / LGF_RandomReal

Kurzbeschreibung

Dieser Baustein generiert pro Aufruf einen "zufälligen" Wert zwischen einem definierten Max- und Minwert. Die Zufallszahl hat den Datentyp INT / REAL.

Baustein

Abbildung 3-26: FC LGF_RandomINT / FC LGF_RandomReal

FC LGF_Random…

INT / REAL maxValue Ret_Val INT / REAL

INT / REAL minValue error BOOL

statusID UINT

status WORD

Eingangsparameter

Tabelle 3-55: Eingangsparameter

Parameter Datentyp Beschreibung

maxValue INT / REAL Definiert den oberen Grenzwert der Zufallszahl.

minValue INT / REAL Definiert den unteren Grenzwert der Zufallszahl.

Ausgangsparameter

Tabelle 3-56: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val INT / REAL Zufallszahl

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-57: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8200 "minValue" ist größer als "maxValue". -

2 - Fehler/Status von unterlagerten Baustein "RD_SYS_T".

-

Page 53: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 53

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Der Baustein generiert zufällige Werte, die zwischen dem angegebenen "minValue"-Wert und "maxValue"-Wert liegen. Dieser zufällige Wert wird über den "Ret_Val" ausgegeben.

Hintergrundinformation

Der Zufallswert wird aus den Nanosekunden der aktuellen Systemzeit der CPU gebildet. Dabei wird die Bytereihenfolge dieses Wertes invertiert und anschließend in eine normierte Gleitkommazahl ungewandelt.

Hinweis Wenn kein Max- und Minwert (= 0) festgelegt wird, gibt der Baustein zufällige Werte über den gesamten Wertebereich von INT / REAL aus.

Page 54: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 54

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.11 FC LGF_SearchMinMax

Kurzbeschreibung

Dieser Baustein sucht in einem Array den Maximal und Minimalwert sowie den jeweiligen Index im Array.

Folgende Datentypen der Array-Elemente werden unterstützt: Int, DInt, UInt, UDInt, USInt, SInt und Real.

Baustein

Abbildung 3-27: FC LGF_SearchMinMax

FC LGF_SearchMinMax

VARIANT variableArray min VARIANT

minArrayIndex INT

max VARIANT

maxArrayIndex INT

error BOOL

statusID UINT

status WORD

Eingangsparameter

Tabelle 3-58: Eingangsparameter

Parameter Datentyp Beschreibung

variableArray VARIANT Array, in dessen Feldern das Maximum und Minimum gesucht wird.

Ausgangsparameter

Tabelle 3-59: Ausgangsparameter

Parameter Datentyp Beschreibung

minValue VARIANT Kleinster gefundener Wert.

minArrayIndex INT Startindex des Arrays plus minArrayIndex ergibt den Arrayindex des kleinsten Wertes. Der Index beginnt mit 0.

maxValue VARIANT Größter gefundener Wert.

maxArrayIndex INT Startindex des Arrays plus maxArrayIndex ergibt den Arrayindex des größeten Wertes. Der Index beginnt mit 0.

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Page 55: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 55

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status- und Fehleranzeigen

Tabelle 3-60: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8200 Am Eingang "variableArray" ist der Aktualparameter kein Array.

-

1 16#8201 Der Datentyp der Elemente des Arrays wird nicht unterstützt.

Es werden nur die Datentypen Int, UInt, DInt, UDInt, USInt, SInt und Real unterstützt.

1 16#8202 Die Elemente des Arrays haben nicht den gleichen Datentyp wie die Ausgänge "minValue" und "maxValue".

-

2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT".

-

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Über den Eingang "variableArray" wird ein Array beliebiger Größe angeschlossen. Nach einer Datentypabfrage im Baustein, werden die Elemente der Reihe nach in eine Variable des entsprechenden Typs kopiert und verglichen. Ausgegeben werden der kleinste und größte Wert sowie deren zugehöriger Index im Array.

Hinweis Bei mehreren gleichen Min- bzw. Max-Werten wird der Index des ersten Min- bzw. Max-Wertes ausgegeben.

Page 56: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 56

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.12 FC LGF_XRoot

Kurzbeschreibung

Dieser Baustein berechnet die x-te Wurzel von einer numerischen Variablen.

Baustein

Abbildung 3-28: FC LGF_Random

FC LGF_XRoot

REAL variable Ret_Val REAL

REAL root

Eingangsparameter

Tabelle 3-61: Eingangsparameter

Parameter Datentyp Beschreibung

variable REAL Variable aus der die Wurzel berechnet werden soll.

root REAL Wurzel (z.B. 3 als 3te Wurzel)

Ausgangsparameter

Tabelle 3-62: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val REAL Ausgabe des Ergebnisses

Funktionsweise

Der Baustein berechnet die n-te Wurzel aus einer Zahl. Um diese Funktion umzusetzen, wird folgende Formel erweitert.

𝑛𝑢𝑚𝑏𝑒𝑟 = 𝑒𝑙𝑜𝑔𝑒(𝑛𝑢𝑚𝑏𝑒𝑟)

Daraus folgt:

𝑅𝑒𝑡_𝑉𝑎𝑙 = √𝑛𝑢𝑚𝑏𝑒𝑟𝑟𝑜𝑜𝑡

= 𝑛𝑢𝑚𝑏𝑒𝑟1

𝑟𝑜𝑜𝑡 = (𝑒𝑙𝑜𝑔𝑒(𝑛𝑢𝑚𝑏𝑒𝑟))1

𝑟𝑜𝑜𝑡 = 𝑒ln(𝑛𝑢𝑚𝑏𝑒𝑟)∗

1𝑟𝑜𝑜𝑡

In STEP 7 (TIA Portal) entspricht die Funktion "EXP" e(…)

und die Funktion "LN" ln(…).

Daraus ergibt sich die folgende Formel:

𝑅𝑒𝑡_𝑉𝑎𝑙 = 𝐸𝑋𝑃((1 𝑟𝑜𝑜𝑡⁄ ) ∗ LN(𝑛𝑢𝑚𝑏𝑒𝑟))

Page 57: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 57

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.13 FC LGF_HighLowLimit

Kurzbeschreibung

Die Funktion prüft, ob ein Wert sich in einem definierten Wertebereich befindet. Der Wertebereich wird mit einem Sollwert und einer Totzone um diesen Sollwert definiert. Die Funktion berechnet die untere und obere Grenze des Wertebereichs.

Baustein

Abbildung 3-29: FC LGF_HighLowLimit

FC LGF_HighLowLimit

REAL value valueInRange BOOL

REAL setpoint highLimitExceeded BOOL

REAL deadband lowLimitExceeded BOOL

error BOOL

status WORD

Eingangsparameter

Tabelle 3-63: Eingangsparameter

Parameter Datentyp Beschreibung

value INT / REAL Wert, der geprüft werden soll, ob er sich im definierten Wertebereich befindet

setpoint INT / REAL Sollwert

deadband INT / REAL Totband

Ausgangsparameter

Tabelle 3-64: Ausgangsparameter

Parameter Datentyp Beschreibung

valueInRange BOOL "TRUE, wenn sich "value" im Wertebereich (Totzone um den Sollwert) befindet.

valueOverHighLimit BOOL "TRUE", wenn "value" größer als der obere Grenzwert ("setpoint" + 0,5 * "deadband")ist.

valueUnderLowLimit BOOL "TRUE", wenn "value"kleiner als der untere Grenzwert ("setpoint" - 0,5 * "deadband") ist.

error BOOL "FALSE": keine Fehler

"TRUE": Fehler im Baustein

status WORD Status/Fehler-Code aus (siehe folgende Tabelle)

Status- und Fehleranzeigen

Tabelle 3-65: Status/Fehlercodes

Status Bedeutung Abhilfe / Hinweise

16#0000 Keine Fehler -

16#8101 Falscher Wertebereich "highValue" -

16#8102 Falscher Wertebereich "lowValue" -

Page 58: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 58

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status Bedeutung Abhilfe / Hinweise

16#8200 "lowValue" ist größer als "highValue". -

Funktionsweise

Die Variable "setpoint" und "deadband" definieren einen Wertebereich. Die Funktion prüft, ob sich der Wert "value" unter, in oder über dem Wertebereich befindet. Die Ausgänge "valueUnderLowLimit", "valueInRange" oder "valueOverHighLimit" geben aus, wo sich der Wert "value" befindet.

Abbildung 3-30: Funktionsweise

value

deadband

deadband * 0,5 deadband * 0,5

valueUnderLowLimit valueOverHighLimit

setpoint

valueInRange

Page 59: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 59

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.14 FB LGF_Integration

Kurzbeschreibung

Dieser Baustein berechnet näherungsweise die Fläche unter einer Funktionskurve. Die Funktionskurve wird als Analogwert (REAL) übergeben, der über die Zeit variiert. Am Ausgang wird der Integralwert ausgegeben.

Baustein

Abbildung 3-31: FB LGF_Integration

FB LGF_Integration

REAL value integral REAL

BOOL enable error BOOL

BOOL reset statusID UINT

status WORD

Eingangsparameter

Tabelle 3-66: Eingangsparameter

Parameter Datentyp Beschreibung

value REAL Analogwert der kontinuierlichen Funktionskurve

enable BOOL Aktivierung der Integral-Berechnung Erhält dieser Eingang den Wert "FALSE", wird die Integralberechnung gestoppt und der Ausgang "integral" zeigt den zuletzt berechneten Wert.

reset BOOL Setzt den Ausgang "integral" auf "0.0".

Ausgangsparameter

Tabelle 3-67: Ausgangsparameter

Parameter Datentyp Beschreibung

integral LREAL Integrierter Wert

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-68: Status/Fehlercodes

statusID Status Bedeutung Abhilfe / Hinweise

0 16#0000 Keine Fehler -

2 - Fehler/Status von unterlagerten Baustein "RD_SYS_T".

-

Page 60: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 60

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Die Integralberechnung beinhaltet die Aufsummierung jener Trapezflächen, die sich zwischen den letzten beiden Funktionswerten am Eingang "value" und der Zeit aufspannen. Die vergangene Zeit wird über die Systemzeit der CPU berechnet. Diese Trapezfläche ist identisch mit dem Produkt aus dem Mittelwert der beiden Prozesswerte und dem Zeitintervall.

𝐴 = 1

2∗ (𝐹(𝑡1) + 𝐹(𝑡0)) ∗ (𝑡1 − 𝑡0) +

1

2∗ (𝐹(𝑡2) + 𝐹(𝑡1)) ∗ (𝑡2 − 𝑡1) + ⋯)

Abbildung 3-32: Funktionsweise

Um die Integralberechnung für den Eingangswert am Parameter "value" zu starten, müssen Sie

den Parameter "enable" auf den Wert "TRUE" setzen,

den Parameter "reset" auf den Wert "FALSE " setzen.

Wird der Parameter "enable" auf den Wert "FALSE"gesetzt, wird die Integralberechnung gestoppt und der Ausgang "integral" gibt den zuletzt berechneten Wert aus.

Wird der Parameter "reset" auf den Wert "TRUE" gesetzt, wird der Ausgang "integral" auf "0.0" zurückgesetzt.

Page 61: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 61

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.15 FC LGF_Factorial (NEU)

Kurzbeschreibung

Die Funktion berechnet die Fakultät einer natürlichen Zahl.

Baustein

Abbildung 3-33: LGF_Factorial

FC LGF_Factorial

INT n Ret_Val DINT

error BOOL

status WORD

Eingangsparameter

Tabelle 3-69: Eingangsparameter

Parameter Datentyp Beschreibung

n INT Natürliche Zahl

Ausgangsparameter

Tabelle 3-70: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val DINT Berechnete Fakultät

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-71: Status/Fehlercodes

Status Bedeutung Abhilfe / Hinweise

16#0000 Keine Fehler -

16#7000 Initialwert -

16#8101 Falscher Wertebereich für Eingangs-parameter "n".

Wert zwischen 0 und 12 eingeben.

Funktionsweise

Die Funktion berechnet die Fakultät einer natürlichen Zahl. Der zulässige Werte-bereich des Eingangsparameters "n" liegt zwischen 0 und 12.

Page 62: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.4 Math operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 62

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.4.16 FC LGF_Distance (NEU)

Kurzbeschreibung

Die Funktion berechnet berechnet den Abstand zwischen zwei Punkten.

Baustein

Abbildung 3-34: FC LGF_Distance

FC LGF_Distance

REAL x1 Ret_Val REAL

REAL y1

REAL x2

REAL y2

Eingangsparameter

Tabelle 3-72: Eingangsparameter

Parameter Datentyp Beschreibung

x1 REAL X-Koordinate Punkt 1

y1 REAL Y-Koordinate Punkt 1

x2 REAL X-Koordinate Punkt 2

y2 REAL Y-Koordinate Punkt 2

Ausgangsparameter

Tabelle 3-73: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val REAL Berechneter Abstand

Funktionsweise

Der Baustein berechnet den Abstand zwischen zwei Punkten in einem kartesischen Koordinatensystem.

Der Abstand wird nach folgender Formel berechnet:

𝑅𝑒𝑡_𝑉𝑎𝑙 = √(𝑥2 − 𝑥1)² + (𝑦2 − 𝑦1)²𝑟𝑜𝑜𝑡

Abbildung 3-35: Graphische Darstellung

x1 x2

y1

y2

P1

P2

x

y

Ret_Val

Page 63: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 63

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.5 Data handling

3.5.1 FB LGF_FIFO

Kurzbeschreibung

Dieser Baustein speichert eingehende Aufträge/Daten und gibt den ältesten noch nicht abgearbeiteten Auftrag aus.

Baustein

Abbildung 3-36: FB LGF_FIFO

FB LGF_FIFO

BOOL execute done BOOL

BOOL mode error BOOL

VARIANT initialValue statusID UINT

BOOL resetBuffer status WORD

VARIANT item (InOut)

VARIANT buffer (InOut)

Eingangsparameter

Tabelle 3-74: Eingangsparameter

Parameter Datentyp Beschreibung

execute BOOL Anforderung eines Durchlaufs.

mode BOOL Auswahl des Modus.

TRUE: Schreiben des Wertes von "item" in "buffer"

FALSE: Lesen des Wertes aus "buffer" und Ausgabe an "item"

initialValue VARIANT Wert zur Initialisierung des Puffers (meistens: 0 )

resetBuffer BOOL Leeren und Initialisieren des Puffers.

Ein-/Ausgangsparameter (InOut)

Tabelle 3-75: Ein-/Ausgangsparameter (InOut)

Parameter Datentyp Beschreibung

item VARIANT Wert der aus dem Puffer zurückgegeben wird oder in den Ring-Puffer geschrieben werden soll.

buffer VARIANT Puffer (Array of … )

Page 64: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 64

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-76: Ausgangsparameter

Parameter Datentyp Beschreibung

done BOOL 1: Durchlauf beendet.

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-77: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8001 Der Puffer ist leer. -

1 16#8002 Der Puffer ist voll. -

1 16#8200 Am Eingang "buffer" liegt kein Array an.

-

1 16#8201 Der Datentyp des InOut-Parameters "item" entspricht nicht dem Datentyp der Array-Elemente von dem Eingang "buffer".

-

1 16#8202 Der Datentyp des Eingangs "initialValue" entspricht nicht dem Datentyp des InOut-Parameters "item".

-

1 16#8601 Die Variable "nextEmptyItemIndex" liegt nicht innerhalb der Array-Grenzen.

-

1 16#8602 Die Variable "firstItemIndex" liegt nicht innerhalb der Array-Grenzen.

-

2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT".

-

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Damit der Baustein gestartet wird, muss am Eingang "execute" eine positive Flanke erkannt werden.

Um den nächsten abzuarbeitenden Lese-Auftrag anzufordern muss am Eingang "mode" der Wert "FALSE" anliegen. Ist dies der Fall, wird am InOut-Parameter

Page 65: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 65

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

"item" der als nächstes abzuarbeitende Auftrag/Daten ausgegeben und dieses Feld im Puffer durch den Wert am Parameter "initialValue" ersetzt.

Um einen neuen Schreib-Auftrag im Puffer zu speichern muss am Eingang "mode" der Wert "TRUE" anliegen. Ist dies der Fall, wird der am InOut-Parameter "item" anliegende Wert bzw. Auftrag im Puffer an der nächsten freien Stelle abgespeichert.

Liegt am Eingang "resetBuffer" während eines Durchlaufs der Wert "TRUE" an, werden alle Felder im Puffer auf den am Eingang "InitialValue" angegebenen Wert zurückgesetzt. Anschließend kann der Puffer wieder mit Aufträgen/Daten befüllt werden.

Page 66: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 66

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.5.2 FB LGF_LIFO (NEU)

Kurzbeschreibung

Dieser Baustein speichert eingehende Aufträge/Daten und gibt den aktuellsten noch nicht abgearbeiteten Auftrag/Daten aus.

Baustein

Abbildung 3-37: FB LGF_LIFO

FB LGF_LIFO

BOOL execute done BOOL

BOOL mode error BOOL

VARIANT initialValue statusID UINT

BOOL resetBuffer status WORD

VARIANT item (InOut)

VARIANT buffer (InOut)

Eingangsparameter

Tabelle 3-78: Eingangsparameter

Parameter Datentyp Beschreibung

execute BOOL Anforderung eines Durchlaufs.

mode BOOL Auswahl des Modus.

TRUE: Schreiben des Wertes von "item" in "buffer"

FALSE: Lesen des Wertes aus "buffer" und Ausgabe an "item"

initialValue VARIANT Wert zur Initialisierung des Puffers (meistens: 0 )

resetBuffer BOOL Leeren und Initialisieren des Puffers.

Ein-/Ausgangsparameter (InOut)

Tabelle 3-79: Ein-/Ausgangsparameter (InOut)

Parameter Datentyp Beschreibung

item VARIANT Wert der aus dem Puffer zurückgegeben wird oder in den Ring-Puffer geschrieben werden soll.

buffer VARIANT Puffer (Array of … )

Page 67: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 67

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-80: Ausgangsparameter

Parameter Datentyp Beschreibung

done BOOL 1: Durchlauf beendet.

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-81: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8001 Der Puffer ist leer. -

1 16#8002 Der Puffer ist voll. -

1 16#8200 Am Eingang "buffer" liegt kein Array an.

-

1 16#8201 Der Datentyp des InOut-Parameters "item" entspricht nicht dem Datentyp der Array-Elemente von dem Eingang "buffer".

-

1 16#8202 Der Datentyp des Eingangs "initialValue" entspricht nicht dem Datentyp des InOut-Parameters "item".

-

2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT".

-

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Page 68: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 68

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Damit der Baustein gestartet wird, muss am Eingang "execute" eine positive Flanke erkannt werden.

Um den nächsten abzuarbeitenden Lese-Auftrag anzufordern muss am Eingang "mode" der Wert "FALSE" anliegen. Ist dies der Fall, wird am InOut-Parameter "item" der als nächstes abzuarbeitende Auftrag/Daten ausgegeben und dieses Feld im Puffer durch den Wert am Parameter "initialValue" ersetzt.

Um einen neuen Schreib-Auftrag im Puffer zu speichern muss am Eingang "mode" der Wert "TRUE" anliegen. Ist dies der Fall, wird der am InOut-Parameter "item" anliegende Wert bzw. Auftrag im Puffer an der nächsten freien Stelle abgespeichert.

Liegt am Eingang "resetBuffer" während eines Durchlaufs der Wert "TRUE" an, werden alle Felder im Puffer auf den am Eingang "initialValue" angegebenen Wert zurückgesetzt. Anschließend kann der Puffer wieder mit Aufträgen/Daten befüllt werden.

Page 69: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 69

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.5.3 FB LGF_RingBuffer (NEU)

Kurzbeschreibung

Dieser Baustein legt Daten in einem beliebig großen Array ab. Sobald alle Elemente im Array beschrieben wurden, wird das älteste Element überschrieben. Der neueste Wert befindet sich immer an der ersten Stelle im Array.

Baustein

Abbildung 3-38: FB LGF_RingBuffer

FB LGF_RingBuffer

BOOL write

BOOL resetBuffer

WORD newValue

ARRAY of WORD buffer (InOut)

Eingangsparameter

Tabelle-82: Eingangsparameter

Parameter Datentyp Beschreibung

write BOOL Mit einer steigenden Flanke wird der Wert, der an "newValue" anliegt, in den Ring-Puffer geschrieben.

resetBuffer BOOL Ist der Wert TRUE, wird der Ring-Puffer zurückgesetzt.

newValue WORD Wert, der in den Ring-Puffer geschrieben werden soll.

Ein-/Ausgangsparameter (InOut)

Tabelle-83: Ein-/Ausgangsparameter (InOut)

Parameter Datentyp Beschreibung

buffer ARRAY of WORD Ring-Puffer, in den die Werte geschrieben werden.

Page 70: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 70

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Hinweis Wenn ein anderer Datentyp als WORD verarbeitet werden soll, ändern Sie den Datentyp von "newValue" und "buffer" in der Bausteinschnittstelle.

Funktionsweise

Bei einer positiven Flanke am Eingangsparameter "write" wird der Wert am Ein-gangsparameter "newValue" an die erste Position des Ring-Puffers geschrieben. Dieser Ring-Puffer muss in Form eines Arrays am Ein-Ausgangsparameter "buffer" bereitgestellt werden. Die Grenzen des Arrays werden vom Baustein ermittelt.

Bevor ein Wert in den Ring-Puffer geschrieben wird, werden die bisherigen Elemente des Ring-Puffers um eine Position weiter verschoben. Sind alle Elemente belegt, wird das älteste Element überschrieben.

Liegt am Eingang "resetBuffer" der Wert "TRUE" an, werden alle Felder im Puffer auf den Wert "0" zurückgesetzt. Wenn an "resetBuffer" wieder "FALSE" anliegt, kann der Puffer wieder mit Daten befüllt werden.

Hinweis Da der Eingangsparameter "write" ausschließlich auf steigende Flanken reagiert,

können nur jeden zweiten Zyklus Daten in den Ring-Puffer gespeichert werden.

Page 71: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 71

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.5.4 FB LGF_ShellSortInt / LGF_ShellSortUInt / LGF_ShellSortReal

Kurzbeschreibung

Dieser Baustein sortiert ein Array mit beliebiger Anzahl an Elementen (max. 1000) aufsteigend oder absteigend. Folgende Datentypen werden unterstützt:

Array vom Typ "Int": LGF_ShellSortInt

Array vom Typ "UInt": LGF_ShellSortUInt

Array vom Typ "Real": LGF_ShellSortReal

Baustein

Abbildung 3-39: FB LGF_ShellSort…

FB LGF_ShellSort…

BOOL mode done BOOL

error BOOL

VARIANT variantArray (InOut) statusID UINT

status WORD

Eingangsparameter

Tabelle 3-84: Eingangsparameter

Parameter Datentyp Beschreibung

mode BOOL 0: aufsteigend sortieren (Standard)

1: absteigend sortieren

Ein-/Ausagnagsparameter (InOut)

Tabelle 3-85: Ein-/Ausagnagsparameter (InOut)

Parameter Datentyp Beschreibung

variantArray VARIANT Array, das sortiert werden soll.

Ausgangsparameter

Tabelle 3-86: Ausgangsparameter

Parameter Datentyp Beschreibung

done BOOL 1: Sortieren abgeschlossen.

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Page 72: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 72

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status- und Fehleranzeigen

Tabelle 3-87: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#7000 Initialwert -

1 16#0000 Keine Fehler -

1 16#8200 Aktualparameter am Eingang "variantArray" hat nur ein Element.

Verschalten Sie an den Eingang "variantArray" ein Array mit mindestens zwei Elementen.

1 16#8201 Aktualparameter am Eingang "variantArray" ist kein Array.

1 16#8202 Aktualparameter am Eingang "variantArray" hat nicht den passenden Datentyp.

Verschalten Sie am Eingang "variantArray" ein Array mit dem richtigen Datentyp:

LGF_ShellSortInt: Array of type Int

LGF_ShellSortUInt: Array of type UInt

LGF_ShellSortReal: Array of type Real

1 16#8203 Aktualparameter am Eingang "variantArray" hat zu viele Elemente.

Standardmäßig können Sie Array mit bis zu 1000 Elementen sortieren lassen.

2 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT" beim Lesen des Arrays.

-

3 - Fehler/Status von unterlagerten Baustein "MOVE_BLK_VARIANT" beim Schreiben des Arrays.

-

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Der Baustein sortiert nach dem Shell-Sortierverfahren. Beachten Sie, dass die Ausführungszeit des Bausteins stark davon abhängt, wie viele Elemente das zu sortierende Array hat. Folgende Übersicht zeigt einige Messwerte des Bausteins in Abhängigkeit der Anzahl der Array-Elemente.

Tabelle 3-88: Ausführungszeiten des Bausteins "LGF_ShellSort…"

Anzahl der Array-Elemente

S7-1212C DC/DC/DC S7-1516-3 PN/DP

100 ca. 11-16 ms ca. 1-2 ms

1000 ca. 185-205 ms ca. 10-12 ms

Hinweis Der Baustein wird synchron ausgeführt und wird nicht auf mehrere SPS-Zyklen aufgeteilt. Somit wirkt sich die Ausführungszeit direkt auf die SPS-Zykluszeit aus. Beachten Sie dieses Verhalten bei ihrem Projekt der verwendeten Steuerung und passen Sie gegebenenfalls die Überwachungszeit der Steuerung an.

Page 73: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 73

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.5.5 FC LGF_CRC8 (NEU)

Kurzbeschreibung

Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion "LGF_CRC8" verwendet als Generatorpolynom (Maske) 8 Bit.

Baustein

Abbildung 3-40: FB LGF_CRC8

FC LGF_CRC8

BYTE initValue Ret_Val BYTE

BYTE mask

ARRAY of BYTE inputArray

Eingangsparameter

Tabelle-89: Eingangsparameter

Parameter Datentyp Beschreibung

initValue BYTE Startwert, mit dem die Berechnung durchgeführt wird. Wenn Sie keinen Startwert benötigen, belegen Sie den Parameter mit 0x0.

mask BYTE Generatorpolynom, mit dem die Berechnung durchgeführt wird.

Ein-/Ausgangsparameter (InOut)

Tabelle-90: Ein-/Ausgangsparameter (InOut)

Parameter Datentyp Beschreibung

inputArray ARRAY of BYTE Datenstrom, für den der CRC-Wert berechnet werden soll.

Ausgangsparameter

Tabelle-91: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val BYTE Berechneter CRC-Wert (Rückgabewert der Funktion).

Funktionsweise

Der Baustein berechnet aus einem beliebig großen Datenstrom den CRC-Wert. Der Datenstrom setzt sich aus den einzelnen Elementen des Arrays am Ein-/Ausgangsparameter "inputArray" zusammen. Der Startwert "initValue" und das Generatorpolynom "mask" sind frei wählbar.

Page 74: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 74

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.5.6 FC LGF_CRC8For1Byte (NEU)

Kurzbeschreibung

Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion "LGF_CRC8For1Byte" verwendet als Generatorpolynom (Maske) 8 Bit.

Baustein

Abbildung 3-41: FB LGF_CRC8For1Byte

FC LGF_CRC8For1Byte

BYTE initValue Ret_Val BYTE

BYTE mask

BYTE inputByte

Eingangsparameter

Tabelle-92: Eingangsparameter

Parameter Datentyp Beschreibung

initValue BYTE Startwert, mit dem die Berechnung durchgeführt wird. Wenn Sie keinen Startwert benötigen, belegen Sie den Parameter mit 0x0.

mask BYTE Generatorpolynom, mit dem die Berechnung durchgeführt wird.

inputByte BYTE Datenbyte, für das der CRC-Wert berechnet werden soll.

Ausgangsparameter

Tabelle-93: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val BYTE Berechneter CRC-Wert (Rückgabewert der Funktion).

Funktionsweise

Der Baustein berechnet aus einem Datenbyte den CRC-Wert. Der Startwert "initValue" und das Generatorpolynom "mask" sind frei wählbar.

Page 75: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 75

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.5.7 FC LGF_CRC16 (NEU)

Kurzbeschreibung

Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion "LGF_CRC16” verwendet als Generatorpolynom (Maske) 16 Bit.

Baustein

Abbildung 3-42: FB LGF_CRC16

FC LGF_CRC16

WORD initValue Ret_Val WORD

WORD mask

ARRAY of BYTE inputArray

Eingangsparameter

Tabelle-94: Eingangsparameter

Parameter Datentyp Beschreibung

initValue WORD Startwert, mit dem die Berechnung durchgeführt wird. Wenn Sie keinen Startwert benötigen, belegen Sie den Parameter mit 0x0.

mask WORD Generatorpolynom, mit dem die Berechnung durchgeführt wird.

Ein-/Ausgangsparameter (InOut)

Tabelle-95: Ein-/Ausgangsparameter (InOut)

Parameter Datentyp Beschreibung

inputArray ARRAY of BYTE Datenstrom, für den der CRC-Wert berechnet werden soll.

Ausgangsparameter

Tabelle-96: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val WORD Berechneter CRC-Wert (Rückgabewert der Funktion).

Funktionsweise

Der Baustein berechnet aus einem beliebig großen Datenstrom den CRC-Wert. Der Datenstrom setzt sich aus den einzelnen Elementen des Arrays am Ein-/Ausgangsparameter "inputArray" zusammen. Der Startwert "initValue" und das Generatorpolynom "mask" sind frei wählbar.

Page 76: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 76

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.5.8 FC LGF_CRC32 (NEU)

Kurzbeschreibung

Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion "LGF_CRC32" verwendet als Generatorpolynom (Maske) 32 Bit.

Baustein

Abbildung 3-43: FB LGF_CRC32

FC LGF_CRC32

DWORD initValue Ret_Val DWORD

DWORD mask

DWORD finalXorValue

BOOL reflectInput

BOOL reflectResult

ARRAY of BYTE inputArray

Eingangsparameter

Tabelle-97: Eingangsparameter

Parameter Datentyp Beschreibung

initValue DWORD Startwert, mit dem die Berechnung durchgeführt wird. Wenn Sie keinen Startwert benötigen, belegen Sie den Parameter mit 0x0.

mask DWORD Generatorpolynom, mit dem die Berechnung durchgeführt wird.

finalXorValue DWORD Wert, mit dem am Ende eine weitere XOR-Operation durchgeführt wird

reflectInput BOOL Ist der Wert TRUE, wird die Reihenfolge der Bits innerhalb des Eingangsbytes gespiegelt. Aus der Reihenfolge 0…7 wird 7…0.

reflectResult BOOL Ist der Wert TRUE, wird die Reihenfolge der Bits innerhalb des Ergebnisbytes gespiegelt. Aus der Reihenfolge 0…7 wird 7…0.

Ein-/Ausgangsparameter (InOut)

Tabelle-98: Ein-/Ausgangsparameter (InOut)

Parameter Datentyp Beschreibung

inputArray ARRAY of BYTE Datenstrom, für den der CRC-Wert berechnet werden soll.

Page 77: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.5 Data handling

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 77

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle-99: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val DWORD Berechneter CRC-Wert (Rückgabewert der Funktion).

Funktionsweise

Der Baustein berechnet aus einem beliebig großen Datenstrom den CRC-Wert. Der Datenstrom setzt sich aus den einzelnen Elementen des Arrays am Ein-/Ausgangsparameter "inputArray" zusammen. Der Startwert "initValue" und das Generatorpolynom "mask" sind frei wählbar. Über die boolschen Eingangsparameter "reflectInput" und "reflectResult" können Sie optional die Bits der Eingangsdaten bzw. des CRC-Werts spiegeln (siehe Eingangsparameter). Außerdem wird der CRC-Wert am Ende mit dem Wert, der an "finalXOR" anliegt, XORiert.

Page 78: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 78

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6 Converter operations

3.6.1 FC LGF_BinaryToGray

Kurzbeschreibung

Dieser Baustein wandelt einen binär codierten Wert in einen Gray codierten Wert um.

Baustein

Abbildung 3-44: FC LGF_BinaryToGray

FC LGF_BinaryToGray

DWORD variableBinary Ret_Val DWORD

Eingangsparameter

Tabelle 3-100: Eingangsparameter

Parameter Datentyp Beschreibung

variableBinary DWORD Binär codierter Wert

Ausgangsparameter

Tabelle 3-101: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val DWORD Gray codierter Wert

Page 79: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 79

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.2 FC LGF_GrayToBinary

Kurzbeschreibung

Dieser Baustein wandelt einen nach Gray codierten Wert in einen binär codierten Wert um.

Baustein

Abbildung 3-45: FC LGF_GrayToBinary

FC LGF_GrayToBinary

DWORD variableGray Ret_Val DWORD

Eingangsparameter

Tabelle 3-102: Eingangsparameter

Parameter Datentyp Beschreibung

variableGray DWORD Gray codierter Wert

Ausgangsparameter

Tabelle 3-103: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val DWORD Binär codierter Wert

Page 80: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 80

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.3 FC LGF_BitsToWord

Kurzbeschreibung

Dieser Baustein wandelt 16 BOOL-Variablen in eine WORD-Variable um.

Baustein

Abbildung 3-46: FC LGF_BitsToWord

FC LGF_BitsToWord

BOOL bit0 Ret_Val WORD

BOOL bit1

BOOL bit2

BOOL bit3

BOOL bit4

BOOL bit5

BOOL bit6

BOOL bit7

BOOL bit8

BOOL bit9

BOOL bit10

BOOL bit11

BOOL bit12

BOOL bit13

BOOL bit14

BOOL bit15

Eingangsparameter

Tabelle 3-104: Eingangsparameter

Parameter Datentyp Beschreibung

bit0

bit15

BOOL Bit-Variablen

Ausgangsparameter

Tabelle 3-105: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val WORD Word-Variable

Page 81: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 81

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.4 FC LGF_WordToBits

Kurzbeschreibung

Dieser Baustein wandelt eine WORD-Variable in 16 BOOL-Variablen um.

Baustein

Abbildung 3-47: FC LGF_WordToBits

FC LGF_WordToBits

WORD word bit0 BOOL

bit1 BOOL

bit2 BOOL

bit3 BOOL

bit4 BOOL

bit5 BOOL

bit6 BOOL

bit7 BOOL

bit8 BOOL

bit9 BOOL

bit10 BOOL

bit11 BOOL

bit12 BOOL

bit13 BOOL

bit14 BOOL

bit15 BOOL

Eingangsparameter

Tabelle 3-106: Eingangsparameter

Parameter Datentyp Beschreibung

Word WORD WORD-Variable

Ausgangsparameter

Tabelle 3-107: Ausgangsparameter

Parameter Datentyp Beschreibung

bit0

bit15

BOOL Bit-Variablen

Page 82: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 82

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.5 FC LGF_DTLtoString

Kurzbeschreibung

Dieser Baustein konvertiert ein Datum vom Datentyp DTL in eine Zeichenkette vom Datentyp STRING.

Baustein

Abbildung 3-48: FC LGF_DTLtoString

FC DTLtoString

DTL inDTL Ret_Val STRING

BOOL format

CHAR separatorDate

Eingangsparameter

Tabelle 3-108: Eingangsparameter

Parameter Datentyp Beschreibung

inDTL DTL Datum

format BOOL Formatauswahl der ausgegebenen Zeichenkette:

0: international (YYYY MM DD ...)

1: traditionell (DD MM YYYY ...)

separatorDate CHAR Trennzeichens zwischen den Komponenten des ausgegebenen Datums.

Ausgangsparameter

Tabelle 3-109: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val STRING Ausgegebenen Zeichenkette

Funktionsweise

Der Baustein liest ein Datum vom Datentyp DTL ein und konvertiert die einzelnen Komponenten des Datums (Jahr, Monat, Tag, Stunde...) in eine Zeichenkette und gibt diese aus. Die einzelnen Komponenten werden entsprechend der Formatauswahl an der richtigen Position in der Zeichenkette platziert. Das Trennzeichen zwischen den Komponenten des Datums ist variabel.

Formatauswahl

Über den Eingangsparameter "format" können Sie zwischen dem internationalen (ISO 8601) und dem traditionellen (DE) Datumsformat für die ausgegebene Zeichenkette wählen.

1. Internationales Format (ISO 8601) Wenn der Eingangsparameter "format" nicht gesetzt ist (format = FALSE), wird das Datum als Zeichenkette im internationalen Format ausgegeben. Beispiel: 2016-03-16 13:34:12.123456789

Page 83: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 83

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Folgende Abbildung stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.

Abbildung 3-49: Positionen der einzelnen Zeichen

2. Traditionelles Format (DE) Wenn der Eingangsparameter "format" gesetzt ist (format = TRUE), wird das Datum als Zeichenkette im traditionellen Format ausgegeben. Beispiel: 16-03-2016 13:34:12.123456789 Folgende Abbildung stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.

Abbildung 3-50: Positionen der einzelnen Zeichen

Trennzeichen

Am Eingangsparameter "separatorDate" müssen Sie das Trennzeichen zwischen den Komponenten des Kalenderdatums vorgeben.

Beispiel: separatorDate = ‘/’ outString = ‘2016/03/16 …’

separatorDate = ‘-‘ outString = ‘2016-03-16 …’

Page 84: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 84

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.6 FC LGF_StringToDTL

Kurzbeschreibung

Dieser Baustein konvertiert eine Zeichenkette vom Format String mit Datumskomponenten in den Datentyp DTL.

Baustein

Abbildung 3-51: FC LGF_StringToDTL

FC LGF_StringToDTL

STRING inString Ret_Val DTL

BOOL format error Bool

status WORD

Eingangsparameter

Tabelle 3-110: Eingangsparameter

Parameter Datentyp Beschreibung

inString STRING Datum als Zeichenkette

format BOOL Formatauswahl der eingelesenen Zeichenkette:

0: international (YYYY MM DD ...)

1: traditionell (DD MM YYYY ...)

Ausgangsparameter

Tabelle 3-111: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val DTL Gibt das eingelesene Datum aus

error BOOL 0: kein Fehler

1: Fehler im Baustein, "status" gibt Fehlercode aus

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle)

Status- und Fehleranzeigen

Tabelle 3-112: Status/Fehlercodes

Status Bedeutung Abhilfe / Hinweise

16#0000 Keine Fehler -

16#7000 Initialwert -

16#8201 Format: Jahr Jahresangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)

16#8202 Format: Monat Monatsangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)

16#8203 Format: Tag Tagesangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)

16#8204 Format: Stunde Stundenangabe entspricht nicht dem Format oder Angabe

Page 85: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 85

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status Bedeutung Abhilfe / Hinweise

(außerhalb des Wertebereiches von DTL)

16#8205 Format: Minute Minutenangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)

16#8206 Format: Sekunde

Sekundenangabe entspricht nicht dem Format oder Angabe (außerhalb des Wertebereiches von DTL)

16#8207 Format: Nanosekunde

Nanosekundenangabe entspricht nicht dem Format oder (Angabe außerhalb des Wertebereiches von DTL)

Funktionsweise

Der Baustein liest ein Datum als Zeichenkette ein und konvertiert dieses in den Datentyp DTL. Die einzelnen Datumskomponenten in der Zeichenkette werden entsprechend der Formatauswahl (Positionierung der Datumskomponenten in der Zeichenkette) separiert. Dabei ist das Trennzeichen zwischen den Komponenten in der Zeichenkette irrelevant.

Formatauswahl

Über den Eingangsparameter "format" wählen Sie, ob die eingelesene Zeichenkette im internationalen (ISO 8601) oder traditionellen (DE) Datumsformat angegeben ist.

1. Internationales Format (ISO 8601) Wenn der Eingangsparameter "format" nicht gesetzt ist (format = FALSE), wird das Datum in der Zeichenkette im internationalen Format eingelesen. Beispiel: inString = `2016-03-16 13:34:12.001` format = FALSE outDTL = DTL#2016-03-16-13:34:12.001000 Die Abbildung 2-10 stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.

Abbildung 3-52: Positionen der einzelnen Zeichen

2. Traditionelles Format (DE) Wenn der Eingangsparameter "format" gesetzt ist (format = TRUE), wird das Datum in der Zeichenkette im traditionellen Format eingelesen. Beispiel: inString = ‘16/03/2016 13:34:12.1‘ format = TRUE outDTL = DTL#2016-03-16-13:34:12.100000 Folgende Abbildung stellt die Positionen der einzelnen Zeichen in der Zeichenkette dar.

Abbildung 3-53: Positionen der einzelnen Zeichen

Page 86: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 86

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.7 FC LGF_TemperatureConvert

Kurzbeschreibung

Dieser Baustein rechnet °Celsius in °Fahrenheit oder Kelvin als auch °Fahrenheit in Kelvin um und umgekehrt.

Baustein

Abbildung 3-54: FC LGF_TemperatureConvert

FC LGF_TemperatureConvert

INT mode Ret_Val REAL

REAL temperature error BOOL

Status WORD

Eingangsparameter

Tabelle 3-113: Eingangsparameter

Parameter Datentyp Beschreibung

mode INT Modus

1. °Celsius in °Fahrenheit

2. °Fahrenheit in °Celsius

3. °Celsius in Kelvin

4. Kelvin in °Celsius

5. °Fahrenheit in Kelvin

6. Kelvin in °Fahrenheit

temperature REAL Umzurechnende Temperatur

Ausgangsparameter

Tabelle 3-114: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val REAL Umgerechnete Temperatur

error BOOL 0: keine Fehler

1: Fehler im Baustein

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-115: Status/Fehlercodes

Status Bedeutung Abhilfe / Hinweise

16#7000 Initialwert -

16#0000 Keine Fehler -

16#8200 Kein korrekter Modus am Eingang "mode".

Siehe Beschreibung der Eingangsparameter

Page 87: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 87

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.8 FC LGF_ScaleLinear

Kurzbeschreibung

Diese Funktion skaliert eine Eingangsgröße über eine lineare Geradengleichung.

Baustein

Abbildung 3-55: FC LGF_ScaleLinear

FC LGF_ScaleLinear

VARIANT x y VARIANT

VARIANT x1 error BOOL

VARIANT y1 status WORD

VARIANT x2

VARIANT y2

VARIANT yMin

VARIANT yMax

Eingangsparameter

Tabelle 3-116: Eingangsparameter

Parameter Datentyp Beschreibung

x VARIANT Eingangswert, der skaliert werden soll.

x1 VARIANT Punkt 1 (P1) der linearen Funktion.

y1 VARIANT

x2 VARIANT Punkt 2 (P2) der linearen Funktion.

y2 VARIANT

yMin VARIANT Unterer Grenzwert des Ausgangs.

yMax VARIANT Oberer Grenzwert des Ausgangs.

Ausgangsparameter

Tabelle 3-117: Ausgangsparameter

Parameter Datentyp Beschreibung

y VARIANT Ausgangswert, skaliert.

error BOOL Fehleranzeige.

0: kein Fehler.

1: Fehler im Baustein, "status" gibt Fehlercode aus.

status WORD "status" gibt den Status/Fehlercode aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-118: Status- und Fehlercodes

Status Bedeutung Abhilfe

16#0000 Keine Fehler. -

16#8200 Aktualparameter am Eingang "x" ist vom falschen Datentyp.

Eingang "x" darf nur mit dem Datentyp INT oder REAL parametriert werden.

16#8201 Aktualparameter am Ausgang "y" ist vom Ausgang "y" darf nur mit dem Datentyp INT

Page 88: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 88

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status Bedeutung Abhilfe

falschen Datentyp. oder REAL parametriert werden.

16#8202 Aktualparameter an den Eingängen "x", "x1" und "x2" sind vom unterschiedlichen Datentyp.

Alle x-Parameter müssen entweder INT oder REAL sein.

16#8203 Aktualparameter an den Eingängen "y1", "y2", "yMin", "yMax" und an dem Ausgang "y" sind vom unterschiedlichen Datentyp.

Alle y-Parameter müssen entweder INT oder REAL sein.

16#8204 Unterer Grenzwert "yMin"ist größer als oberer Grenzwert "yMax".

Wählen Sie unteren Grenzwert unterhalb des oberen Grenzwertes.

Funktionsweise

Die Funktion skaliert eine Eingangsgröße (z. B. ein Analogeingangswert) linear auf eine bestimmte Ausgangsgröße (z. B. Füllstand).

Zur Bestimmung der Ausgangsgröße wird in der Funktion folgende lineare Geradengleichung angewendet:

𝑦 = 𝑦2 − 𝑦1𝑥2 − 𝑥1

∙ (𝑥 − 𝑥1) + 𝑦1

Die Gerade wird durch die zwei Punkte, P1 und P2, beschrieben. Die Punkte geben Sie im Sinne eines kartesischen Koordinatensystems durch x- und y-Koordinaten vor.

Hinweis Falls die Werte der Parameter "x1" und "x2" gleich sind, wird am Ausgang "y" der Wert von "y1" ausgegeben.

Mit der Angabe von "yMin" und "yMax" können Sie den berechneten Wert von "y" auf einen unten und oben begrenzten Bereich einschränken. Somit vermeiden Sie Über- und Untersteuerungsbereiche.

Page 89: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 89

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Abbildung 3-56: Skalierung

P2

P1

x1 x2

y2

y1

yMax

yMin

x**

y*

.

.

*) resultierender, skalierter Wert**) zu skalierender Wert

Sie können die Formalparameter mit folgenden Datentypen parametrieren:

Tabelle 3-119: Datentypen

Formalparameter

Skalierung

x, x1, x2 y, y1, y2, yMin, yMax

Datentyp

INT INT INT INT

INT REAL INT REAL

REAL INT REAL INT

REAL REAL REAL REAL

Beispiel

An einer Analogeingangsbaugruppe liegt ein Signal von 4 bis 20mA an. Dieses Signal wird zu dem CPU-internen Wert von 0 bis 27648 gewandelt, um einen Füllstand zu messen. Dabei entsprechen 0 dem Füllstand 0,0m und 27648 dem Füllstand 1,7m.

Den Baustein müssen Sie dann wie folgt parametrieren:

x1 = 0; y1 = 0,0 (P1)

x2 = +27648; y2 = 1,7 (P2)

yMin = 0,0

yMax = 1,7

Page 90: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 90

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.9 FC LGF_StringToTaddr

Kurzbeschreibung

Der Systemdatentyp "TADDR_Param" enthält Adressinformation, bestehend aus einer IPV4-Adresse und der Port-Nummer.

Die Funktion LGF_StringToTaddr konvertiert eine Variable vom Datentyp "String" in eine Variable vom Systemdatentyp "TADDR_Param".

Baustein

Abbildung 3-57: FC LGF_StringToTaddr

FC LGF_StringToTaddr

STRING ipAddressString Ret_Val TADDR_param

error BOOL

status WORD

Eingangsparameter

Tabelle 3-120: Eingangsparameter

Parameter Datentyp Beschreibung

ipAddressString STRING IPV4-Addresse

Ausgangsparameter

Tabelle 3-121: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val TADDR_param IPV4-Addresse

error BOOL 0: keine Fehler

1: Fehler im Baustein

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-122: Status/Fehlercodes

Status Bedeutung Abhilfe / Hinweise

16#0000 Keine Fehler -

16#8101 Falscher Wert im 1. Bereich der IP-Adresse

Überprüfen Sie die IP-Adresse am Eingang

16#8102 Falscher Wert im 2. Bereich der IP-Adresse"

16#8103 Falscher Wert im 3. Bereich der IP-Adresse

16#8104 Falscher Wert im 4. Bereich der IP-Adresse"

16#8105 Falscher Wert im Port Bereich der IP-Adresse"

Page 91: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 91

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Die Funktion konvertiert die IPV4-Adresse mit oder ohne Portnummer vom Datentyp "STRING" nach "TADDR_param". Der String muss der folgenden Form entsprechen:

[0..255].[0..255].[0..255].[0..255] ohne Portnummer

oder

[0..255].[0..255].[0..255].[0..255]:[0..65535] mit Portnummer

Beispiel

Das Standard String Format für eine IPV4 Adresse ohne Port Nummer: ‘192.168.11.11’

Das Standard String Format für eine IPV4 Adresse mit Port Nummer: '192.168.11.11:3294'

Hinweis Wenn Sie im Parameter "ipAddressString" keine Portnummer angeben, gibt der Parameter "Ret_Val.REM_PORT_NR" den Wert "0" aus.

Page 92: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 92

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.10 FC LGF_TaddrToString

Kurzbeschreibung

Der Systemdatentyp "TADDR_Param" enthält Adressinformation, bestehend aus einer IPV4-Adresse und der Port-Nummer.

Die Funktion LGF_TaddrToString konvertiert eine Variable vom Systemdatentyp "TADDR_Param" in eine Variable vom Datentyp "String".

Baustein

Abbildung 3-58: FC LGF_TaddrToString

FC LGF_TaddrToString

TADDR_Param ipAdressTaddr Ret_Val STRING

Eingangsparameter

Tabelle 3-123: Eingangsparameter

Parameter Datentyp Beschreibung

ipAdressTaddr TADDR_Param IPV4-Addresse

Ausgangsparameter

Tabelle 3-124: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val STRING IPV4-Addresse

Funktionsweise

Die Funktion konvertiert die IPV4-Adresse mit oder ohne Portnummer. Der Systemdatentyp "TADDR_Param" ist ein strukturierter Datentyp. In dieser Struktur befindet sich die Variable "REM_PORT_NR". Falls diese Variable "0" ist, wird kein Port in den Parameter "Ret_Val" geschrieben.

Beispiel

Ret_val ohne Port Nummer: ‘192.168.11.11’

Ret_val mit Port Nummer: '192.168.11.11:3294'

Page 93: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 93

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.11 FC LGF_IntToString (NEU)

Kurzbeschreibung

Dieser Baustein konvertiert eine Variable vom Systemdatentyp "DInt" in eine Variable vom Datentyp "String".

Baustein

Abbildung 3-59: FC LGF_IntToString

FC LGF_IntToString

DINT intValue Ret_Val STRING

Eingangsparameter

Tabelle 3-125: Eingangsparameter

Parameter Datentyp Beschreibung

intValue DINT Integer Wert

Ausgangsparameter

Tabelle 3-126: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val STRING Konvertierter Wert als String

Page 94: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.6 Converter operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 94

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.6.12 FC LGF_TimeToString (NEU)

Kurzbeschreibung

Dieser Baustein konvertiert eine Variable vom Systemdatentyp "Time" in eine Variable vom Datentyp "String".

Baustein

Abbildung 3-60: FC LGF_TimeToString

FC LGF_TimeToString

TIME timeValue Ret_Val STRING

Eingangsparameter

Tabelle 3-127: Eingangsparameter

Parameter Datentyp Beschreibung

intValue TIME Integer Wert

Ausgangsparameter

Tabelle 3-128: Ausgangsparameter

Parameter Datentyp Beschreibung

Ret_Val STRING Konvertierte Zeit als String

Page 95: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 95

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.7 Signal generators

3.7.1 FB LGF_Frequency

Kurzbeschreibung

Der Baustein generiert ein Signal, das in Abhängigkeit von einer definierten Frequenz und einem Pulspausenverhältnis, zwischen den Werten "0" und "1" wechselt.

Baustein

Abbildung 3-61: FB LGF_Frequency

FB LGF_Frequency

REAL frequency clock BOOL

REAL pulsePauseRatio countdown TIME

Eingangsparameter

Tabelle 3-129: Eingangsparameter

Parameter Datentyp Beschreibung

frequency REAL Taktfrequenz in Hz

pulsePauseRatio REAL Pulspausenverhältnis (Standard: 1.0 enspricht 1:1)

Ausgangsparameter

Tabelle 3-130: Ausgangsparameter

Parameter Datentyp Beschreibung

clock BOOL Ausgang wechselt mit definierter Frequenz

countdown TIME Verbleibende Zeit des aktuellen Zustands von "clock"

Funktionsweise

Der Ausgang "clock" ist ein boolscher Wert, der in der gewünschten Frequenz toggelt. Über den Eingang "pulsePauseRatio" wird das Pulspausenverhältnis eingestellt werden.

Der Ausgang "countdown" gibt die verbleibende Zeit des aktuellen Zustands von "clock" aus.

Falls die gewünschte Frequenz oder das Pulspausenverhältnis kleiner oder gleich "0.0" ist, ist der Ausgang "clock" = FALSE und "countdown" = "0 s".

Page 96: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 96

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Beispiel

Abbildung 3-62: FB LGF_Frequency

T#0S_703MS

TRUE

T = 2 ston = 1,5 stoff = 0,5 s

FB LGF_Frequency

frequency clock

countdown

0.5

pulsePauseRatio3.0

Tton toff

clock

�𝑢𝑙 𝑒𝑃𝑎𝑢 𝑒𝑅𝑎𝑡 𝑜 = 𝑡𝑜

𝑡𝑜 = 3

1

Page 97: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 97

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.7.2 FB LGF_Impulse

Kurzbeschreibung

Dieser Baustein generiert Impulse in einer vorgegebenen Frequenz. Der Impuls steht immer für einen (Steuerungs-) Zyklus an.

Baustein

Abbildung 3-63: FB LGF_Impulse

FB LGF_Impulse

REAL frequency impulse BOOL

countdown TIME

Eingangsparameter

Tabelle 3-131: Eingangsparameter

Parameter Datentyp Beschreibung

frequency REAL Taktfrequenz in Hz

Ausgangsparameter

Tabelle 3-132: Ausgangsparameter

Parameter Datentyp Beschreibung

impulse BOOL Signal mit Impulsen

countdown TIME Zeit bis zum nächsten Impuls

Funktionsweise

Der Baustein generiert Impulse am Ausgang "impulse" mit der Frequenz "frequency". Der Baustein beginnt immer mit einem Impuls und setzt den folgenden Impuls nach der verstrichenen Periodendauer.

Beispiel

Abbildung 3-64: Beispiel

TRUE

Periodendauer: 2 Sekunden

FB LGF_Impulse

frequency

impulse

countdown

0.5

T#0S_703MS

Hinweis Neu ab V1.2.0 Der Baustein LGF_Impulse (ab V1.2.0) ruft den Baustein LGF_Frequency nicht mehr auf.

Page 98: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 98

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.7.3 FB LGF_SawTooth

Kurzbeschreibung

Dieser Baustein generiert einen sägezahnförmigen Signalverlauf. Jeder Sägezahn besteht aus einer definierten Anzahl an Schritten (Inkrementen).

Baustein

Abbildung 3-65: FB LGF_SawTooth

FB LGF_SawTooth

INT startValue value INT

TIME timeRange

INT incrementRange

INT numberSteps

BOOL endlessSteps

BOOL restart

Eingangsparameter

Tabelle 3-133: Eingangsparameter

Parameter Datentyp Beschreibung

startValue INT Startwert bei dem das Signal beginnt.

timeRange TIME Zeit nach der der Ausgangsparameter "value" inkrementiert wird

incrementRange INT Größe des Sprunges von einem Inkrement auf den nächsten.

numberSteps INT Anzahl der Inkremente pro Sägezahn. (Im Falle eines endlosen Sägezahnsignales ist die Angabe nicht nötig).

endlessSteps BOOL Angabe ob ein endloses Sägezahnsignal generiert werden soll.

restart BOOL Sägezahn beginnt wieder beim Startwert "startValue".

Hinweis Beachten Sie, dass Änderungen an den Eingangsparametern erst mit "restart" wirksam werden.

Ausgangsparameter

Tabelle 3-134: Ausgangsparameter

Parameter Datentyp Beschreibung

value INT Aktueller Wert des Sägezahnsignales.

Funktionsweise

Der Baustein berechnet die Werte für einen sägezahnförmigen Signalverlauf, die am Ausgangsparamter "value" ausgegeben werden. Das Signal beginnt mit dem

Page 99: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 99

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Startwert "startValue" und wird nach jedem Ablauf des Zeitintervalls "timeRange" mit dem Wert "increment" addiert. Der Wert kann auch negativ sein.

Ist die Variable "endlessSteps" auf "FALSE" gesetzt, wird die Anzahl der Addiervorgänge gezählt. Überschreitet diese den Wert "numberSteps" wird der Ausgangsparamter "value" wieder auf den Startwert gesetzt. Ein neuer Sägezahn beginnt.

Ist die Variable "endlessSteps" auf "TRUE" gesetzt, wird - einmalig beginnend bei "startValue" - ununterbrochen der Wert "increment" aufaddiert. Wenn der maximale positive INT-Wertebereich (32767) des Ausgangsparameters "value" überschritten wird, wechselt "value" in den maximalen negativen INT-Wertebereich (-32768) und wird weiter aufaddiert.

Hinweis Die Dauer eines Sägezahns bei "endlessSteps" auf "FALSE" berechnet sich wie folgt:

Dauer = "timeRange * ("numberSteps" + 1)

Abbildung 3-66: Signalverlauf des Ausgangs "value"

startValue

incrementRange

timeRange

time

value

endless Steps= true

restart = true

restart = false

Page 100: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 100

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.7.4 FB LGF_SawToothCI (NEU)

Kurzbeschreibung

Dieser Baustein generiert einen sägezahnförmigen Signalverlauf.

Baustein

Abbildung 3-67: FB LGF_SawToothCI

FB LGF_SawToothCI

REAL amplitude sawToothValues REAL

REAL offset error BOOL

UDINT periodeMS statusID UINT

OB_CYCLIC callOB status WORD

BOOL reset

Eingangsparameter

Tabelle 3-135: Eingangsparameter

Parameter Datentyp Beschreibung

amplitude REAL Amplitude des Signalverlaufs.

offset REAL Verschiebung des Signalverlaufs in Y-Richtung.

periodeMS UDINT Periodendauer des Signalverlaufs in [ms]

callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)

reset BOOL Rücksetzen des Signalverlaufs.

Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.

Ausgangsparameter

Tabelle 3-136: Ausgangsparameter

Parameter Datentyp Beschreibung

sawToothValues REAL Aktueller Wert des Sägezahnsignales.

Status- und Fehleranzeigen

Tabelle 3-137: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 keine Fehler Auftrag abgeschlossen.

1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.

Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.

2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.

Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.

Page 101: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 101

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein berechnet die Werte für einen sägezahnförmigen Signalverlauf, die am Ausgangsparamter "sawToothValues" ausgegeben werden.

Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.

Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "sawToothValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.

Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.

Abbildung 3-68: Weckalarm-OB verschalten

Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:

𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟

𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵

Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.

Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.

Abbildung 3-69: Signalverlauf bei "offset" = 0

Periodendauer

Time

y

Amplitude

0

-Amplitude

Page 102: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 102

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.7.5 FB LGF_TriangleCI (NEU)

Kurzbeschreibung

Dieser Baustein generiert einen dreieckigen Signalverlauf.

Baustein

Abbildung 3-70: FB LGF_TriangleCI

FB LGF_TriangleCI

REAL amplitude triangleValues REAL

REAL offset error BOOL

UDINT periodeMS statusID UINT

OB_CYCLIC callOB status WORD

BOOL reset

Eingangsparameter

Tabelle 3-138: Eingangsparameter

Parameter Datentyp Beschreibung

amplitude REAL Amplitude des Signalverlaufs.

offset REAL Verschiebung des Signalverlaufs in Y-Richtung.

periodeMS UDINT Periodendauer des Signalverlaufs in [ms]

callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)

reset BOOL Rücksetzen des Signalverlaufs.

Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.

Ausgangsparameter

Tabelle 3-139: Ausgangsparameter

Parameter Datentyp Beschreibung

triangleValues REAL Aktueller Wert des Dreiecksignales.

Status- und Fehleranzeigen

Tabelle 3-140: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 keine Fehler Auftrag abgeschlossen.

1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.

Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.

2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.

Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.

Page 103: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 103

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein berechnet die Werte für einen dreieckigen Signalverlauf, die am Ausgangsparamter "triangleValues" ausgegeben werden.

Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.

Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "triangleValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.

Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.

Abbildung 3-71: Weckalarm-OB verschalten

Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:

𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟

𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵

Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.

Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.

Abbildung 3-72: Signalverlauf bei "offset" = 0

Periodendauer

Time

y

Amplitude

0

-Amplitude

Page 104: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 104

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.7.6 FB LGF_RectangleCI (NEU)

Kurzbeschreibung

Dieser Baustein generiert einen rechteckigen Signalverlauf.

Baustein

Abbildung 3-73: FB LGF_RectangleCI

FB LGF_RectangleCI

REAL amplitude rectangleValues REAL

REAL offset error BOOL

UDINT periodeMS statusID UINT

OB_CYCLIC callOB status WORD

BOOL reset

Eingangsparameter

Tabelle 3-141: Eingangsparameter

Parameter Datentyp Beschreibung

amplitude REAL Amplitude des Signalverlaufs.

offset REAL Verschiebung des Signalverlaufs in Y-Richtung.

periodeMS UDINT Periodendauer des Signalverlaufs in [ms]

callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)

reset BOOL Rücksetzen des Signalverlaufs.

Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.

Ausgangsparameter

Tabelle 3-142: Ausgangsparameter

Parameter Datentyp Beschreibung

rectangleValues REAL Aktueller Wert des Rechtecksignales.

Status- und Fehleranzeigen

Tabelle 3-143: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 keine Fehler Auftrag abgeschlossen.

1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.

Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.

2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.

Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.

Page 105: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 105

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein berechnet die Werte für einen rechteckigen Signalverlauf, die am Ausgangsparamter "rectangleValues" ausgegeben werden.

Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.

Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "rectangleValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.

Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.

Abbildung 3-74: Weckalarm-OB verschalten

Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:

𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟

𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵

Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.

Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.

Abbildung 3-75: Signalverlauf bei "offset" = 0

Periodendauer

Time

y

Amplitude

0

-Amplitude

Page 106: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 106

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.7.7 FB LGF_SinusCI (NEU)

Kurzbeschreibung

Dieser Baustein generiert einen sinusförmigen Signalverlauf.

Baustein

Abbildung 3-76: FB LGF_SinusCI

FB LGF_SinusCI

REAL amplitude sinusValues REAL

REAL offset error BOOL

UDINT periodeMS statusID UINT

OB_CYCLIC callOB status WORD

BOOL reset

Eingangsparameter

Tabelle 3-144: Eingangsparameter

Parameter Datentyp Beschreibung

amplitude REAL Amplitude des Signalverlaufs.

offset REAL Verschiebung des Signalverlaufs in Y-Richtung.

periodeMS UDINT Periodendauer des Signalverlaufs in [ms]

callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)

reset BOOL Rücksetzen des Signalverlaufs.

Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.

Ausgangsparameter

Tabelle 3-145: Ausgangsparameter

Parameter Datentyp Beschreibung

sinusValues REAL Aktueller Wert des Dreiecksignales.

Status- und Fehleranzeigen

Tabelle 3-146: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 keine Fehler Auftrag abgeschlossen.

1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.

Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.

2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.

Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.

Page 107: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 107

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein berechnet die Werte für einen sinusförmigen Signalverlauf, die am Ausgangsparamter "sinusValues" ausgegeben werden.

Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.

Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "sinusValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.

Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.

Abbildung 3-77: Weckalarm-OB verschalten

Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:

𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟

𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵

Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.

Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.

Abbildung 3-78: Signalverlauf bei "offset" = 0

Periodendauer

Time

y

Amplitude

0

-Amplitude

Page 108: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 108

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.7.8 FB LGF_CosinusCI (NEU)

Kurzbeschreibung

Dieser Baustein generiert einen cosinusförmigen Signalverlauf.

Baustein

Abbildung 3-79: FB LGF_CosinusCI

FB LGF_CosinusCI

REAL amplitude cosinusValues REAL

REAL offset error BOOL

UDINT periodeMS statusID UINT

OB_CYCLIC callOB status WORD

BOOL reset

Eingangsparameter

Tabelle 3-147: Eingangsparameter

Parameter Datentyp Beschreibung

amplitude REAL Amplitude des Signalverlaufs.

offset REAL Verschiebung des Signalverlaufs in Y-Richtung.

periodeMS UDINT Periodendauer des Signalverlaufs in [ms]

callOB OB_CYCLIC Aufrufender Weckalarm-OB (Cyclic interrupt OB)

reset BOOL Rücksetzen des Signalverlaufs.

Hinweis Änderungen an den Eingangsparametern werden sofort wirksam.

Ausgangsparameter

Tabelle 3-148: Ausgangsparameter

Parameter Datentyp Beschreibung

cosinusValues REAL Aktueller Wert des Dreiecksignales.

Status- und Fehleranzeigen

Tabelle 3-149: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 keine Fehler Auftrag abgeschlossen.

1 16#8200 OB am Eingang "callOB" ist nicht projektiert / vorhanden.

Verschalten Sie am Eingang "callOB" den Konstantennamen eines projektierten Weckalarm-OB.

2 - Fehler / Status der unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.

Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.

Page 109: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.7 Signal generators

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 109

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsweise

Der Baustein berechnet die Werte für einen cosinusförmigen Signalverlauf, die am Ausgangsparamter "cosinusValues" ausgegeben werden.

Die Amplitude "amplitude", die Verschiebung in Y-Richtung "offset" und die Periodendauer "periodeMS" können an den Eingangsparametern vorgegeben werden.

Mit dem Eingangsparameter "reset" wird der Signalverlauf zurückgesetzt. Am Ausgangsparamter "cosinusValues" wird der Wert "0" ausgegeben, solange "reset" auf "TRUE" gesetzt ist.

Der Baustein muss in einem Weckalarm-OB (Cyclic interrupt OB) aufgerufen werden. Der Zeittakt des aufrufen Weckalarm-OB wird im FB mit der Anweisung "QRY_CINT" ermittelt. Dazu muss am Eingangsparameter "callOB" der Konstantenname des aufrufenden Weckalarm-OB verschaltet werden.

Abbildung 3-80: Weckalarm-OB verschalten

Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:

𝐴𝑛𝑧𝑎ℎ𝑙 𝑊𝑒𝑟𝑡𝑒 =𝑃𝑒𝑟 𝑜𝑑𝑒𝑛𝑑𝑎𝑢𝑒𝑟

𝑍𝑒 𝑡𝑡𝑎𝑘𝑡 𝑊𝑒𝑐𝑘𝑎𝑙𝑎𝑟𝑚 𝑂𝐵

Hinweis Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.

Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.

Abbildung 3-81: Signalverlauf bei "offset" = 0

Periodendauer

Time

y

-Amplitude

Amplitude

0

Page 110: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 110

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.8 Technology operations

3.8.1 FB LGF_LimRateOfChangeBasic

Kurzbeschreibung

Dieser Baustein begrenzt die Änderungsgeschwindigkeit einer Eingangsgröße. Aus einer Sprungfunktion wird eine Rampenfunktion.

Baustein

Abbildung 3-82: FB LGF_LimRateOfChangeBasic

FB LGF_LimRateOfChangeBasic

REAL inputValue outputValue REAL

REAL setRateLim error BOOL

REAL defaultOutValue statusID UINT

BOOL onDefaultOutValue status WORD

OB_CYCLIC callOB

Eingangsparameter

Tabelle 3-150: Eingangsparameter

Parameter Datentyp Beschreibung

inputValue REAL Eingangsgröße (Sprungfunktion)

setRateLim REAL Änderungsrate der Rampenfunktion (1/Sekunde)

onDefaultOutValue BOOL Ausgangsgröße vorbelegen

dafaultOutValue REAL Wert für die Vorbelegung der Ausgangsgröße

callOB OB_CYCLIC Aufrufender Weckalarm-OB

Ausgangsparameter

Tabelle 3-151: Ausgangsparameter

Parameter Datentyp Beschreibung

outputValue REAL Ausgangsgröße

error BOOL 0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle)

Page 111: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 111

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status- und Fehleranzeigen

Tabelle 3-152: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 Keine Fehler -

1 16#7000 Initialwert "onDefaultOutValue" aktiv

1 16#8200 OB am Eingang "callOB" ist nicht projektiert/ vorhanden.

Verschalten Sie an den Eingang "callOB" einen projektierten/ vorhandenen Weckalarm-OB.

1 16#8201 Negative Änderungsrate. Parameter für die Änderungsrate darf nicht negativ sein.

2 - Fehler/Status von unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.

Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Die Rampe ist eine Begrenzungsgerade und bezieht sich auf eine Änderungsrate pro Sekunde; wird zum Beispiel "setRateLim = 10.0" parametriert, so wird bei einer Abtastzeit von 1s/100ms/10ms bei jedem Bausteinaufruf, wenn "inputValue > outputValue" ist, 10.0/1.0/0.1 zu "outputValue" addiert, bis "inputValue" erreicht ist.

Die Begrenzung der Änderungsrate ist sowohl im positiven als auch negativen Wertebereich für den Anstieg und den Abfall gültig.

Der Ausgang "outputValue" kann vorbeleget bzw. initialisiert werden.

Der Zeittakt des aufrufen Weckalarm-OBs wird ermittelt, in dem am Eingangsparameter "callOB" der aufrufende Weckalarm-OB verschaltet wird.

Abbildung 3-83: Weckalarm-OB verschalten

Ausgang vorbelegen

Wenn "onDefaultOutValue = TRUE" gesetzt ist, wird am Ausgang "defaultOutValue" ausgegeben; bei Änderung von TRUE nach FALSE wird "outputValue" von "defaultOutValue" nach "inputValue" rampenförmig gefahren. Beim Wechsel von FALSE nach TRUE springt Ausgang "outputValue" sofort zu "defaultOutValue".

Page 112: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 112

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsverläufe

Abbildung 3-84: Rampenfunktionsverlauf

defaultOutValue

t

outputValue

inputValue (t)

onDefaultOutValue

Page 113: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 113

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.8.2 FB LGF_LimRateOfChangeAdvanced

Kurzbeschreibung

Der Baustein LGF_LimRateOfChangeAdvanced begrenzt die Änderungsgeschwindigkeit einer Eingangsgröße. Aus Sprungfunktionen werden Rampenfunktionen. Zusätzlich verfügt der Baustein über verschiedene Betriebsarten.

Baustein

Abbildung 3-85: FB LGF_LimRateOfChangeAdvanced

FB LGF_LimRateOfChangeAdvanced

REAL inputValue outputValue REAL

REAL setPosUpRateLim posUpRateLim BOOL

REAL setPosDownRateLim posDownRateLim BOOL

REAL setNegUpRateLim negUpRateLim BOOL

REAL setNegDownRateLim negDownRateLim BOOL

REAL setHighLim highLim BOOL

REAL setLowLim lowLim BOOL

REAL processValue error BOOL

REAL defaultOutValue statusID UINT

BOOL onDefaultOutValue status WORD

BOOL track

BOOL manOp

BOOL reset

OB_CYCLIC callOB

Eingangsparameter

Tabelle 3-153: Eingangsparameter

Parameter Datentyp Beschreibung

inputValue REAL Eingangsgröße (Sprungfunktion)

setPosUpRateLim REAL Änderungsrate pro Sekunde für die steigende Rampe im positiven Wertebereich

setPosDownRateLim REAL Änderungsrate pro Sekunde für die fallende Rampe im positiven Wertebereich

setNegUpRateLim REAL Änderungsrate pro Sekunde für die steigende Rampe im negativen Wertebereich

setNegDownRateLim REAL Änderungsrate pro Sekunde für die fallende Rampe im negativen Wertebereich

setHighLim REAL Obere Begrenzung

setLowLim REAL Untere Begrenzung

processValue REAL Regelgröße

defaultOutValue REAL Wert für die Vorbelegung der Ausgangsgröße

onDefaultOutValue BOOL Ausgangsgröße vorbelegen

track BOOL Eingangsgröße durchschalten (Nachführen)

Page 114: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 114

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Parameter Datentyp Beschreibung

manOp BOOL Regelgröße durchschalten

reset BOOL Neustart

callOB OB_CYCLIC Aufrufender Weckalarm-OB

Ausgangsparameter

Tabelle 3-154: Ausgangsparameter

Parameter Datentyp Beschreibung

outputValue REAL Ausgangsgröße

posUpRateLim BOOL Anstiegsbegrenzung im positiven Bereich angesprochen

posDownRateLim BOOL Abstiegsbegrenzung im positiven Bereich angesprochen

negUpRateLim BOOL Anstiegsbegrenzung im negativen Bereich angesprochen

negDownRateLim BOOL Abstiegsbegrenzung im negativen Bereich angesprochen

highLim BOOL Obere Begrenzung angesprochen

lowLim BOOL Untere Begrenzung angesprochen

error BOOL

0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus

statusID UINT "statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle

status WORD "status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle)

Page 115: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 115

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Status- und Fehleranzeigen

Tabelle 3-155: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 Keine Fehler -

1 16#8200 OB am Eingang "callOB" ist nicht projektiert/ vorhanden.

Verschalten Sie an den Eingang "callOB" einen projektierten/ vorhandenen Weckalarm-OB.

1 16#8201 "setHighLim" < "setLowLim" Obere Begrenzung "setHighLim" muss größer sein als die untere Begrenzung "setLowLim".

1 16#8202 Negative Änderungsrate. Parameter für die Änderungsrate dürfen nur >= 0.0 sein

2 - Fehler/Status von unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.

Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Funktionsweise

Für den positiven/negativen Wertebereich sind je zwei Änderungsraten für die Rampe (steigende und fallende Werte) parametrierbar. Über Steuereingänge ist die Auswahl folgender Betriebsarten möglich:

Neustart

Ausgang vorbelegen

Normalbetrieb (Automatik)

Nachführen

Regelgröße durchschalten (Hand)

Die Ausgangsgröße kann durch zwei parametrierbare Grenzen begrenzt werden. Eine aktive Begrenzung der Änderungsrate einer Rampe sowie eine aktive Begrenzung der Ausgangsgröße werden über Ausgänge gemeldet.

Der Zeittakt des aufrufen Weckalarm-OBs wird ermittelt, in dem am Eingangsparameter "callOB" der aufrufende Weckalarm-OB verschaltet wird.

Abbildung 3-86: Weckalarm-OB verschalten

Page 116: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 116

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Neustart

Bei Neustart "reset = TRUE" wird der Ausgang "outputValue" auf 0.0 rückgesetzt. Wenn "onDefaultOutValue = TRUE" gesetzt ist, wird "defaultOutValue" ausgegeben. Alle Signalausgänge werden auf FALSE gesetzt.

Ausgang vorbelegen

Wenn "onDefaultOutValue = TRUE" gesetzt ist, wird am Ausgang "defaultOutValue" ausgegeben; bei Änderung von TRUE nach FALSE wird outputValue von "defaultOutValue" nach "inputValue" rampenförmig gefahren. Beim Wechsel von FALSE nach TRUE springt Ausgang "outputValue" sofort zu "defaultOutValue".

Normalbetrieb

Die Rampen sind Begrenzungsgeraden und beziehen sich auf eine Änderungsrate pro Sekunde; wird zum Beispiel "setPosUpRateLim = 10.0" parametriert, so wird bei einer Abtastzeit von 1s/100ms/10ms bei jedem Bausteinaufruf, wenn "inputValue > outputValue" ist, 10.0/1.0/0.1 zu "outputValue" addiert, bis "inputValue" erreicht ist.

Die Begrenzung der Änderungsrate ist jeweils in positivem und negativem Wertebereich für den Anstieg und den Abfall parametrierbar.

Tabelle 3-156: Kennzeichnung der Rampen

Parameter Rampe

setPosUpRateLim outputValue > 0 und |outputValue| steigend

setPosDownRateLim outputValue > 0 und |outputValue| fallend

setNegUpRateLim outputValue < 0 und |outputValue| steigend

setNegDownRateLim outputValue < 0 und |outputValue| fallend

Wenn keine Parametrierung der Rampen vorgenommen wird ("setPosUpRateLim", "setPosDownRateLim", "setNegUpRateLim" und "setNegDownRateLim" gleich 0.0), bleibt der Ausgang auf dem Wert 0.0 und der Normalbetrieb ist außer Funktion.

Nachführen

Ist der Eingang "track = TRUE" gesetzt, wird die Eingangsgröße inputValue direkt zur Ausgangsgröße outputValue durchgeschaltet. Somit werden auch Sprünge der Eingangsgröße ausgegeben.

Regelgröße durchschalten

Wenn "manOp = TRUE" gesetzt ist, wird die Regelgröße "processValue" direkt auf die Ausgangsgröße "outputValue" durchgeschaltet.

In dieser Betriebsart sind die Parametrierung der Rampen bzw. der oberen/unteren Begrenzung der Ausgangsgröße und die Vorbelegung des Ausgangs unwirksam.

Beim Wechsel von TRUE nach FALSE, wird der Ausgang "outputValue" nach "inputValue" wieder rampenförmig gefahren.

Sobald der Werteabschnitt zwischen der unteren und oberen Begrenzung erreicht ist, wird die obere und untere Begrenzung wieder aktiviert.

Page 117: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 117

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Funktionsverläufe

Abbildung 3-87: Rampenfunktionsverlauf, Betriebsarten

setHighLiminputValue (t)

setLowLim

processValue (t)

t

outputValue

defaultOutValue

highLim

posNegRateLim

lowLim

posUpRateLim

negDownRateLim

negUpRateLim

manOp

track

onDefaultOutValue

Page 118: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 118

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.8.3 FB LGF_Ramp

Kurzbeschreibung

Dieser Baustein generiert eine Fahrkurve anhand einer Stützpunkttabelle. Zwischen den Punkten wird innerhalb der vorgegebenen Zeit linear interpoliert.

Baustein

Tabelle 3-157: FB LGF_Ramp

FB LGF_Ramp

REAL defaultOutValue outputValue REAL

INT contStepNbr actTimeTable BOOL

TIME contStepTime stepNumber INT

BOOL onDefaultOutValue remainTime TIME

BOOL start totalTime TIME

BOOL hold remainTotalTime TIME

BOOL continue error BOOL

BOOL cyclicOP statusID UINT

BOOL updateTime status WORD

BOOL reset

OB_CYCLIC callOB

ARRY of "typeTimeTable" setpoints

Eingangsparameter

Tabelle 3-158: Eingangsparameter

Parameter Datentyp Beschreibung

defaultOutValue REAL Wert für die Vorbelegung der Ausgangsgröße

contStepNbr INT Nummer des nächsten Stützpunktes zum Weitermachen

contStepTime

TIME Restzeit zum Weitermachen bis zum Stützpunkt "contStepNbr"

onDefaultOutValue BOOL Ausgangsgröße mit "defaultOutValue" vorbelegen

start BOOL Stützpunkttabelle abfahren

hold BOOL Aktuellen Wert am Ausgang halten

continue BOOL Weitermachen

cyclicOP BOOL Stützpunkttabelle zyklisch wiederholen

updateTime BOOL Zeitwerte aktualisieren

reset BOOL Neustart

callOB OB_CYCLIC Aufrufender Weckalarm-OB

setpoints

ARRY of "typeTimeTable"

Stützpunkttabelle. Informationen zum Datentyp "typeTimeTable" finden Sie unter Punkt "Globale Daten" .

Page 119: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 119

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-159: Ausgangsparameter

Parameter Datentyp Beschreibung

outputValue REAL Ausgangsgröße

actTimeTable BOOL Stützpunkttabelle wird bearbeitet.

stepNumber

INT

aktuelle Stützpunktnummer (Stützpunkt, der angefahren wird)

remainTime TIME Restzeit bis Erreichen des nächsten Stützpunktes

totalTime TIME Gesamtzeit

remainTotalTime TIME Gesamtrestzeit

error

BOOL

0: keine Fehler

1: Fehler im Baustein, "statusID" gibt die Fehlerquelle aus, "status" gibt den Fehlercode aus.

statusID

UINT

"statusID" gibt die ID des Bausteins aus, der den Status meldet. Siehe folgende Tabelle.

status

WORD

"status" gibt den Status/Fehler-Code aus (siehe folgende Tabelle).

Status- und Fehleranzeigen

Tabelle 3-160: Status/Fehlercodes

statusID status Bedeutung Abhilfe / Hinweise

1 16#0000 keine Fehler Auftrag abgeschlossen.

1 16#7000 Initialwert Neustart wurde durchgeführt.

1 16#7001 erster Aufruf Steigende Flanke "start".

1 16#7002 Folgeaufruf Eingang "cyclicOP" gesetzt.

1 16#8200 OB am Eingang "callOB" ist nicht projektiert/ vorhanden.

Verschalten Sie an den Eingang "callOB" einen projektierten/ vorhandenen Weckalarm-OB.

1 16#8201 Untere Arraygrenze <> 0 Das Array mit den Stützpunkten muss mit dem Index 0 beginnen.

2 - Fehler/Status von unterlagerten Funktion "QRY_CINT" beim Abfragen der Weckalarm-Parameter.

Mögliche Ursache: OB am Eingang "callOB" ist vom falschen Typ.

Hinweis Falls "statusID" > 1 ist, stammen alle Werte des Ausgangs "status" direkt von aufgerufenen Anweisungen (siehe Tabelle Ausgangsparameter). Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Globale Daten

Zusammen mit dem Baustein erhalten Sie automatisch den PLC Datentyp "typeTimeTable", welcher sich aus den Parametern "outVal" für den Wert eines Stützpunktes und "time" für die Zeit bis zum Erreichen des nächsten Stützpunktes zusammensetzt. Die Deklaration erfolgt in einem eindimensionalen Array vom Datentyp "typeTimeTable" beginnend mit dem Index 0. Das Array wird in einem

Page 120: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 120

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

globalen Datenbaustein angelegt und dann an den Baustein "LGF_Ramp" übergeben.

Abbildung 3-88: Beispiel für die Deklaration der Stützpunkte

Der Parameter "time" des letzten Stützpunktes muss mit 0s parametriert werden, da kein Nachfolgestützpunkt mehr vorhanden ist.

Funktionsweise

Mit dem Baustein lassen sich anhand parametrierter Stützpunkte Fahrkurven ausführen; in jedem Aufrufzyklus werden Werte nach einem Zeitplan ausgegeben, wobei zwischen den Stützpunkten interpoliert wird.

In jedem Zyklus werden die aktuell angefahrene Stützpunktnummer "stepNumber", die aktuelle Restzeit "remainTime" bis zum Erreichen des Stützpunktes, die Gesamtzeit "totalTime" und die Gesamtrestzeit bis zum Erreichen des Fahrkurvenendes "remainTotalTime" ausgegeben. Desweitern wird der Ausgang "actTimeTable" gesetzt, wenn gerade die projektierte Fahrkurve ausgegeben wird.

Der Zeittakt des aufrufen Weckalarm-OBs wird ermittelt, indem am Eingangsparameter "callOB" der aufrufende Weckalarm-OB verschaltet wird.

Abbildung 3-89: Weckalarm-OB verschalten

Über Steuereingänge können folgende Betriebsarten ausgewählt werden:

Neustart

Ausgang vorbelegen

Fahrkurve ausgeben

Bearbeitung anhalten

Bearbeitungsschritt und –zeit vorgeben

Zyklischen Betrieb einschalten

Gesamtzeit und –restzeit aktualisieren

Page 121: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 121

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Überblick über die Betriebsarten

Tabelle 3-161: Überblick über die Betriebsarten

Betriebsart onDefaultOutValue

start hold continue cyclicOP updateTime reset Ausgang/Aktion

Neustart TRUE ↑ Baustein wird initialisiert.

Ausgang vorbelegen TRUE TRUE FALSE defaultOutValue

Fahrkurve ausgeben FALSE TRUE ↑ FALSE FALSE FALSE outputValue(t); Endwert wird nach Bearbeitung gehalten

Fahrkurve anhalten FALSE TRUE TRUE FALSE FALSE aktueller Wert von outputValue(t) wird gehalten

Bearbeitungsschritt und –zeit vorgeben

FALSE TRUE TRUE TRUE ↑ FALSE outputValue (alt)

FALSE Weitermachen mit parametriertem Stützpunkt

Zyklischen Betrieb einschalten

FALSE TRUE FALSE TRUE FALSE outputValue(t); nach Ende automatischer Neustart

Gesamtzeit und –restzeit aktualisieren

TRUE ↑ FALSE Gesamtzeit und –restzeit werden aktualisiert.

Neustart

Mit einer steigenden Flanke am Eingang "reset" wird der Ausgang "outValue" auf 0.0 zurückgesetzt. Bei "onDefaultOutValue" = TRUE wird am Ausgang "defaultOutValue" ausgegeben. Die Gesamtzeit und Gesamtrestzeit wird aktualisiert und am Ausgang ausgegeben.

Ausgang vorbelegen

Soll die Fahrkurve mit einem bestimmten Ausgangswert beginnen, dann muss "onDefaultOutValue" = TRUE sein. In diesem Fall steht am Ausgang des Zeitplangebers der Wert "defaultOutValue" an. Die interne Abarbeitung der Fahrkurve läuft in dieser Zeit weiter. Wechselt "onDefaultOutValue" wieder auf FALSE, so wird zum aktuell aktiven Stützpunkt interpoliert.

Fahrkurve ausgeben

Mit einer steigenden Flanke am Eingangs "start" wird die Fahrkurve ausgegeben - solange "start" TRUE ist oder bis die Fahrkurve durch das Erreichen des letzten Stützpunktes beendet wurde. Durch eine erneute steigende Flanke, wird die Fahrkurve nochmals ausgegeben. Zusätzlich wird bei jedem Einschalten die Gesamtzeit aktualisiert.

Zyklischen Betrieb einschalten

Wird zusätzlich zum Eingang "start" auch der Eingang "cyclicOP" auf TRUE gesetzt, kehrt die Fahrkurve nach Ausgabe des letzten Stützpunktwertes automatisch zum Startpunkt zurück und beginnt einen neuen Durchlauf.

Zwischen dem letzten Stützpunktwert und dem Startpunkt wird nicht interpoliert. Für einen stoßfreien Übergang muss gelten: letzter Stützpunktwert = Startpunkt.

Fahrkurve anhalten

Mit "hold" = TRUE wird der Wert der Ausgangsgröße (inkl. der Zeitbearbeitung) eingefroren. Bei Rücksetzen "hold" = FALSE wird an der Unterbrechungsstelle bzw. an einer parametrierten Stelle (Siehe "Bearbeitungsschritt und –zeit

Page 122: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 122

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

vorgeben) fortgefahren. Die Bearbeitungszeit der Fahrkurve verlängert sich um die Haltezeit "T1*" (sieheAbbildung 3-90).

Bearbeitungsschritt und –zeit vorgeben

Wird während dem Anhalten der Fahrkurve ("hold" = TRUE) der Eingangsparameter "continue" für das Fortsetzen auf TRUE gesetzt, dann wird nach dem Zurücksetzen des Eingangs "hold" die Stützpunktnummer "contStepNbr" (Zielstützpunkt) innerhalb der Zeit "contStepTime" angefahren (Interpolation). Die Gesamtrestzeit wird neu berechnet.

Gesamtzeit und Gesamtrestzeit aktualisieren

Bei Änderungen von Werten der Stützpunkte können sich die Gesamtzeit und die Gesamtrestzeit der Fahrkurve ändern. Da die Berechnung von "totalTime" und "remainTotalTime" bei vielen Stützpunkten die Bearbeitungszeit des Funktionsbausteins stark vergrößern kann, wird sie nur einmal bei einer steigenden Flanke am Eingang "updateTime" durchgeführt.

Funktionsverläufe

Abbildung 3-90: Funktionsverläufe

5*

t

outputValue

defaultOutValue

actTimeTable

onDafaultOutValue

start

hold

continue

0

1 2

3 4/ 4* = contStepNbr

5 6 6*

T* = contStepTime

T1*

T1*

projektierte Kurveaktuelle Kurve

* aktuelle Werte

setpoints[…].time 0 1 2 3 4 5

setpoints[…].outVal

4 + T1* 5

Page 123: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 123

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

3.8.4 FB LGF_NonLin

Kurzbeschreibung

Dieser Baustein realisiert eine Kennlinie. Die Kennlinie wird über eine Stützpunkt-tabelle mit linearer Interpolation zwischen den Stützpunkten vorgegeben. Ein vor-gegebener Eingangswert generiert in jedem Zyklus anhand der Kennlinie aus der Stützpunkttabelle einen Ausgangswert.

Baustein

Abbildung 3-91: FB LGF_NonLin

FB LGF_NonLin

REAL inputValue outputValue REAL

REAL defaultOutValue

BOOL onDefaultOutValue

BOOL track

BOOL reset

LGF_type

NonLinSetpoints setpoints

Eingangsparameter

Tabelle 3-162: Eingangsparameter

Parameter Datentyp Beschreibung

inputValue REAL Eingangswert zur Berechnung des Ausgangswerts über die definierte Kennlinie.

defaultOutValue REAL Standard-Ausgangswert ohne Nutzung der Kennlinie

onDefaultOutValue BOOL Aktivierung des Standard-Ausgangswerts Der Standard-Ausgangswert wird solange ausgegeben, solange dieser Eingang gesetzt ist.

track BOOL Der Wert des Ausgangs "outputValue" wird dem Wert des Eingangs "inputValue" ohne Nutzung der Kennlinie nachgeführt, solange dieser Eingang gesetzt ist.

reset BOOL Falls im laufenden Betrieb die Stützpunkttabelle verändert wird, muss anschließend den Eingang "reset" betätigt werden. Sonst kann der Baustein die korrekte Ausführung nicht gewährleisten.

Ein-/Ausgangsparameter (InOut)

Tabelle 3-163: Ein-/Ausgangsparameter (InOut)

Parameter Datentyp Beschreibung

setpoints LGF_typeNonLinSetpoints Stützpunkttabelle zur Definition der Kennlinie

Page 124: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 124

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Ausgangsparameter

Tabelle 3-164: Ausgangsparameter

Parameter Datentyp Beschreibung

outputValue REAL Der Ausgangswert, der anhand des Eingangswerts über die definierte Kennlinie berechnet wurde.

Funktionsweise

Der Wert des Ausgangs "outputValue" wird anhand folgender Priorität ausgegeben:

1. Solange der Eingang "onDefaultOutValue" gesetzt ist, wird der über den Parameter "defaultOutValue" definierte Wert als Ausgangswert ausgegeben.

2. Solange der Eingang "reset" gesetzt ist, wird der Baustein zurückgesetzt und als Ausgangswert wird der Wert 0.0 ausgegeben.

3. Solange der Eingang "track" gesetzt ist, wird als Ausgangswert direkt der Eingangswert ohne Berücksichtigung der Kennlinie ausgegeben.

4. Anhand des Eingangswerts wird über die linear interpolierte Stützpunkttabelle ein Kennlinienwert berechnet und als Ausgangswert ausgegeben.

– Befindet sich der Eingangswert zwischen zwei Stützpunkten innerhalb der Stützpunkttabelle, wird der Ausgangswert als Schnittpunkt mit der Verbindungsgeraden zwischen dem vorhergehenden und nachfolgenden Stützpunkt berechnet (siehe Abbildung 3-92).

– Befindet sich der Eingangswert vor dem ersten Stützpunkt (geringster Wert der in der Stützpunkttabelle definiert wurde), wird der Ausgangswert als Schnittpunkt der Geraden berechnet, die aus den ersten beiden Stützpunkten der Stützpunkttabelle gebildet wird.

– Befindet sich der Eingangswert hinter dem letzten Stützpunkt (höchster Wert der in der Stützpunkttabelle definiert wurde), wird der Ausgangswert als Schnittpunkt der Geraden berechnet, die aus den letzten beiden Stützpunkten der Stützpunkttabelle gebildet wird.

Abbildung 3-92: Beispielhafter Verlauf des Ausgangssignals

Eingangssignal

Ausgangssignal

Page 125: Library of General Functions (LGF) für S7-1200/1500

3 Erläuterung der Bausteine

3.8 Technology operations

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 125

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

ACHTUNG Um die Rechenzeit des Bausteins möglichst gering zu halten, wird keine Überprüfung der Parametrierung oder der Daten der Stützpunkttabelle vorgenommen.

Beim Eintragen der Stützpunkte in die Stützpunkttabelle muss auf folgende Besonderheiten geachtet werden. Andernfalls kann es zu einem Fehlverhalten des Bausteins führen.

In der Stützpunkttabelle müssen mindestens zwei Stützpunkte eingetragen sein.

Die Stützpunkte in der Stützpunkttabelle müssen in aufsteigender Reihenfolge der Eingangswerte in der Tabelle eingetragen sein.

Stützpunkttabelle

Die Stützpunkttabelle wird durch eine Variable vom Datentyp Array realisiert. Der Typ des Arrays entspricht dem PLC-Datentyp "LGF_typeNonLinSetpoint".

Die Stützpunkttabelle können Sie in einem beliebigen globalen Datenbaustein anlegen. Die Größe des Arrays ist von der Anzahl der Stützpunkte abhängig.

Beispiel

Abbildung 3-93: Exemplarischer Datenbaustein

3.8.5 Regeln von simulierten Regelstrecken

In dem Beitrag "Regeln von simulierten Regelstrecken" erhalten Sie die Baustein-bibliothek "LSim" zur Simulation von Regelstrecken für die Steuerungsfamilien SIMATIC S7-1200 und S7-1500.

https://support.industry.siemens.com/cs/ww/de/view/79047707

Page 126: Library of General Functions (LGF) für S7-1200/1500

4 Literaturhinweise

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 126

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

4 Literaturhinweise

Tabelle 4-1: Literaturhinweise

Themengebiet

\1\ Siemens Industry Online Support

http://support.automation.siemens.com

\2\ Downloadseite des Beitrages

https://support.industry.siemens.com/cs/ww/de/view/109479728

\3\ Programmierleitfaden und Programmierstyleguide

https://support.industry.siemens.com/cs/ww/de/view/81318674

\4\ Bibliothek mit PLC-Datentypen (LPD) für STEP 7 (TIA Portal) und S7-1200 / S7-1500

https://support.industry.siemens.com/cs/ww/de/view/109482396

\5\ Leitfaden zur Bibliothekshandhabung

https://support.industry.siemens.com/cs/ww/de/view/109747503

\6\ Themenseite Bibliotheken

https://support.industry.siemens.com/cs/ww/de/view/109738702

Page 127: Library of General Functions (LGF) für S7-1200/1500

5 Historie

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 127

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

5 Historie

5.1 Versionierung der Bibliothek

Die Bibliothek und Bibliothekselemente werden gemäß folgender Tabelle gepflegt:

Tabelle 5-1: Definition der Version

V 1. 2. 3

Nichtkompatible Änderung

Kompatible Änderung

Fehlerkorrektur

Reduzierung der Schnittstellen

Ändern der Schnittstellen

Inkompatible Erweiterung der Funktionalität

Erweiterung der Schnittstellen

Kompatible Erweiterung der Funktionalität

Bugfix

Upgrade auf neue TIA Portal Version

Beispiel zu Versionierung

Tabelle 5-2: Beispiel für Änderung der Version

Bibliothek FB1 FB2 FC1 FC2 Kommentar

1.0.0 1.0.0 1.0.0 1.0.0 - freigegeben

1.0.1 1.0.1 1.0.0 1.0.0 - Fehlerbehebung von FB1

1.0.2 1.0.1 1.0.1 1.0.0 - Optimierung von FB2

1.1.0 1.1.0 1.0.1 1.0.0 - Erweiterung an FB1

1.2.0 1.2.0 1.0.1 1.0.0 - Erweiterung an FB1

2.0.0 2.0.0 1.0.1 2.0.0 - neue Funktionalität an FB1 und FC1

2.0.1 2.0.0 1.0.2 2.0.0 - Fehlerbehebung FB2

3.0.0 2.0.0 1.0.2 2.0.0 1.0.0 Neue Funktion FC2

3.0.1 2.0.1 1.0.3 2.0.1 1.0.1 Upgrade auf neue TIA Portal Version

3.0.2 2.0.2 1.0.4 2.0.2 1.0.0 Neue Funktionen, Fehlerbehebungen

Page 128: Library of General Functions (LGF) für S7-1200/1500

5 Historie

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 128

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

5.2 Änderungsprotokoll

Tabelle 5-3 : Änderungsprotokoll

Version Datum Änderung

V1.0.0 09/2015 Erste Ausgabe

V1.0.1 10/2015 LGF_Astro V1.0.1

T_ADD Anweisung wurde durch "+” ersetzt.

V1.0.2 10/2015 LGF_BinaryToGray V1.0.1

Name geändert

LGF_GrayToBinary V1.0.1

Name geändert

V1.0.3 11/2015 LGF_CompareVariant V1.0.1

Fehlerkorrektur

V1.0.4 11/2015 LGF_SawTooth V1.0.1

Fehlerkorrektur

V1.0.5 11/2015 LGF_Astro V1.0.2

Fehlerkorrektur

LGF_AverageAndDeviation V1.0.1

Fehlerkorrektur

LGF_TimerSwitch V1.0.1

Fehlerkorrektur

LGF_FIFO V1.0.1

Fehlerkorrektur

V2.0 07/2016 Neu:

Kapitel 1.3 Bibliotheksressourcen

FB LGF_PulseRelay V1.0.0

FB LGF_SetTime V1.0.0

FB LGF_FloatingAverage V1.0.0

FC LGF_DTLtoString V1.0.0

FC LGF_StringToDTL V1.0.0

FB LGF_LimRateOfChangeBasic V1.0.0

FB LGF_LimRateOfChangeAdvanced V1.0.0

Überarbeitet:

LGF_Astro V1.1.1

Ausgang systemTime und localTime hinzugefügt

FB LGF_TimerSwitch V1.1.0

Zwei neue Modi: Werktag, Wochenende

FB LGF_ShallSort… V1.1.0

Neuer Mode: Absteigend Sortieren

FB LGF_Frequency V1.1.0

Neue Funktion: Puls-Pause-Verhältnis einstellbar

FB LGF_Impulse V1.1.0

Ruft neuen LGF_Frequency V1.1.0 auf.

V2.0.1 01/2017 Überarbeitet:

LGF_Astro V1.1.2

Fehlerkorrektur bei Sonnenauf- und Sonnenuntergangsberechnung.

V2.0.2 01/2017 Überarbeitet:

Alle Bausteine: Upgrade TIA V14

Page 129: Library of General Functions (LGF) für S7-1200/1500

5 Historie

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 129

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Version Datum Änderung

V3.0.0 03/2017 Neu:

FC LGF_CalendarDayWeekV1.0.0

FC LGF_CompareReal V1.0.0

FC LGF_RandomBasic V1.0.0

FC LGF_HighLowLimit V1.0.0

FC LGF_BitsToWord V1.0.0

FC LGF_WordToBits V1.0.0

FC LGF_ScaleLinear V1.0.0

FC LGF_StringToTaddr V1.0.0

FC LGF_TaddrToString V1.0.0

FB LGF_Ramp V1.0.0

FB LGF_NonLin V1.0.0

Überarbeitet:

Ergänzung im Kapitel 5.1 Versionierung der Bibliothek

FB LGF_PulseRelay V1.0.2

Kommentarkorrektur

FB LGF_Astro V1.1.4

Codeoptimierung

FB LGF_SetTime V1.0.2

Korrektur: FB Nummer: automatic

FB LGF_FloatingAverage V1.1.0

Codeoptimierung

Neuer Eingangsparameter "windowSize"

FC LGF_MatrixAddition V2.0.0

Codeoptimierung

Eingangsparameter geändert auf ARRAY*

FC LGF_MatrixInverse V2.0.0

Codeoptimierung

Eingangsparameter geändert auf ARRAY*

FC LGF_MatrixMultiplication V2.0.0

Codeoptimierung

Eingangsparameter geändert auf ARRAY*

FC LGF_MatrixSubtraction V2.0.0

Codeoptimierung

Eingangsparameter geändert auf ARRAY*

FC LGF_MatrixTranspose V2.0.0

Codeoptimierung

Eingangsparameter geändert auf ARRAY*

FB LGF_Impulse V1.2.0

Codeoptimierung: kein Aufruf von LGF_Frequency mehr

V3.0.1 05/2017 Überarbeitet:

FB LGF_Ramp V1.0.1

Kommentarkorrektur

V4.0.0 09/2018 Neu:

FC LGF_GermanHoliday V1.0.0 FC LGF_Factorial V1.0.0 FC LGF_Distance V1.0.0 FB LGF_LIFO V1.0.0 FC LGF_CRC8 V1.0.0

Page 130: Library of General Functions (LGF) für S7-1200/1500

5 Historie

Library of General Functions (LGF) Beitrags-ID: 109479728, V4.0.2, 10/2018 130

S

iem

en

s A

G 2

01

8 A

ll ri

gh

ts r

ese

rve

d

Version Datum Änderung

FC LGF_CRC8For1Byte V1.0.0 FC LGF_CRC16 V1.0.0 FC LGF_CRC32 V1.0.0 FC LGF_IntToString V1.0.0 FC LGF_TimeToString V1.0.0 FB LGF_SawToothCI V1.0.0 FB LGF_TriangleCI V1.0.0 FB LGF_RectangleCI V1.0.0 FB LGF_SinusCI V1.0.0 FB LGF_CosinusCI V1.0.0

Überarbeitet:

Ergänzung von Kapitel 2.2 Simulierbarkeit mit SIMATIC S7-PLCSIM Advanced (NEU)

FB LGF_Astro V1.1.5

Codeoptimierung

FB LGF_TimerSwitch V1.1.2

Codeoptimierung

V4.0.1 09/2018 Überarbeitet:

Alle Bausteine: Upgrade TIA V15

V4.0.2 10/2018 FB LGF_TimerSwitch V1.1.4

Verbindung zum Typ wiederhergestellt.