SoMachine EIO0000002413 11/2016 SoMachine SqlRemoteAccess Bibliothekshandbuch EIO0000002413.00 11/2016 www.schneider-electric.com Die Informationen in der vorliegenden Dokumentation enthalten allgemeine Beschreibungen und/oder technische Leistungsmerkmale der hier erwähnten Produkte. Diese Dokumentation dient keinesfalls als Ersatz für die Ermittlung der Eignung oder Verlässlichkeit dieser Produkte für bestimmte Verwendungsbereiche des Benutzers und darf nicht zu diesem Zweck verwendet werden. Jeder Benutzer oder Integrator ist verpflichtet, angemessene und vollständige Risikoanalysen, Bewertungen und Tests der Produkte im Hinblick auf deren jeweils spezifischen Verwendungszweck vorzunehmen. Weder Schneider Electric noch deren Tochtergesellschaften oder verbundene Unternehmen sind für einen Missbrauch der Informationen in der vorliegenden Dokumentation verantwortlich oder können diesbezüglich haftbar gemacht werden. Verbesserungs- und Änderungsvorschlage sowie Hinweise auf angetroffene Fehler werden jederzeit gern entgegengenommen. Dieses Dokument darf ohne entsprechende vorhergehende, ausdrückliche und schriftliche Genehmigung durch Schneider Electric weder in Teilen noch als Ganzes in keiner Form und auf keine Weise, weder anhand elektronischer noch mechanischer Hilfsmittel, reproduziert oder fotokopiert werden. Bei der Montage und Verwendung dieses Produkts sind alle zutreffenden staatlichen, landesspezifischen, regionalen und lokalen Sicherheitsbestimmungen zu beachten. Aus Sicherheitsgründen und um die Übereinstimmung mit dokumentierten Systemdaten besser zu gewährleisten, sollten Reparaturen an Komponenten nur vom Hersteller vorgenommen werden. Beim Einsatz von Geräten für Anwendungen mit technischen Sicherheitsanforderungen sind die relevanten Anweisungen zu beachten. Die Verwendung anderer Software als der Schneider Electric-eigenen bzw. einer von Schneider Electric genehmigten Software in Verbindung mit den Hardwareprodukten von Schneider Electric kann Körperverletzung, Schäden oder einen fehlerhaften Betrieb zur Folge haben. Die Nichtbeachtung dieser Informationen kann Verletzungen oder Materialschäden zur Folge haben! © 2016 Schneider Electric. Alle Rechte vorbehalten. 2 EIO0000002413 11/2016 Inhaltsverzeichnis Sicherheitshinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . Über dieses Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teil I Allgemeine Informationen . . . . . . . . . . . . . . . . . . . . . Kapitel 1 Spezifische Sicherheitshinweise. . . . . . . . . . . . . . . . . . . Qualifiziertes Fachpersonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sachgerechte Verwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produktinformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 2 Beschreibung der Bibliothek . . . . . . . . . . . . . . . . . . . . . . Allgemeine Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 3 Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen SoMachine und einer beliebigen Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funktionsprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teil II Enumerationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 4 Enumerationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 5 Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_ConnectionSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 6 ALIAS (DUT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALIAS - Device Unit Types (DUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teil III Globale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 7 Liste der globalen Konstanten . . . . . . . . . . . . . . . . . . . . Liste globaler Konstanten (LGK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 8 Liste der globalen Parameter . . . . . . . . . . . . . . . . . . . . . Globale Parameterliste (GPL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teil IV Programmorganisationseinheiten (POU) . . . . . . . . . Kapitel 9 Funktionsbausteine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SqlDbRead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SqlDbWrite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 10 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anhang EIO0000002413 11/2016 ......................................... 5 9 11 13 14 14 15 19 19 23 23 27 29 29 33 33 35 35 37 39 39 41 41 43 45 46 49 53 53 55 3 Anhang A Darstellung von Funktionen und Funktionsbausteinen . . Unterschiede zwischen einer Funktion und einem Funktionsbaustein Verwenden einer Funktion oder eines Funktionsbausteins in der Sprache AWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden einer Funktion oder eines Funktionsbausteins in der Sprache ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 57 58 59 63 65 69 EIO0000002413 11/2016 Sicherheitshinweise Wichtige Informationen HINWEISE Lesen Sie sich diese Anweisungen sorgfältig durch und machen Sie sich vor Installation, Betrieb, Bedienung und Wartung mit dem Gerät vertraut. Die nachstehend aufgeführten Warnhinweise sind in der gesamten Dokumentation sowie auf dem Gerät selbst zu finden und weisen auf potenzielle Risiken und Gefahren oder bestimmte Informationen hin, die eine Vorgehensweise verdeutlichen oder vereinfachen. EIO0000002413 11/2016 5 BITTE BEACHTEN Elektrische Geräte dürfen nur von Fachpersonal installiert, betrieben, bedient und gewartet werden. Schneider Electric haftet nicht für Schäden, die durch die Verwendung dieses Materials entstehen. Als qualifiziertes Fachpersonal gelten Mitarbeiter, die über Fähigkeiten und Kenntnisse hinsichtlich der Konstruktion und des Betriebs elektrischer Geräte und deren Installation verfügen und eine Schulung zur Erkennung und Vermeidung möglicher Gefahren absolviert haben. BEVOR SIE BEGINNEN Dieses Produkt nicht mit Maschinen ohne effektive Sicherheitseinrichtungen im Arbeitsraum verwenden. Das Fehlen effektiver Sicherheitseinrichtungen im Arbeitsraum einer Maschine kann schwere Verletzungen des Bedienpersonals zur Folge haben. WARNUNG UNBEAUFSICHTIGTE GERÄTE Diese Software und zugehörige Automatisierungsgeräte nicht an Maschinen verwenden, die nicht über Sicherheitseinrichtungen im Arbeitsraum verfügen. Greifen Sie bei laufendem Betrieb nicht in das Gerät. Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. Dieses Automatisierungsgerät und die zugehörige Software dienen zur Steuerung verschiedener industrieller Prozesse. Der Typ bzw. das Modell des für die jeweilige Anwendung geeigneten Automatisierungsgeräts ist von mehreren Faktoren abhängig, z. B. von der benötigten Steuerungsfunktion, der erforderlichen Schutzklasse, den Produktionsverfahren, außergewöhnlichen Bedingungen, behördlichen Vorschriften usw. Für einige Anwendungen werden möglicherweise mehrere Prozessoren benötigt, z. B. für ein Backup-/Redundanzsystem. Nur Sie als Benutzer, Maschinenbauer oder -integrator sind mit allen Bedingungen und Faktoren vertraut, die bei der Installation, der Einrichtung, dem Betrieb und der Wartung der Maschine bzw. des Prozesses zum Tragen kommen. Demzufolge sind allein Sie in der Lage, die Automatisierungskomponenten und zugehörigen Sicherheitsvorkehrungen und Verriegelungen zu identifizieren, die einen ordnungsgemäßen Betrieb gewährleisten. Bei der Auswahl der Automatisierungs- und Steuerungsgeräte sowie der zugehörigen Software für eine bestimmte Anwendung sind die einschlägigen örtlichen und landesspezifischen Richtlinien und Vorschriften zu beachten. Das National Safety Council's Accident Prevention Manual (Handbuch zur Unfallverhütung; in den USA landesweit anerkannt) enthält ebenfalls zahlreiche nützliche Hinweise. 6 EIO0000002413 11/2016 Für einige Anwendungen, z. B. Verpackungsmaschinen, sind zusätzliche Vorrichtungen zum Schutz des Bedienpersonals wie beispielsweise Sicherheitseinrichtungen im Arbeitsraum erforderlich. Diese Vorrichtungen werden benötigt, wenn das Bedienpersonal mit den Händen oder anderen Körperteilen in den Quetschbereich oder andere Gefahrenbereiche gelangen kann und somit einer potenziellen schweren Verletzungsgefahr ausgesetzt ist. Software-Produkte allein können das Bedienpersonal nicht vor Verletzungen schützen. Die Software kann daher nicht als Ersatz für Sicherheitseinrichtungen im Arbeitsraum verwendet werden. Vor Inbetriebnahme der Anlage sicherstellen, dass alle zum Schutz des Arbeitsraums vorgesehenen mechanischen/elektronischen Sicherheitseinrichtungen und Verriegelungen installiert und funktionsfähig sind. Alle zum Schutz des Arbeitsraums vorgesehenen Sicherheitseinrichtungen und Verriegelungen müssen mit dem zugehörigen Automatisierungsgerät und der Softwareprogrammierung koordiniert werden. HINWEIS: Die Koordinierung der zum Schutz des Arbeitsraums vorgesehenen mechanischen/elektronischen Sicherheitseinrichtungen und Verriegelungen geht über den Umfang der Funktionsbaustein-Bibliothek, des System-Benutzerhandbuchs oder andere in dieser Dokumentation genannten Implementierungen hinaus. START UND TEST Vor der Verwendung elektrischer Steuerungs- und Automatisierungsgeräte ist das System zur Überprüfung der einwandfreien Funktionsbereitschaft einem Anlauftest zu unterziehen. Dieser Test muss von qualifiziertem Personal durchgeführt werden. Um einen vollständigen und erfolgreichen Test zu gewährleisten, müssen die entsprechenden Vorkehrungen getroffen und genügend Zeit eingeplant werden. WARNUNG GEFAHR BEIM GERÄTEBETRIEB Überprüfen Sie, ob alle Installations- und Einrichtungsverfahren vollständig durchgeführt wurden. Vor der Durchführung von Funktionstests sämtliche Blöcke oder andere vorübergehende Transportsicherungen von den Anlagekomponenten entfernen. Entfernen Sie Werkzeuge, Messgeräte und Verschmutzungen vom Gerät. Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. Führen Sie alle in der Dokumentation des Geräts empfohlenen Anlauftests durch. Die gesamte Dokumentation zur späteren Verwendung aufbewahren. Softwaretests müssen sowohl in simulierten als auch in realen Umgebungen stattfinden. EIO0000002413 11/2016 7 Sicherstellen, dass in dem komplett installierten System keine Kurzschlüsse anliegen und nur solche Erdungen installiert sind, die den örtlichen Vorschriften entsprechen (z. B. gemäß dem National Electrical Code in den USA). Wenn Hochspannungsprüfungen erforderlich sind, beachten Sie die Empfehlungen in der Gerätedokumentation, um eine versehentliche Beschädigung zu verhindern. Vor dem Einschalten der Anlage: Entfernen Sie Werkzeuge, Messgeräte und Verschmutzungen vom Gerät. Schließen Sie die Gehäusetür des Geräts. Alle temporären Erdungen der eingehenden Stromleitungen entfernen. Führen Sie alle vom Hersteller empfohlenen Anlauftests durch. BETRIEB UND EINSTELLUNGEN Die folgenden Sicherheitshinweise sind der NEMA Standards Publication ICS 7.1-1995 entnommen (die Englische Version ist maßgebend): Ungeachtet der bei der Entwicklung und Fabrikation von Anlagen oder bei der Auswahl und Bemessung von Komponenten angewandten Sorgfalt, kann der unsachgemäße Betrieb solcher Anlagen Gefahren mit sich bringen. Gelegentlich kann es zu fehlerhaften Einstellungen kommen, die zu einem unbefriedigenden oder unsicheren Betrieb führen. Für Funktionseinstellungen stets die Herstelleranweisungen zu Rate ziehen. Das Personal, das Zugang zu diesen Einstellungen hat, muss mit den Anweisungen des Anlagenherstellers und den mit der elektrischen Anlage verwendeten Maschinen vertraut sein. Bediener sollten nur über Zugang zu den Einstellungen verfügen, die tatsächlich für ihre Arbeit erforderlich sind. Der Zugriff auf andere Steuerungsfunktionen sollte eingeschränkt sein, um unbefugte Änderungen der Betriebskenngrößen zu vermeiden. 8 EIO0000002413 11/2016 Über dieses Buch Auf einen Blick Ziel dieses Dokuments In diesem Dokument wird die SqlRemoteAccess-Bibliothek beschrieben. Die Bibliothek stellt SQL-Client-Funktionsbausteine (Structured Query Language) bereit, die der Steuerung den Aufbau einer Verbindung zu einer SQL-Datenbank für die Ausführung von SQLAbfragen zum Lesen und Schreiben von Daten ermöglichen. Voraussetzung für die Verwendung der SQL-Funktionen ist die Installation der SQL GatewayKomponenten, die im Lieferumfang von SoMachine als optionale Komponente bereitgestellt wird und die eine spezifische Lizenz erfordert. Die SqlRemoteAccess-Bibliothek verwendet Systemfunktionen und -ressourcen, die von spezifischen Steuerungsplattformen, verfügbar in SoMachine, unterstützt werden. Folgende Steuerungen werden unterstützt: Modicon M241 Logic Controller Modicon M251 Logic Controller Modicon M258 Logic Controller Modicon LMC058 Motion Controller Modicon LMC078 Motion Controller Gültigkeitsbereich Diese Dokumentation wurde für die SoMachine-Version V4.2 aktualisiert. Die technischen Merkmale der hier beschriebenen Geräte sind auch online abrufbar. So greifen Sie auf diese Informationen online zu: Schritt Aktion 1 Gehen Sie zur Homepage von Schneider Electric. www.schneider-electric.com. 2 Geben Sie im Feld Search die Referenz eines Produkts oder den Namen einer Produktreihe ein. Die Referenz bzw. der Name der Produktreihe darf keine Leerstellen enthalten. Wenn Sie nach Informationen zu verschiedenen vergleichbaren Modulen suchen, können Sie Sternchen (*) verwenden. 3 Wenn Sie eine Referenz eingegeben haben, gehen Sie zu den Suchergebnissen für technische Produktdatenblätter (Product Datasheets) und klicken Sie auf die Referenz, über die Sie mehr erfahren möchten. Wenn Sie den Namen einer Produktreihe eingegeben haben, gehen Sie zu den Suchergebnissen Product Ranges und klicken Sie auf die Reihe, über die Sie mehr erfahren möchten. EIO0000002413 11/2016 9 Schritt Aktion 4 Wenn mehrere Referenzen in den Suchergebnissen unter Products angezeigt werden, klicken Sie auf die gewünschte Referenz. 5 Je nach der Größe der Anzeige müssen Sie ggf. durch die technischen Daten scrollen, um sie vollständig einzusehen. 6 Um ein Datenblatt als PDF-Datei zu speichern oder zu drucken, klicken Sie auf Download XXX product datasheet. Die in diesem Handbuch vorgestellten Merkmale sollten denen entsprechen, die online angezeigt werden. Im Rahmen unserer Bemühungen um eine ständige Verbesserung werden Inhalte im Laufe der Zeit möglicherweise überarbeitet, um deren Verständlichkeit und Genauigkeit zu verbessern. Sollten Sie einen Unterschied zwischen den Informationen im Handbuch und denen online feststellen, nutzen Sie die Online-Informationen als Referenz. Weiterführende Dokumentation Dokumenttitel Bestellnummer SoMachine Benutzerhandbuch zu Funktionen und Bibliotheken EIO0000000735 (ENG); EIO0000000792 (FRE); EIO0000000793 (GER); EIO0000000795 (SPA); EIO0000000794 (ITA); EIO0000000796 (CHS) SoMachine – Programmierhandbuch EIO0000000067 (ENG); EIO0000000069 (FRE); EIO0000000068 (GER); EIO0000000071 (SPA); EIO0000000070 (ITA); EIO0000000072 (CHS) SQL Gateway – Benutzerhandbuch EIO0000002417 (ENG); EIO0000002418 (FRE); EIO0000002419 (GER); EIO0000002421 (SPA); EIO0000002420 (ITA); EIO0000002422 (CHS) Sie können diese technischen Veröffentlichungen sowie andere technische Informationen von unserer Website herunterladen: http://download.schneider-electric.com. 10 EIO0000002413 11/2016 SoMachine Allgemeine Informationen EIO0000002413 11/2016 Teil I Allgemeine Informationen Allgemeine Informationen Inhalt dieses Teils Dieser Teil enthält die folgenden Kapitel: Kapitel Kapitelname Seite 1 Spezifische Sicherheitshinweise 13 2 Beschreibung der Bibliothek 19 3 Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen SoMachine und einer beliebigen Datenbank 23 EIO0000002413 11/2016 11 Allgemeine Informationen 12 EIO0000002413 11/2016 SoMachine Spezifische Sicherheitshinweise EIO0000002413 11/2016 Kapitel 1 Spezifische Sicherheitshinweise Spezifische Sicherheitshinweise Übersicht Dieser Abschnitt enthält Informationen zur Arbeit mit der SqlRemoteAccess-Bibliothek. Das Personal, das mit der SqlRemoteAccess-Bibliothek arbeitet, muss sich diese Informationen unbedingt durchlesen und sich daran halten. Inhalt dieses Kapitels Dieses Kapitel enthält die folgenden Themen: Thema Seite Qualifiziertes Fachpersonal 14 Sachgerechte Verwendung 14 Produktinformationen 15 EIO0000002413 11/2016 13 Spezifische Sicherheitshinweise Qualifiziertes Fachpersonal Überblick Elektrische Geräte dürfen nur von Fachpersonal installiert, betrieben, bedient und gewartet werden. Schneider Electric haftet nicht für Schäden, die durch die Verwendung dieses Materials entstehen. Als qualifiziertes Fachpersonal gelten Mitarbeiter, die über Fähigkeiten und Kenntnisse in Bezug auf die Konstruktion und den Betrieb elektrischer Geräte im Allgemeinen und der betroffenen Anlage im Besonderen verfügen und eine sicherheitstechnische Schulung zur Erkennung und Vermeidung möglicher Gefahren absolviert haben. Das Fachpersonal muss in der Lage sein, potenzielle Gefahrenquellen in Verbindung mit der Parametrierung und Änderung von Parametern sowie allgemein in Verbindung mit mechanischen, elektrischen oder elektronischen Geräten zu erkennen. Alle relevanten Normen, Vorschriften und Regelungen zur industriellen Unfallverhütung müssen dem Fachpersonal bekannt sein und bei der Konzeption und Implementierung des Systems eingehalten werden. Sachgerechte Verwendung Überblick Bei diesem Produkt handelt es sich um eine Bibliothek, die für eine Verwendung in Verbindung mit Steuerungssystemen und Servoverstärkern ausschließlich zu den in der vorliegenden Dokumentation beschriebenen Zwecken gemäß der branchenüblichen Regelungen im Industriesektor vorgesehen ist. Dabei sind stets die geltenden sicherheitsbezogenen Anweisungen, die angegebenen Bedingungen und die technischen Kenndaten zu beachten. Führen Sie vor der Verwendung des Produkts eine Risikobeurteilung für den geplanten spezifischen Einsatz durch. Ergreifen Sie im Anschluss daran angemessene Sicherheitsmaßnahmen. Da das Produkt als Komponente eines globalen Systems zum Einsatz kommt, ist die Sicherheit des Personals durch eine angemessene Auslegung des Gesamtsystems sicherzustellen (z. B. durch die Konzeption der Maschine). Andere Verwendungszwecke sind nicht bestimmungsgemäß und können sich als gefährlich erweisen. Elektrische Geräte und Ausrüstungen dürfen nur von qualifiziertem Fachpersonal installiert, betrieben, gewartet und repariert werden. 14 EIO0000002413 11/2016 Spezifische Sicherheitshinweise Produktinformationen Produktinformationen WARNUNG STEUERUNGSAUSFALL Bei der Konzeption von Steuerungsstrategien müssen mögliche Störungen auf den Steuerpfaden berücksichtigt werden, und bei bestimmten kritischen Steuerungsfunktionen ist dafür zu sorgen, dass während und nach einem Pfadfehler ein sicherer Zustand erreicht wird. Beispiele kritischer Steuerungsfunktionen sind die Notabschaltung (Not-Aus) und der Nachlauf-Stopp, Stromausfall und Neustart. Für kritische Steuerungsfunktionen müssen separate oder redundante Steuerpfade bereitgestellt werden. Systemsteuerungspfade können Kommunikationsverbindungen umfassen. Dabei müssen die Auswirkungen unerwarteter Sendeverzögerungen und Verbindungsstörungen berücksichtigt werden. Sämtliche Unfallverhütungsvorschriften und lokale Sicherheitsrichtlinien sind zu beachten.1 Jede Implementierung des Geräts muss individuell und sorgfältig auf einen einwandfreien Betrieb geprüft werden, bevor das Gerät an Ort und Stelle in Betrieb gesetzt wird. Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. 1 Weitere Informationen finden Sie in den aktuellen Versionen von NEMA ICS 1.1 „Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control“ sowie von NEMA ICS 7.1, „Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems“ oder den entsprechenden, vor Ort geltenden Vorschriften. Bevor Sie unter Verwendung der POUs in der Bibliothek eine Lösung (Maschine oder Prozess) für eine spezifische Anwendung bereitstellen, sind relevante Best Practices zu prüfen, anzuwenden und zu vervollständigen. Hierzu gehören u. a. Risikoanalyse, Funktionssicherheit, Komponentenkompatibilität, Prüfung und Systemabnahme, sofern ein Bezug zur Bibliothek gegeben ist. EIO0000002413 11/2016 15 Spezifische Sicherheitshinweise WARNUNG UNSACHGEMÄSSE VERWENDUNG DER POUS Führen Sie für die betroffene Anwendung und die installierten Geräte eine sicherheitstechnische Analyse durch. Vergewissern Sie sich, dass die POUs mit dem Geräten in Ihrem System kompatibel sind und den ordnungsgemäßen Betrieb des Systems nicht auf unbeabsichtigte Weise beeinträchtigen. Verwenden Sie geeignete Parameter, insbesondere für die Grenzwerte, und kontrollieren Sie Abnutzung und Stoppverhalten der Maschine. Stellen Sie sicher, dass die Sensoren und Stellglieder mit den ausgewählten POUs kompatibel sind. Bei der Prüfung und Inbetriebnahme sind sämtliche Funktionen in allen Betriebsarten einem gründlichen Test zu unterziehen. Stellen Sie in Übereinstimmung mit der durchgeführten sicherheitstechnischen Analyse und allen geltenden Regeln und Vorschriften unabhängige Verfahren für kritische Steuerungsfunktionen bereit (Nothalt, Überschreitung der Grenzbedingungen usw.). Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. WARNUNG UNBEABSICHTIGTER GERÄTEBETRIEB Verwenden Sie mit diesem Gerät nur von Schneider Electric genehmigte Software. Aktualisieren Sie Ihr Anwendungsprogramm jedes Mal, wenn Sie die physische Hardwarekonfiguration ändern. Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. WARNUNG UNBEABSICHTIGTER GERÄTEBETRIEB Aktualisieren Sie bei einer Änderung der Hardwarekonfiguration Ihr Anwendungsprogramm entsprechend und achten Sie dabei insbesondere auf die Anpassung der E/A-Adressen. Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. 16 EIO0000002413 11/2016 Spezifische Sicherheitshinweise Unvollständige Dateiübertragungen, wie Datendateien, Applikationsdateien und/oder Firmwaredateien, können ernsthafte Folgen für Ihre Maschine oder Ihre Steuerung haben/ Wenn Sie während der Dateiübertragung den Strom abschalten oder ein Stromausfall oder eine Kommunikationsunterbrechung auftritt, kann Ihre Maschine nicht mehr operativ sein oder Ihre Applikation kann versuchen, mit beschädigten Dateidaten zu arbeiten. Sollte die Kommunikation unterbrochen werden, dann führen Sie die Übertragung erneut durch. Stellen Sie sicher, dass Sie den Effekt beschädigter Daten in Ihrer Risikoanalyse berücksichtigen. WARNUNG UNBEABSICHTIGTER GERÄTEBETRIEB, DATENVERLUST ODER DATEIBESCHÄDIGUNG Unterbrechen Sie eine laufende Datenübertragung nicht. Wenn die Übertragung aus einem beliebigen Grund unterbrochen wird, starten Sie sie erneut. Nehmen Sie Ihre Maschine nicht in Betrieb bis die Dateiübertragung erfolgreich abgeschlossen wurde, es sei denn, sie haben die beschädigten Daten in Ihre Risikoanalyse miteinbezogen und entsprechende Schritte eingeleitet, um mögliche ernste Folgen wegen einer nicht erfolgreichen Datenübertragung zu vermeiden. Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. EIO0000002413 11/2016 17 Spezifische Sicherheitshinweise 18 EIO0000002413 11/2016 SoMachine Beschreibung EIO0000002413 11/2016 Kapitel 2 Beschreibung der Bibliothek Beschreibung der Bibliothek Allgemeine Informationen Einführung Die Bibliothek SqlRemoteAccessstellt SQL-Client-Funktionsbausteine (Structured Query Language) bereit, die der Steuerung den Aufbau einer Verbindung zu einer SQL-Datenbank für die Ausführung von SQL-Abfragen zum Lesen und Schreiben von Daten ermöglichen. Die Kommunikation zwischen der Steuerung, die als SQL-Client fungiert, und dem SQLDatenbankserver erfolgt über das Schneider Electric-SQL Gateway. Aus diesem Grund müssen Sie vor Verwendung der SQL-Funktion die SQL Gateway-Komponente installieren, die im Lieferumfang von SoMachine als optionale Komponente bereitgestellt wird und eine spezifische Lizenz erfordert. Weitere Informationen finden Sie im SQL Gateway-Benutzerhandbuch (siehe Seite 10). 1 2 3 4 5 1...n Steuerungen (SQL-Clients) Daten lesen Daten schreiben SQL Gateway 1...n Datenbankserver Nach der erfolgreichen Installation kann die Steuerung eine bedarfsgerecht angepasste SQLAbfrage an den Datenbankserver senden, z. B.: Abfragen von Daten aus Tabellen Einfügen, Ändern und Löschen von Daten in Tabellen Ausführen von Datenbankprozeduren EIO0000002413 11/2016 19 Beschreibung In der nachstehenden Tabelle werden die Merkmale der Bibliothek aufgeführt: Merkmal Wert Bibliothekstitel SqlRemoteAccess Firma Schneider Electric Kategorie Kommunikation Komponente SQL-Bibliothek Standard-Namespace SE_SQL Sprachmodell-Attribut qualified-access-only (siehe SoMachine, Benutzerhandbuch zu Funktionen und Bibliotheken) Aufwärtskompatible Bibliothek Ja (AWK (siehe SoMachine, Benutzerhandbuch zu Funktionen und Bibliotheken)) (Nur qualifizierter Zugriff) HINWEIS: Für diese Bibliothek wurde das Attribut „qualified-access-only“ für die Beschränkung auf einen qualifizierten Zugriff eingestellt. Das bedeutet, dass für den Zugriff auf die POUs, Datenstrukturen, Enumerationen (Aufzählungen) und Konstanten der Namespace der Bibliothek erforderlich ist. Der Standard-Namespace der Bibliothek lautet SE_SQL. Allgemeine Hinweise Für die SQL-Kommunikation gelten folgende Einschränkungen: Nur IPv4 (Internetprotokoll Version 4) wird unterstützt. Es werden nur Datenbanktypen unterstützt, die der Norm IEC 61131-3 entsprechen. Das Lesen und Schreiben von BLOB-Objekten (Binary Large Objects) in einer Datenbank wird nicht unterstützt. Hinweise zur Cybersicherheit Die Funktionen der SqlRemoteAccess-Bibliothek unterstützen keine sicheren Verbindungen zum SQL Gateway, wie beispielsweise TLS (Transport Layer Security) oder SSL (Secure Socket Layer). Aus diesem Grund sollte die Kommunikation nur innerhalb Ihres industriellen Netzwerks erfolgen, das von anderen Netzwerken Ihres Unternehmens getrennt und vom Internet geschützt ist. HINWEIS: Schneider Electric operiert unter den Industriestandards bei der Entwicklung und Implementierung von Steuerungssystemen. Dies beinhaltet ein „Defense-in-Depth-Konzept“ zum Schutz industrieller Steuerungssysteme. Bei diesem Verfahren werden die Steuerungen hinter einer oder mehreren Firewalls platziert, um den Zugriff auf autorisierte Personen und Protokolle zu beschränken. 20 EIO0000002413 11/2016 Beschreibung WARNUNG UNBERECHTIGTER ZUGRIFF MIT UNBERECHTIGTEM MASCHINENBETRIEB Beurteilen Sie, ob Ihre Betriebsumgebung bzw. Ihre Maschinen mit Ihrer kritischen Infrastruktur verbunden sind. Ist das der Fall, dann ergreifen Sie angemessene Präventivmaßnahmen auf der Basis des Defense-in-Depth-Konzepts, bevor Sie das Automatisierungssystem mit einem Netzwerk verbinden. Begrenzen Sie die Anzahl der mit einem Netzwerk verbundenen Geräte auf das strikte Minimum. Isolieren Sie Ihr Industrienetzwerk von anderen Netzwerken in Ihrer Firma. Schützen Sie alle Netzwerke vor unberechtigtem Zugriff mithilfe von Firewalls, VPNs oder anderen bewährten Schutzmaßnahmen. Überwachen Sie die Aktivität in Ihren Systemen. Verhindern Sie jeden direkten Zugriff bzw. jede direkte Verbindung von Fachgeräten durch unberechtigte Personen oder nicht autorisierte Vorgänge. Stellen Sie einen Wiederherstellungsplan für den Notfall auf. Dazu gehört ebenfalls der Backup Ihrer System- und Prozessdaten. Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. Übersicht über die POUs Funktionsbaustein/Funktion Verwendung FB_SqlDbRead (siehe Seite 46) Führt SQL-Requests zum Auslesen von Daten aus der SQLDatenbank aus. FB_SqlDbWrite (siehe Seite 49) Führt SQL-Requests zur Aktualisierung oder Änderung der SQL-Datenbank aus. FC_EtResultToString (siehe Seite 53) Konvertiert ein Enumerationselement vom Typ ET_Result in eine Zeichenfolgenvariable. Überblick über die Strukturen der modulspezifischen Schnittstelle Struktur Verwendung ST_ConnectionSettings (siehe Seite 33) Enthält Informationen für den Aufbau einer Verbindung zu einem SQL Gateway sowie zur SQL-Datenbank. Übersicht über die Enumerationen Enumeration Verwendung ET_Result (siehe Seite 29) Enthält die möglichen Werte, die auf das Ergebnis der vom Funktionsbaustein durchgeführten Operationen verweisen. EIO0000002413 11/2016 21 Beschreibung 22 EIO0000002413 11/2016 SoMachine Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen SoMachine und einer beliebigen Datenbank EIO0000002413 11/2016 Kapitel 3 Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen SoMachine und einer beliebigen Datenbank Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen SoMachine und einer beliebigen Datenbank Funktionsprinzip Systemanforderungen Folgende systemspezifische Anforderungen sind zu beachten: Server (z. B. MySQL, von Schneider Electric nicht bereitgestellt) SQL-Client (z. B. MySQL Workbench, von Schneider Electric nicht bereitgestellt) Datenbank, erstellt mit dem SQL-Client (z. B. MySQL Workbench) SQL Gateway (separate Installation auf der SoMachine-DVD) SqlRemoteAccess-Bibliothek (Teil der Installation von SoMachine) Vorgehensweise zur Übertragung von Daten über das SQL Gateway von SoMachine in eine beliebige Datenbank Vor der Übertragung von Daten muss die SQL-Verbindung mithilfe des SQL Gateway hergestellt werden. Detaillierte Informationen hierzu finden Sie im Benutzerhandbuch des SQL-Gateways (siehe Seite 10). Um mit dem SQL Gateway kommunizieren zu können, müssen Sie beim Administrator der SQLUmgebung ggf. Umständen Informationen zum SQL Gateway sowie zur Datenbank anfordern. Sie benötigen die IP-Adresse des SQL Gateway, den im SQL Gateway konfigurierten Verbindungsnamen sowie den Namen der Datenbank. HINWEIS: Die in den Codebeispielen in dieser Bescchreibung verwendete SQL-Syntax beruht auf einem MySQL-Server. Wenn Sie einen anderen SQL-Server verwenden, können die Befehle unterschiedlich ausfallen. Schreiben von Daten vom SoMachine in die Datenbank Deklaration: PROGRAM WriteData VAR fbWrite : SE_SQL.FB_SqlDbWrite; stConnSettings : SE_SQL.ST_ConnectionSettings; refRequestWstring : SE_SQL.RequestWstring; END_VAR EIO0000002413 11/2016 23 Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen SoMachine und einer beliebigen Daten- Implementierung: stConnSettings.wsDbConnectionName := "ConnectionCountry"; stConnSettings.wGwPort := 3457; stConnSettings.wsGwIpAddress := "10.128.154.47"; stConnSettings.timSqlTimeout := T#20S; //SQL Command to insert a new Country - MySQLSyntax: INSERT INTO <database name>.<table name> (column1...columnN) va lues (value1...valueN) //SQLite-Syntax: without "<database name>.") refRequestWstring[1] := "INSERT INTO world.countries (C ountry, CapitalCity, Language)"; refRequestWstring[2] := "values ('Germany', 'Berlin', ' german')"; fbWrite( i_xExecute iq_stConnSettings i_refRequestWstring i_uiNumOfWstrings ); := := := := TRUE, stConnSettings, refRequestWstring, 2 Beschreibung der verwendeten Parameter Schritt Aktion 1 Stellen Sie in ST_ConnectionSettings (siehe Seite 33) die IP-Adresse (wsGwIpAddress (siehe Seite 33)) Ihres PC ein, auf dem das Gateway ausgeführt wird. Beispiel: 10.128.154.47. 2 Legen Sie in ST_ConnectionSettings (siehe Seite 33) den Port (wGwPort (siehe Seite 33)) des Gateways fest (Standardeinstellung: 3457). 3 Geben Sie in ST_ConnectionSettings (siehe Seite 33) den in den SQL Gateway konfigurierten Verbindungsnamen (wsDbConnectionName (siehe Seite 33)) an. Beispiel: ConnectionCountry. 4 Stellen Sie in ST_ConnectionSettings (siehe Seite 33) das Timeout (timSqlTimeout (siehe Seite 33)) ein. Beispiel: T#20S. 5 Schreiben Sie Ihren Schreibrequest in refRequestWstring (siehe Seite 46). Beispiel: INSERT INTO world.countries (Country) values ('France'). 6 Stellen Sie in i_uiNumOfWstrings (siehe Seite 46) die Zeilen in refRequestWstring (siehe Seite 46) ein. Beispiel: 2. 7 Rufen Sie FB_SqlDbWrite (siehe Seite 49) mit den oben aufgeführten Einstellungen/Parametern/Variablen auf. HINWEIS: Pro Funktionsbausteinaufruf kann nur jeweils ein Request gesendet werden. 24 EIO0000002413 11/2016 Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen SoMachine und einer beliebigen Daten- Auslesen von Daten von SoMachine in die Datenbank Deklaration: PROGRAM ReadData VAR fbRead stConnSettings refRequestWstring refUserData END_VAR : : : : SE_SQL.FB_SqlDbRead; SE_SQL.ST_ConnectionSettings; SE_SQL.RequestWstring; SE_SQL.UserData; Implementierung: stConnSettings.wsDbConnectionName stConnSettings.wGwPort stConnSettings.wsGwIpAddress stConnSettings.timSqlTimeout := := := := "ConnectionCountry"; 3457; "10.128.154.47"; T#1 M; //SQL Command to read all Countries in the database - MySQLSyntax: SELECT (column1...columnN) FROM <database name>.<table name> [w here <column>=<value>] //SQLite-Syntax: without "<database name>." refRequestWstring[1] := "SELECT * FROM world.countries"; fbRead ( i_xExecute iq_stConnSettings i_refRequestWstring i_uiNumOfWstrings i_refUserData := := := := := TRUE, stConnSettings, refRequestWstring, 1, refUserData ); Beschreibung der verwendeten Parameter Schritt Aktion 1 Stellen Sie in ST_ConnectionSettings (siehe Seite 33) die IP-Adresse (wsGwIpAddress (siehe Seite 33)) Ihres PC ein, auf dem das SQL Gateway ausgeführt wird. Beispiel: 10.128.154.47. 2 Legen Sie in ST_ConnectionSettings (siehe Seite 33) den Port (wGwPort (siehe Seite 33)) des Gateways fest (Standardeinstellung: 3457). 3 Geben Sie in ST_ConnectionSettings (siehe Seite 33) den im SQL Gateway konfigurierten Verbindungsnamen (wsDbConnectionName (siehe Seite 33)) an. Beispiel: ConnectionCountry. 4 Stellen Sie in ST_ConnectionSettings (siehe Seite 33) das Timeout (timSqlTimeout (siehe Seite 33)) ein. Beispiel: T#20S. 5 Schreiben Sie Ihren Leserequest in refRequestWstring (siehe Seite 46). Beispiel: SELECT * FROM world.countries. EIO0000002413 11/2016 25 Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen SoMachine und einer beliebigen DatenSchritt Aktion 6 Stellen Sie in i_uiNumOfWstrings (siehe Seite 46) die Zeilen in refRequestWstring (siehe Seite 46) ein. Beispiel: 1. 7 Geben Sie in i_refUserData (siehe Seite 46) das UserData (siehe Seite 46)-Array (Benutzerdaten) an. 8 Rufen Sie FB_SqlDbRead (siehe Seite 46) mit den oben aufgeführten Einstellungen/Parametern/Variablen auf. Erweiterte Einstellungen für den Datenpuffer / Request mit den globalen Parametern HINWEIS: Die erweiterten Einstellungen können speziell für Ihr Projekt im Bibliotheksverwalter überschrieben werden. Schritt 26 Aktion 1 Legen Sie in Gc_uiMaxRows (siehe Seite 41) die maximale Anzahl an Zeilen für das ARRAY of UserData fest (nur erforderlich für FB_SqlDbRead (siehe Seite 46)). Beispiel: 20. Ergebnis: In der konfigurierten Datenbank können 20 Zeilen gelesen werden. 2 Legen Sie in Gc_uiMaxColumns (siehe Seite 41) die maximale Anzahl an Spalten für das ARRAY of UserData fest (nur erforderlich für FB_SqlDbRead). Beispiel: 10. Ergebnis: In der konfigurierten Datenbank können 10 Spalten gelesen werden. 3 Legen Sie in Gc_uiTableWstringLength (siehe Seite 41) die maximale Anzahl an Zeichen im zweidimensionalen ARRAY of UserData fest (nur erforderlich für FB_SqlDbRead (siehe Seite 46)). Beispiel: 200. Ergebnis: In der konfigurierten Datenbank können 200 Zeichen gelesen werden. 4 Legen Sie in Gc_uiMaxRequest (siehe Seite 41) die maximale Anzahl an Zeilen für das ARRAY of RequestWstring fest. Beispiel: 20. Ergebnis: Der Request kann in 20 WSTRINGs-Zeilen aufgespalten werden. 5 Legen Sie in Gc_uiRequestWstringLength (siehe Seite 41) die maximale Anzahl an Zeichen im ARRAY of RequestWstring fest. Beispiel: 200. Ergebnis: Eine Request-Zeile kann 200 Zeichen umfassen. EIO0000002413 11/2016 SoMachine Enumerationen EIO0000002413 11/2016 Teil II Enumerationen Enumerationen Inhalt dieses Teils Dieser Teil enthält die folgenden Kapitel: Kapitel Kapitelname Seite 4 Enumerationen 29 5 Strukturen 33 6 ALIAS (DUT) 35 EIO0000002413 11/2016 27 Enumerationen 28 EIO0000002413 11/2016 SoMachine Enumerationen EIO0000002413 11/2016 Kapitel 4 Enumerationen Enumerationen ET_Result Übersicht Typ Enumeration Verfügbar ab: V1.0.0.0 Beschreibung Die Enumeration ET_Result enthält die möglichen Werte, die auf das Ergebnis der vom Funktionsbaustein durchgeführten Operationen verweisen. Enumerationselemente Name Datentyp Wert Beschreibung Wenn q_xError eines Funktionsbausteins (siehe Seite 45) den Wert FALSE aufweist, wird die nachstehend aufgeführte Statusmeldung angezeigt. Ok DINT 0 Operation erfolgreich abgeschlossen. Wenn q_xError eines Funktionsbausteins (siehe Seite 45) den Wert TRUE aufweist, wird eine der nachstehend aufgeführten Statusmeldungen angezeigt. TcpClientIssue DINT 1 Die TCP-Operation wurde nicht erfolgreich abgeschlossen. Generisches TCP-Problem. Siehe das TcpUdpCommunication-Bibliothekshandbuch (siehe SoMachine, TcpUdpCommunication, Bibliothekshandbuch). InvalidIP DINT 26 Die angegebene IP-Adresse ist ungültig. Prüfen Sie die Einstellung des iq_stConnSettings.wsGpIpAddress (siehe Seite 33)-Eingangs. ClientNotConnected DINT 28 Der Client ist nicht mit dem TCP-Server verbunden. Vergewissern Sie sich, dass das SQL Gateway installiert ist und an der angegebenen IP-Adresse und am vorgegebenen Port ausgeführt wird. ConnectionTimedOut DINT 41 Das dezentrale System ist nicht verfügbar oder antwortet nicht auf den Request. Vergewissern Sie sich, dass das SQL Gateway installiert ist und an der angegebenen IPAdresse und am vorgegebenen Port ausgeführt wird. EIO0000002413 11/2016 29 Enumerationen Name Datentyp Wert Beschreibung DbConnectionNameNull DINT 61 DbConnectionName ist leer (Null). Das Element wsDbConnectionName des Eingangs iq_stConnSettings (siehe Seite 33) ist leer. DataBufferTooSmall DINT 63 Der Benutzerpuffer ist nicht ausreichend für die zurückgegebenen Daten. Vergleichen Sie die Anzahl der zurückgegebenen Zeilen und Spalten mit den Einstellungen in der globalen Parameterliste (siehe Seite 41), um die Mindesteinstellungen in q_uiRetNumOfRows (q_uiRetNumOfColumns) für FB_SqlDbRead (siehe Seite 46) nach jeder Ausführung zu identifzieren. SqlDatabaseBusy DINT 64 Zurzeit wird ein früherer Request verarbeitet. Im Augenblick wird eine andere Instanz mit demselben Eingang für iq_stConnSettings ausgeführt (Ausgang q_xBusy = TRUE). SqlGwToPlcCorruptedMessage DINT 65 Die Steuerung hat eine ungültige Meldung vom SQL Gateway empfangen. Nehmen Sie Kontakt mit dem örtlichen Schneider Electric-Support auf. TimeoutExpired DINT 66 Betriebs-Timeout des Funktionsbausteins abgelaufen. Prüfen Sie die Einstellung des Eingangs iq_stConnSettings.timSqlTimeout (siehe Seite 33). Je nach Systemkonfiguration muss der Standardwert erhöht werden. TransactionNumMismatch DINT 67 Transaktionsnummer stimmt nicht überein. Schneider ElectricNehmen Sie Kontakt mit dem örtlichen Support auf. TransmissionNumMismatch DINT 68 Übertragungsnummer stimmt nicht überein. Schneider ElectricNehmen Sie Kontakt mit dem örtlichen Support auf. ConnectionNotIdle DINT 69 TcpUdp-Client-Verbindung bereits von einem anderen Dienst verwendet. Vergewissern Sie sich, dass keine andere Instanz von TCPUDP.FB_TCPClient innerhalb Ihrer Anwendung die Verbindung belegt. SocketNotClosed DINT 70 Methode Shutdown oder Close von TcpUdp nicht erfolgreich. Problem mit der TCP-Verbindung. Starten Sie die Steuerung neu. NoDataReturned DINT 71 Der Funktionsbaustein FB_SqlDbGetData stellt keine Daten bereit. Der SQL-Request wurde erfolgreich ausgeführt, es wurden jedoch keine Daten zurückgegeben. Vergewissern Sie sich, dass die zugeordnete Datenbank Daten enthält. 30 EIO0000002413 11/2016 Enumerationen Name Datentyp Wert Beschreibung NotConnected DINT 72 TcpUdp-Client-System nicht bereit für den Empfang bzw. die Übertragung von Daten. Problem mit der TCPVerbindung. Starten Sie die Steuerung neu. InvalidPort DINT 80 Die angegebene Portnummer ist gleich Null. Prüfen Sie den iq_stConnSettings.wGwPort (siehe Seite 33)Eingang. In der Regel wird der Standardwert 3457 verwendet. InvalidWstringNumber DINT 81 Der Eingang i_uiNumOfWstrings weist einen Wert unter 1 oder über GPL.Gc_uiMaxRequest auf. Prüfen Sie den i_uiNumOfWstrings-Eingang. Mindestens ein WSTRING ist erforderlich. Stellen Sie zudem sicher, dass die angegebene Zahl den Grenzwert GPL.Gc_uiMaxRequest überschreitet (GPL (siehe Seite 41)). InvalidRequestWstring DINT 82 Leere Request-Zeichenfolge oder ungültige Referenu (NULL). Prüfen Sie den i_refRequestWstring (siehe Seite 49)-Eingang. Der erste WSTRING (i_refRequestWstring[1]) muss einen beliebigen Buchstaben enthalten. Vergewissern Sie sich, dass der Eingang zugewiesen wurde. InvalidUserDataWstring DINT 8 Ungültige Benutzerdatenreferenz (NULL). Vergewissern Sie sich, dass der i_refUserData (siehe Seite 46)Eingang zugewiesen wurde. GplMaxRowsExceedsLimits DINT 85 GPL.Gc_uiMaxRows liegt außerhalb des zulässigen Bereichs. Überprüfen Sie die Einstellungen der globalen Parameterliste (siehe Seite 41). GplMaxColumnsExceedsLimits DINT 86 GPL.Gc_uiMaxColumns liegt außerhalb des zulässigen Bereichs. Überprüfen Sie die Einstellungen der globalen Parameterliste (siehe Seite 41). GplTableWstringExceedsLimits DINT 87 GPL.Gc_uiTableWstringLength liegt außerhalb des zulässigen Bereichs. Überprüfen Sie die Einstellungen der globalen Parameterliste (siehe Seite 41). GplRequestWstringExceedsLimits DINT 88 GPL.Gc_uiRequestWstringLength liegt außerhalb des zulässigen Bereichs. Überprüfen Sie die Einstellungen der globalen Parameterliste (siehe Seite 41). GplMaxRequestExceedsLimits DINT 89 GPL.Gc_uiMaxRequest liegt außerhalb des zulässigen Bereichs. Überprüfen Sie die Einstellungen der globalen Parameterliste (siehe Seite 41). GplMaxByteArrayExceedsLimits DINT 90 GPL.Gc_uiByteArrayLength liegt außerhalb des zulässigen Bereichs. Überprüfen Sie die Einstellungen der globalen Parameterliste (siehe Seite 41). EIO0000002413 11/2016 31 Enumerationen Name Datentyp Wert Beschreibung GplMaxRecBufferExceedsLimits DINT 91 GPL.Gc_uiRecBufferLength liegt außerhalb des zulässigen Bereichs. Überprüfen Sie die Einstellungen der globalen Parameterliste (siehe Seite 41). GplMaxSendBufferExceedsLimits DINT 92 GPL.Gc_uiSendBufferLength liegt außerhalb des zulässigen Bereichs. Überprüfen Sie die Einstellungen der globalen Parameterliste (siehe Seite 41). ConnectionNameNotExisting DINT 100 Der SQL Gateway-Verbindungsname existiert nicht. Prüfen Sie die verfügbaren Datenbankverbindungen auf der SQL Gateway-Konsole. DbConfigurationInvalid DINT 101 Die SQL Gateway-Verbindungskonfiguration stimmt nicht überein. Führen Sie Test Database Connection auf der SQL Gateway-Konsole aus. DbConnectionNotAvailable DINT 102 Die SQL Gateway-Verbindung zur Datenbank funktioniert nicht. Führen Sie Test Database Connection auf der SQL Gateway-Konsole aus. SqlGwProtocolError DINT 120 Protokollfehler zwischen SQL-Bibliothek und Gateway erkannt. Nehmen Sie Kontakt mit dem örtlichen Schneider Electric-Support auf. CommandExecutionIssue DINT 150 Ausführung des SQL-Requests nicht erfolgreich. Prüfen Sie den i_refRequestWString (siehe Seite 46)Eingang im Hinblick auf die Übereinstimmung mit der erforderlichen SQL-Syntax. Siehe hierzu das SQLServer-Handbuch. NoQueryResultAvailable DINT 151 Das SQL Gateway stellt keine Antwort bereit. Vergewissern Sie sicher, dass die adressierte Datenbank Daten mit einer zusätzlichen Anwendung enthält. SqlGwInvalidLicense DINT 170 Problem mit der SQL Gateway-Lizenz. Öffnen Sie den License Manager, um sicherzustellen, dass SQL für SoMachine gültig ist. SqlGwUnexpectedError DINT 199 SQL Gateway-Fehler erkannt. Nehmen Sie Kontakt mit dem örtlichen Schneider Electric-Support auf. HINWEIS: Die Ergebnisse im Bereich 100 bis 199 sind Meldungen vom SQL Gateway. Siehe hierzu das Benutzerhandbuch des SQL-Gateways (siehe Seite 10). Verwendet von FB_SqlDbRead FB_SqlDbWrite 32 EIO0000002413 11/2016 SoMachine Strukturen EIO0000002413 11/2016 Kapitel 5 Strukturen Strukturen ST_ConnectionSettings Übersicht Typ: Struktur Verfügbar ab: V1.0.0.0 Übernommen aus: – Beschreibung Die Struktur ST_ConnectionSettings enthält Informationen für den Aufbau einer Verbindung zu einem SQL Gateway sowie zur SQL-Datenbank. Strukturelemente Name Datentyp Beschreibung wsDbConnectionName WSTRING[40] Der Wert dieses Elements muss mit dem im SQL Gateway konfigurierten Verbindungsnamen übereinstimmen. Siehe hierzu das Benutzerhandbuch des SQL-Gateways (siehe Seite 10). wsGwIpAddress WSTRINGGPL.Gc_uiIp IP-Adresse des SQL Gateway. Hierbei handelt es sich um die StringSize IP-Adresse des Servers, auf dem das Gateway ausgeführt wird. wGwPort WORD Die Portnummer des SQL Gateway. Standardwert: 3457 timSqlTimeout TIME Der Timeout-Wert, der auf SQL-Requests angewendet wird. Standardwert: 60 s Verwendet von FB_SqlDbRead FB_SqlDbWrite EIO0000002413 11/2016 33 Strukturen 34 EIO0000002413 11/2016 SoMachine ALIAS (DUT) EIO0000002413 11/2016 Kapitel 6 ALIAS (DUT) ALIAS (DUT) ALIAS - Device Unit Types (DUT) Übersicht Typ: ALIAS (DUT) Verfügbar ab: V1.0.0.0 Übernommen aus: – Beschreibung Die ALIASE RequestWstring und UserData gruppieren komplexe Datenstrukturen in einem Datentyp, um die Benutzeroberfläche übersichtlicher zu gestalten. RequestWstring Name Datentyp Beschreibung RequestWstring ARRAY [1..GPL.Gc_uiMaxRequest] OF WSTRING(GPL.Gc_ui RequestWstringLength) RequestWstring ist ein ALIAS für ein WSTRINGS-Array. Der Request STRING enthält den SQL-Abfragerequest. Jeder SQL-Request muss in separate Zeichenfolgen einer Länge von jeweils maximal 200 Zeichen aufgespalten werden. Passen Sie die Größe der globalen Parameter (siehe Seite 41) Gc_uiMaxRequest und Gc_uiRequestWstringLength in Übereinstimmung mit der Länge der in Ihrer Anwendung verwendeten SQL-Requests an. Name Datentyp Beschreibung UserData ARRAY [1..GPL.Gc_uiMaxRows, 1..GPL.Gc_uiMaxColumns] OF WSTRING(GPL.Gc_uiTable WstringLength) UserData ist ein WSTRING-Array, das in der Steuerung für die Speicherung der aus der Datenbank ausgelesenen SQL-Daten verfügbar sein muss. Passen Sie die Größe der globalen Parameter (siehe Seite 41) Gc_uiMaxRows, Gc_uiMaxColums und GPL.Gc_uiTableWstringLength in Übereinstimmung mit der maximalen Größe der Benutzerdaten (UserData) für den Empfang in Ihrer Anwendung an. UserData EIO0000002413 11/2016 35 ALIAS (DUT) 36 EIO0000002413 11/2016 SoMachine Globale Variablen EIO0000002413 11/2016 Teil III Globale Variablen Globale Variablen Inhalt dieses Teils Dieser Teil enthält die folgenden Kapitel: Kapitel Kapitelname Seite 7 Liste der globalen Konstanten 39 8 Liste der globalen Parameter 41 EIO0000002413 11/2016 37 Globale Variablen 38 EIO0000002413 11/2016 SoMachine Liste der globalen Konstanten EIO0000002413 11/2016 Kapitel 7 Liste der globalen Konstanten Liste der globalen Konstanten Liste globaler Konstanten (LGK) Übersicht Typ: Globale Konstanten Verfügbar ab: V1.0.0.0 Beschreibung Die Liste der globalen Konstanten (LGK) enthält die globalen Konstanten der SqlRemoteAccessBibliothek. Globale Konstanten Variable Datentyp Gc_sLibraryVersion STRING[80] 1 Wert Beschreibung 1 Vx.x.x.0 Bibliotheksversion Dieser Wert verweist auf die Version der Bibliothek und fällt dementsprechend jeweils unterschiedlich aus. EIO0000002413 11/2016 39 Liste der globalen Konstanten 40 EIO0000002413 11/2016 SoMachine Liste der globalen Parameter EIO0000002413 11/2016 Kapitel 8 Liste der globalen Parameter Liste der globalen Parameter Globale Parameterliste (GPL) Übersicht Typ: Globale Parameter Verfügbar ab: V1.0.0.0 Beschreibung Die globale Parameterliste enthält die globalen Parameter der SqlRemoteAccess-Bibliothek. Sie können spezifisch für Ihr Projekt im Bibliotheksverwalter überschrieben werden. In den globalen Parametern der SqlRemoteAccess-Biliothek können Sie die Größe der folgenden ALIAS für Datenpuffer festlegen: UserData (siehe Seite 35) - Benutzerdaten müssen in der Steuerung für die Speicherung der aus der SQL-Datenbank ausgelesenen SQL-Daten verfügbar sein. RequestData (siehe Seite 35) - Request-Daten müssen in der Steuerung zur Segmentierung der SQL-Requests in separate Zeichenfolge mit jeweils maximal 200 Zeichen vor der Übertragung an die SQL-Datenbank verfügbar sein. Globale Parameter Variable Datentyp Wert Bereich Beschreibung Gc_uiIpStringSize UINT – WSTRING-Obergrenze für das Element wsGwIpaddress in der ST_ConnectionSettings-Struktur (siehe Seite 33). Standardwert: 15 Gc_uiMaxRows UINT 1...50 Maximale Anzahl an Zeilen für das ARRAY mit Benutzerdaten (siehe Seite 48). Standardwert: 20 Gc_uiMaxColumns UINT 1...50 Maximale Anzahl an Spalten für das ARRAY mit Benutzerdaten (siehe Seite 48). Standardwert: 10 Gc_uiTableWstringLength UINT 20...200 Länge von WSTRING im ARRAY mit Benutzerdaten (siehe Seite 48). Standardwert: 200 EIO0000002413 11/2016 41 Liste der globalen Parameter Variable Datentyp Gc_uiRequestWstringLength UINT Wert Bereich Beschreibung 20...200 Länge von WSTRING im ARRAY der RequestDaten. Konfigurieren Sie einen Wert, der der Länge der in Ihrer Anwendung verwendeten SQL-Requests entspricht. Standardwert: 200 Gc_uiMaxRequest UINT 1...40 Obergrenze für das ARRAY der Request-Daten. Konfigurieren Sie einen Wert, der der Länge der in Ihrer Anwendung verwendeten SQL-Requests entspricht. Standardwert: 20 Gc_uiByteArrayLength UINT 255... 65355 Obergrenze für das ARRAY OF BYTE zum Lesen oder Schreiben von Binärdaten. Im Rahmen einer Funktionsbausteinausführung kann jeweils nur eine Zeile/Spalte gelesen oder geschrieben werden (für Standarddatentypen wird ein zweidimensionales Array definiert). Standardwert: 300 Gc_uiRecBufferLength UINT 512... 2000 Länge des Antwortpuffers in Byte. Standardwert: 1000 Gc_uiSendBufferLength UINT 512... 2000 Länge des Sendepuffers in Byte. Standardwert: 1000 HINWEIS: Die Variablen Gc_uiRecBufferLength und Gc_uiSendBufferLength geben die Größe des internen Puffers für das Senden und den Empfang von Daten an. Die Größe dieser Puffer bestimmt die erforderliche Anzahl an Zyklen für die vollständige Übertragung eines Requests oder einer Antwort zwischen Steuerung und SQL Gateway. Die von Ihnen ausgewählten Werte können sich auf die Ausführungszeit der SQL-Dienste sowie auf den Speicher und damit auf die globale Leistung Ihrer Anwendung auswirken. 42 EIO0000002413 11/2016 SoMachine Programmorganisationseinheiten (POU) EIO0000002413 11/2016 Teil IV Programmorganisationseinheiten (POU) Programmorganisationseinheiten (POU) Inhalt dieses Teils Dieser Teil enthält die folgenden Kapitel: Kapitel 9 10 EIO0000002413 11/2016 Kapitelname Seite Funktionsbausteine 45 Funktionen 53 43 Programmorganisationseinheiten (POU) 44 EIO0000002413 11/2016 SoMachine Funktionsbausteine EIO0000002413 11/2016 Kapitel 9 Funktionsbausteine Funktionsbausteine Inhalt dieses Kapitels Dieses Kapitel enthält die folgenden Themen: Thema Seite FB_SqlDbRead 46 FB_SqlDbWrite 49 EIO0000002413 11/2016 45 Funktionsbausteine FB_SqlDbRead Übersicht Typ Funktionsbaustein Verfügbar ab V1.0.0.0 Aufgabe Der Funktionsbaustein FB_SqlDbRead ermöglicht die Ausführung von SQL-Requests zum Auslesen von Daten aus der SQL-Datenbank. Die Rückgabedaten werden in einem zweidimensionalen Daten-Array bereitgestellt, dessen Größe mittels globaler Parameter (siehe Seite 41) festgelegt wird. Funktionsbeschreibung Der Funktionsbaustein FB_SqlDbRead fungiert als Benutzerschnittstelle für das Lesen von Daten in der SQL-Datenbank. Bei Erkennung einer steigenden Flanke an i_xExecute wird unter Verwendung der in der Struktur ST_ConnectionSettings definierten Parameter eine Verbindung zum SQL Gateway hergestellt. Sobald die Verbindung aufgebaut ist, kann der Funktionsbaustein einen SQL-Request an die SQL-Datenbank senden. Während der Ausführung des Funktionsbausteins steht der Ausgang q_xBusy auf TRUE. Sobald ein Befehl erfolgreich abgeschlossen wurde, wird der Ausgang q_xDone auf TRUE gesetzt. Statusmeldungen und Diagnoseinformationen werden unter Verwendung der Ausgänge q_xError (TRUE, wenn ein Fehler erkannt wurde), q_etResult und q_etResultMsg bereitgestellt. 46 EIO0000002413 11/2016 Funktionsbausteine Schnittstelle Eingang Datentyp Beschreibung i_xExecute BOOL Der Funktionsbaustein führt einen SQLRequest aus, um bei einer steigenden Flanke an diesem Eingang Daten in der SQL-Datenbank zu lesen. i_refRequestWstring REFERENCE TO [RequestWstring] Verweis auf die Request-Daten, die einen SQL-Abfragerequest enthalten (z. B. Select * from DB limit 10;). Jeder SQL-Request muss in separate Zeichenfolgen einer Länge von jeweils maximal 200 Zeichen aufgespalten werden. Passen Sie die Größe der globalen Parameter (siehe Seite 41) Gc_uiMaxRequest und Gc_uiRequestWstringLength in Übereinstimmung mit der Länge der in Ihrer Anwendung verwendeten SQL-Requests an. (siehe Seite 35) HINWEIS: Verwenden Sie zur Verkettung der WSTRINGS die Funktion WCONCAT der Standard64-Bibliothek. i_uiNumOfWstrings UINT Die Anzahl der erforderlichen WSTRINGS mit dem aufgeteilten SQL-Request. Die maximale Anzahl wird vom globalen Parameter (siehe Seite 41) Gc_uiMaxRequest vorgegeben. i_refUserData REFERENCE TO [UserData] (siehe Seite 35) Verweis auf die Benutzerdaten (UserData (siehe Seite 48)), die in der Steuerung für die Speicherung der aus der Datenbank ausgelesenen SQL-Daten verfügbar sein müssen. Datentyp Beschreibung ST_ConnectionSettings Enthält Informationen für den Aufbau einer Verbindung zu einem SQL Gateway sowie zur SQL-Datenbank. Eingang/Ausgang iq_stConnSettings (siehe Seite 33) EIO0000002413 11/2016 47 Funktionsbausteine Ausgang Datentyp Beschreibung q_xBusy BOOL Wenn dieser Ausgang auf TRUE gesetzt wird, bedeutet das, dass der Funktionsbaustein ausgeführt wird. q_xDone BOOL Wenn dieser Ausgang auf TRUE gesetzt wird, wurde die Ausführung erfolgreich abgeschlossen. q_xError BOOL Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Für weitere Informationen, siehe q_etResult und q_etResultMsg, q_etResult ET_Result Gibt Diagnose- und Statusinformationen an. q_sResultMsg STRING[255] Gibt zusätzliche Diagnose- und Statusinformationen an. q_uiRetNumOfRows UINT Anzahl der Zeilen in den Rückgabedaten. Dieser Ausgang wird mit der Anzahl der von der SQL-Datenbank empfangenen Datensätze aktualisiert. q_uiRetNumOfColumns UINT Anzahl der Spalten in den Rückgabedaten. Dieser Ausgang wird mit der Anzahl der von der SQL-Datenbank empfangenen Datensätze aktualisiert. Definition eines ARRAY mit Benutzerdaten. Ein zweidimensionales ARRAY muss in der Steuerung für die Zwischenspeicherung der aus der Datenbank ausgelesenen SQL-Daten verfügbar sein. Das zweidimensionale ARRAY wird im ALIAS UserData (siehe Seite 35) definiert. Die Größe des ARRAY kann über die globalen Parameter (siehe Seite 41) Gc_uiMaxRows, Gc_uiMaxColumns und Gc_uiTableWstringLength angepasst werden. Bei der Konfiguration dieser Parameter ist der Umfang der SQL-Daten zu berücksichtigen, deren Empfang erwartet wird. Vor dem Start der Datenübertragung werden die SQL-Daten gemäß der Größe dieses Puffers segmentiert. Wenn die empfangenen SQL-Daten die Größe des ARRAY überschreiten, wird der SQLDatentransfer angehalten und der Funktionsbaustein signalisiert einen Fehler. 48 EIO0000002413 11/2016 Funktionsbausteine FB_SqlDbWrite Übersicht Typ Funktionsbaustein Verfügbar ab V1.0.0.0 Aufgabe Der Funktionsbaustein FB_SqlDbWrite ermöglicht die Ausführung von SQL-Requests zur Aktualisierung oder Änderung der SQL-Datenbank. Auf diese Requests werden keine Daten zurückgegeben. Funktionsbeschreibung Der Funktionsbaustein FB_SqlDbWrite fungiert als Benutzerschnittstelle für die Aktualisierung und Änderung der SQL-Datenbank. Bei Erkennung einer steigenden Flanke an i_xExecute wird unter Verwendung der in der Struktur ST_ConnectionSettings (siehe Seite 33) definierten Parameter eine Verbindung zum SQL Gateway hergestellt. Sobald die Verbindung aufgebaut ist, kann der Funktionsbaustein einen SQL-Request an die SQL-Datenbank senden (Übergabe an den Eingang i_refRequestWstring). Während der Ausführung des Funktionsbausteins steht der Ausgang q_xBusy auf TRUE. Sobald ein Befehl erfolgreich abgeschlossen wurde, wird der Ausgang q_xDone auf TRUE gesetzt. Statusmeldungen und Diagnoseinformationen werden unter Verwendung der Ausgänge q_xError (TRUE, wenn ein Fehler erkannt wurde), q_etResult und q_etResultMsg bereitgestellt. EIO0000002413 11/2016 49 Funktionsbausteine Schnittstelle Eingang Datentyp Beschreibung i_xExecute BOOL Der Funktionsbaustein führt einen SQLRequest aus, um die SQL-Datenbank bei einer steigenden Flanke an diesem Eingang zu aktualisieren oder zu ändern. i_refRequestWstring REFERENCE TO [RequestWstring] Verweis auf die Request-Daten, die einen SQL-Aktualisierungsrequest enthalten. Folgende SQL-Abfragetypen werden unterstützt: INSERT INTO UPDATE DELETE FROM CREATE TABLE CREATE VIEW CREATE INDEX ALTER TABLE DROP TABLE TRUNCATE TABLE (siehe Seite 35) Jeder SQL-Request muss in separate Zeichenfolgen einer Länge von jeweils maximal 200 Zeichen aufgespalten werden. Passen Sie die Größe der globalen Parameter (siehe Seite 41) Gc_uiMaxRequest und Gc_uiRequestWstringLength in Übereinstimmung mit der Länge der in Ihrer Anwendung verwendeten SQL-Requests an. HINWEIS: Verwenden Sie zur Verkettung der WSTRINGS die Funktion CONCAT der Standard64-Bibliothek. i_uiNumOfWstrings UINT Die Anzahl der erforderlichen WSTRINGS mit dem aufgeteilten SQL-Request. Die maximale Anzahl wird vom globalen Parameter (siehe Seite 41) Gc_uiMaxRequest vorgegeben. Eingang/Ausgang Datentyp Beschreibung iq_stConnSettings ST_ConnectionSettings Enthält Informationen für den Aufbau einer Verbindung zu einem SQL Gateway sowie zur SQL-Datenbank. (siehe Seite 33) 50 EIO0000002413 11/2016 Funktionsbausteine Ausgang Datentyp Beschreibung q_xBusy BOOL Wenn dieser Ausgang auf TRUE gesetzt wird, bedeutet das, dass der Funktionsbaustein ausgeführt wird. q_xDone BOOL Wenn dieser Ausgang auf TRUE gesetzt wird, wurde die Ausführung erfolgreich abgeschlossen. q_xError BOOL Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Für weitere Informationen, siehe q_etResult und q_etResultMsg, q_etResult ET_Result Gibt Diagnose- und Statusinformationen an. q_sResultMsg STRING[255] Gibt zusätzliche Diagnose- und Statusinformationen an. EIO0000002413 11/2016 51 Funktionsbausteine 52 EIO0000002413 11/2016 SoMachine Funktionen EIO0000002413 11/2016 Kapitel 10 Funktionen Funktionen FC_EtResultToString Übersicht Typ: Funktion Verfügbar ab: V1.0.0.0 Übernommen aus: – Implementiert: – Aufgabe Konvertierung eines Enumerationselements vom Typ ET_Result in einen Zeichenfolgenwert mit Diagnose- und Statusinformationen. Funktionsbeschreibung Über die Funktion FC_EtResultToString können Sie ein Enumerationselement vom Typ ET_Result in einen Zeichenfolgenwert konvertieren. Schnittstelle Eingang Datentyp Beschreibung i_etResult ET_Result Enumeration mit dem Ergebnis. Rückgabewert Datentyp Beschreibung STRING(80) ET_Result, konvertiert in einen Zeichenfolgenwert. EIO0000002413 11/2016 53 Funktionen 54 EIO0000002413 11/2016 SoMachine EIO0000002413 11/2016 Anhang EIO0000002413 11/2016 55 56 EIO0000002413 11/2016 SoMachine Darstellung von Funktionen und Funktionsbausteinen EIO0000002413 11/2016 Anhang A Darstellung von Funktionen und Funktionsbausteinen Darstellung von Funktionen und Funktionsbausteinen Übersicht Jede Funktion kann in den folgenden Sprachen dargestellt werden. AWL: Anweisungsliste ST: Strukturierter Text KOP: Kontaktplan FBD: Funktionsbausteindiagramm CFC: Continuous Function Chart Dieses Kapitel enthält Darstellungen von Funktionen und Funktionsbausteinen und erläutert deren Verwendung in den Sprachen AWL und ST. Inhalt dieses Kapitels Dieses Kapitel enthält die folgenden Themen: Thema Seite Unterschiede zwischen einer Funktion und einem Funktionsbaustein 58 Verwenden einer Funktion oder eines Funktionsbausteins in der Sprache AWL 59 Verwenden einer Funktion oder eines Funktionsbausteins in der Sprache ST 63 EIO0000002413 11/2016 57 Darstellung von Funktionen und Funktionsbausteinen Unterschiede zwischen einer Funktion und einem Funktionsbaustein Funktion Eine Funktion hat die folgenden Eigenschaften: Ist eine POU (Program Organization Unit), die ein einzelnes direktes Ergebnis zurückgibt Wird direkt über ihren Namen aufgerufen (nicht über eine Instanz) Ist nicht instanziiert Kann als Operand in anderen Ausdrücken verwendet werden Beispiele: Boolesche Operatoren (AND), Berechnungen, Konvertierung (BYTE_TO_INT) Funktionsbaustein Ein Funktionsbaustein hat die folgenden Eigenschaften: Ist eine POU (Program Organization Unit), die ein oder mehrere direkte Ausgänge zurückgibt Muss von einer Instanz aufgerufen werden (Funktionsbausteinkopie mit dediziertem Namen und Variablen) Hat für jede Instanz einen persistenten Status (Ausgänge und interne Variablen) von einem Aufruf zum anderen aus einem Funktionsbaustein oder Programm Beispiele: Zeitgeber, Zähler In dem nachstehenden Beispiel ist Timer_ON eine Instanz des Funktionsbausteins TON: 58 EIO0000002413 11/2016 Darstellung von Funktionen und Funktionsbausteinen Verwenden einer Funktion oder eines Funktionsbausteins in der Sprache AWL Allgemeine Informationen In diesem Abschnitt wird das Implementieren einer Funktion und eines Funktionsbausteins in der Sprache AWL beschrieben. Die Funktionen IsFirstMastCycle und SetRTCDrift und der Funktionsbaustein TON werden als Implementierungsbeispiele verwendet. Verwenden einer Funktion in der AWL-Sprache Im Folgenden wird das Einfügen einer Funktion in der AWL-Sprache beschrieben: Schritt Aktion 1 Öffnen oder erstellen Sie eine neue POU in der AWL-Sprache. HINWEIS: Die Vorgehensweise zum Erstellen einer POU wird hier nicht erläutert. Weitere Informationen finden Sie unter Hinzufügen und Aufrufen von POUs (siehe SoMachine, Programmierhandbuch). 2 Erstellen Sie die Variablen, die für die Funktion erforderlich sind. 3 Wenn die Funktion über mindestens einen Eingang verfügt, beginnen Sie mit dem Laden des ersten Eingangs mithilfe der LD-Anweisung. 4 Fügen Sie unten eine neue Zeile ein, und gehen Sie wie folgt vor: Geben Sie den Namen der Funktion in der Operator-Spalte (linkes Feld) ein. Oder verwenden Sie die Eingabehilfe, um die Funktion auszuwählen. (Wählen Sie im Kontextmenü Bausteinaufruf einfügen.) 5 Wenn die Funktion über mehr als einen Eingang verfügt und die Eingabehilfe verwendet wird, wird die erforderliche Anzahl von Zeilen automatisch mit ??? in den Feldern rechts erstellt. Ersetzen Sie ??? durch den geeigneten Wert oder die Variable, die der Reihenfolge der Eingänge entspricht. 6 Fügen Sie eine neue Zeile ein, um das Ergebnis der Funktion in der entsprechenden Variable zu speichern: Geben Sie die ST-Anweisung in die Operator-Spalte (linkes Feld) und einen Variablennamen in das rechte Feld ein. EIO0000002413 11/2016 59 Darstellung von Funktionen und Funktionsbausteinen Die Funktionen IsFirstMastCycle (ohne Eingangsparameter) und SetRTCDrift (mit Eingangsparametern) werden im Folgenden grafisch dargestellt: Funktion Grafische Darstellung ohne Eingangsparameter: IsFirstMastCycle mit Eingangsparametern: SetRTCDrift In der AWL-Sprache wird der Funktionsname direkt in der Operator-Spalte verwendet: Funktion Darstellung im SoMachine POU-Editor in AWL Beispiel einer Funktion ohne Eingangsparameter in der AWL-Sprache: IsFirstMastCycle Beispiel einer Funktion mit Eingangsparametern in der AWL-Sprache: SetRTCDrift 60 EIO0000002413 11/2016 Darstellung von Funktionen und Funktionsbausteinen Verwenden eines Funktionsbausteins in der AWL-Sprache Im Folgenden wird das Einfügen eines Funktionsbausteins in der AWL-Sprache beschrieben: Schritt Aktion 1 Erstellen Sie eine neue POU in der AWL-Sprache. HINWEIS: Die Vorgehensweise zum Erstellen einer POU wird hier nicht erläutert. Weitere Informationen finden Sie unter Hinzufügen und Aufrufen von POUs (siehe SoMachine, Programmierhandbuch). 2 Erstellen Sie die Variablen, die für den Funktionsbaustein erforderlich sind, einschließlich des Instanznamens. 3 Funktionsbausteine werden mithilfe einer CAL-Anweisung aufgerufen: Verwenden Sie die Eingabehilfe, um den FB auszuwählen. (Klicken Sie mit der rechten Maustaste, und wählen Sie im Kontextmenü Bausteinaufruf einfügen aus.) Die CAL-Anweisung und der entsprechende E/A werden erstellt. Jeder Parameter (E/A) ist eine Anweisung: Werte für Eingänge werden mit ":=" festgelegt. Werte für Ausgänge werden mit "=>" festgelegt. 4 Ersetzen Sie im rechten CAL-Feld die ??? durch den Instanznamen. 5 Ersetzen Sie weitere ??? durch eine geeignete Variable oder einen direkten Wert. Der grafisch dargestellte Funktionsbaustein TON dient in diesem Beispiel zur Veranschaulichung: Funktionsbaustein Grafische Darstellung TON EIO0000002413 11/2016 61 Darstellung von Funktionen und Funktionsbausteinen In der AWL-Sprache wird der Name des Funktionsbausteins direkt in der Operator-Spalte verwendet: Funktionsbaustein Darstellung im SoMachine POU-Editor in AWL TON 62 EIO0000002413 11/2016 Darstellung von Funktionen und Funktionsbausteinen Verwenden einer Funktion oder eines Funktionsbausteins in der Sprache ST Allgemeine Informationen In diesem Teil wird die Implementierung einer Funktion oder eines Funktionsbausteins in der ST-Sprache erläutert. Dabei werden die Funktion SetRTCDrift und der Funktionsbaustein TON als Beispiele verwendet. Verwenden einer Funktion in der ST-Sprache Im Folgenden wird das Einfügen einer Funktion in der ST-Sprache beschrieben: Schritt Aktion 1 Erstellen Sie eine neue POU in der ST-Sprache. HINWEIS: Die Vorgehensweise zum Erstellen einer POU wird hier nicht erläutert. Weitere Informationen finden Sie unter Hinzufügen und Aufrufen von POUs (siehe SoMachine, Programmierhandbuch). 2 Erstellen Sie die Variablen, die für die Funktion erforderlich sind. 3 Verwenden Sie im POU-ST-Editor die allgemeine Syntax zur Darstellung einer Funktion in der ST-Sprache. Die allgemeine Syntax lautet: Funktionsergebnis:= Funktionsname(VarEingang1, VarEingang2,.. VarEingangx); Zur Veranschaulichung dieses Verfahrens betrachten wir die grafisch dargestellte Funktion SetRTCDrift: Funktion Grafische Darstellung SetRTCDrift In der ST-Sprache wird diese Funktion folgendermaßen dargestellt: Funktion Darstellung im SoMachine POU-Editor in der ST-Sprache SetRTCDrift PROGRAM MyProgram_ST VAR myDrift: SINT(-29..29) := 5; myDay: DAY_OF_WEEK := SUNDAY; myHour: HOUR := 12; myMinute: MINUTE; myRTCAdjust: RTCDRIFT_ERROR; END_VAR myRTCAdjust:= SetRTCDrift(myDrift, myDay, myHour, myMinute); EIO0000002413 11/2016 63 Darstellung von Funktionen und Funktionsbausteinen Verwenden eines Funktionsbausteins in der ST-Sprache Im Folgenden wird das Einfügen eines Funktionsbausteins in der ST-Sprache beschrieben: Schritt Aktion 1 Erstellen Sie eine neue POU in der ST-Sprache. HINWEIS: Die Vorgehensweise zum Erstellen einer POU wird hier nicht erläutert. Weitere Informationen zum Hinzufügen, Deklarieren und Aufrufen von POUs finden Sie in der entsprechenden Dokumentation (siehe SoMachine, Programmierhandbuch). 2 Erstellen Sie die Eingangs- und Ausgangsvariablen und die Instanzen, die für den Funktionsbaustein erforderlich sind: Die Eingangsvariablen sind die für den Funktionsbaustein erforderlichen Eingangsparameter. Die Ausgangsvariablen erhalten den vom Funktionsbaustein zurückgegebenen Wert. 3 Verwenden Sie im POU-ST-Editor die allgemeine Syntax zur Darstellung eines Funktionsbausteins in der ST-Sprache. Die allgemeine Syntax lautet: Funktionsbaustein_Instanzname(Eingang1:=VarEingang1, Eingang2:=VarEingang2,... Ausgang1=>VarAusgang1, Ausgang2=>VarAusgang2,...); Der grafisch dargestellte Funktionsbaustein TON dient in diesem Beispiel zur Veranschaulichung: Funktionsbaustein Grafische Darstellung TON Die folgende Tabelle zeigt Beispiele für den Aufruf eines Funktionsbausteins in der ST-Sprache: Funktionsbaustein Darstellung im SoMachine POU-Editor in der ST-Sprache TON 64 EIO0000002413 11/2016 SoMachine Glossar EIO0000002413 11/2016 Glossar A Anwendung Programm mit Konfigurationsdaten, Symbolen und Dokumentation. B Byte In einem 8-Bit-Format codierter Typ. Gültiger Wertebereich: 00 hex bis FF hex. C CFC (Continuous Function Chart) Grafische Programmiersprache (Erweiterung des Standards IEC 61131-3) auf der Grundlage der FBD-Sprache (Funktionsbausteindiagramm), die wie ein Flussdiagramm aufgebaut ist. Grafische Elemente werden allerdings, sofern möglich, ohne die Verwendung von Netzwerken frei positioniert, sodass Rückkopplungsschleifen möglich sind. Bei jedem Baustein befinden sich die Eingänge links und die Ausgänge rechts. Sie können die Bausteinausgänge mit den Eingängen anderer Bausteine verbinden, um komplexe Ausdrücke zu erstellen. E E/A Eingang/Ausgang Erweiterungsbus Elektronischer Kommunikationsbus zwischen E/A-Erweiterungsmodulen und einer Steuerung. F FB (Function Block: Funktionsbaustein) Nützlicher Programmiermechanismus, der eine Gruppe von Programmieranweisungen zur Durchführung eines spezifischen und normierten Vorgangs konsolidiert, z. B. Drehzahlregelung, Intervallkontrolle oder Zählen. Ein Funktionsbaustein kann Konfigurationsdaten, eine Gruppe interner oder externer Betriebsparameter und in der Regel 1 oder mehrere Dateneingänge und -ausgänge umfassen. EIO0000002413 11/2016 65 Glossar Funktionsbausteindiagramm (Programmiersprache) Eine von 5 Sprachen für die Logik oder Steuerung, die von dem Standard IEC 61131-3 für Steuerungssysteme unterstützt wird. Es handelt sich hierbei um eine grafisch orientierte Programmiersprache. Sie arbeitet mit einer Liste von Netzwerken, wobei jedes Netzwerk eine grafische Struktur von Feldern und Verbindungslinien enthält, die entweder einen logischen oder einen arithmetischen Ausdruck, den Aufruf eines Funktionsbausteins, einen Sprung oder einen Rückkehrbefehl darstellen. I IL INT (Instruction List: Anweisungsliste (AWL)) Ein in Anweisungsliste geschriebenes Programm besteht aus einer Abfolge textbasierter Anweisungen, die von der Steuerung der Reihe nach ausgeführt werden. Jede Anweisung besteht aus einer Zeilennummer, einem Anweisungscode und einem Operanden (siehe IEC 61131-3). (Integer: Ganzzahl) Über 16 Bits codierte Ganzzahl. K Konfiguration Die Anordnung und Vernetzung von Hardwarekomponenten innerhalb eines Systems und die Hardware- und Softwareparameter, die die Betriebsmerkmale des Systems bestimmen. L LD (Ladder Diagramm: Kontaktplan (KOP)) Grafische Darstellung der Anweisungen eines Steuerungsprogramms mit Symbolen für Kontakte, Spulen und Bausteine in einer Abfolge von Programmbausteinen, die von der Steuerung der Reihe nach ausgeführt werden (siehe IEC 61131-3). P POU (Program Organization Unit: Programmierorganisationseinheit) Variablendeklaration im Quellcode und der entsprechende Anweisungssatz. POUs ermöglichen die modulare Wiederverwendung von Softwareprogrammen, Funktionen und Funktionsbausteinen. Sobald POUs deklariert sind, stehen sie sich gegenseitig zur Verfügung. Programm Komponente einer Anwendung, die aus kompiliertem Quellcode besteht und im Speicher einer programmierbaren Steuerung installiert werden kann. 66 EIO0000002413 11/2016 Glossar S SQL ST SQL (Structured Query Language) ist eine Programmiersprache zur Verwaltung der in relationalen Datenbank-Management-Systemen gespeicherten Daten. (Structured Text: Strukturierter Text) Programmiersprache, die komplexe und verschachtelte Anweisungen umfasst (z. B. Iterationsschleifen, bedingte Ausführungen oder Funktionen). ST ist IEC 61131-3-kompatibel. Steuerung Ermöglicht die Automatisierung industrieller Prozesse (auch als speicherprogrammierbare Steuerung oder SPS bezeichnet). V Variable Speichereinheit, die von einem Programm adressiert und geändert werden kann. EIO0000002413 11/2016 67 Glossar 68 EIO0000002413 11/2016 SoMachine Index EIO0000002413 11/2016 Index A ALIAS - Device Unit Types (DUT), 35 B Bibliotheken SqlRemoteAccess, 19 E Einschränkungen bei der Übertragung von EMails, 20 ET_Result, 29 ClientNotConnected, 29 CommandExecutionIssue, 32 ConnectionNameNotExisting, 32 ConnectionNotIdle, 30 ConnectionTimedOut, 29 DataBufferTooSmall, 30 DbConfigurationInvalid, 32 DbConnectionNameNull, 30 DbConnectionNotAvailable, 32 GplMaxByteArrayExceedsLimits, 31 GplMaxColumnsExceedsLimits, 31 GplMaxRecBufferExceedsLimits, 32 GplMaxRequestExceedsLimits, 31 GplMaxRowsExceedsLimits, 31 GplMaxSendBufferExceedsLimits, 32 GplRequestWstringExceedsLimits, 31 GplTableWstringExceedsLimits, 31 InvalidIP, 29 InvalidPort, 31 InvalidRequestWstring, 31 InvalidUserDataWstring, 31 InvalidWstringNumber, 31 NoDataReturned, 30 NoQueryResultAvailable, 32 NotConnected, 31 Ok, 29 SocketNotClosed, 30 SqlDatabaseBusy, 30 SqlGwInvalidLicense, 32 SqlGwProtocolError, 32 SqlGwToPlcCorruptedMessage, 30 SqlGwUnexpectedError, 32 TcpClientIssue, 29 TimeoutExpired, 30 TransactionNumMismatch, 30 TransmissionNumMismatch, 30 F FB_SqlDbRead, 46 EIO0000002413 11/2016 69 Index FB_SqlDbWrite, 49 FC_EtResultToString, 53 Funktionen Unterschiede zwischen einer Funktion und einem Funktionsbaustein, 58 Verwenden einer Funktion oder eines Funktionsbausteins in der Sprache AWL, 59 Verwenden einer Funktion oder eines Funktionsbausteins in der Sprache ST, 63 G GPL (Globale Parameterliste) SqlRemoteAccess, 41 L LGK (Liste globaler Konstanten) SqlRemoteAccess, 39 Q Qualifiziertes Fachpersonal, 14 S SqlRemoteAccess, 19 GPL (Globale Parameterliste), 41 LGK (Liste globaler Konstanten), 39 ST_ConnectionSettings, 33 70 EIO0000002413 11/2016