Tool zur Steuerung & Regelung



Ähnliche Dokumente
Astro for Simatic der innovative Software Dämmerungsschalter auf Basis einer Simatic S7 SPS. Applikation zur Steuerung einer Beleuchtungsanlage

Applikation zur Antriebstechnik

Binärdarstellung von Fliesskommazahlen

Microsoft Office 365 Kalenderfreigabe

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Weiterleitung einrichten für eine 1&1- -Adresse

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Weiterleitung einrichten für eine GMX- -Adresse

Microsoft Office 365 Migration Benutzerdaten

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Microsoft Office 365 Outlook 2010 Arbeitsplatz einrichten

ArchivCam / MotionCam

Einrichtung einer DFÜ Verbindung. Betriebssystem: Microsoft Windows 7

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

2 Darstellung von Zahlen und Zeichen

Kommunikationsdaten Spielberechtigungsliste. Speicherpfad/Dokument: _DFBnet_Kommunikationsdaten_Spielberechtigungsliste_Freigabemitteilung_4.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Microsoft Office 365 Benutzerkonten anlegen

Technical Note 0302 ewon

Microsoft Office 365 Domainbestätigung

Zahlensysteme Seite -1- Zahlensysteme

Technical Note 0301 ewon

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

ANLEITUNG GERÄTEREGISTRATION AN KRZ.SMK

Computerarithmetik ( )

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Nutzung Active Sync über Bluetooth mit dem VPA compact III

Persönliches Adressbuch

FAQ zur Antriebstechnik

Datensicherung. Beschreibung der Datensicherung

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Zahlensysteme: Oktal- und Hexadezimalsystem

Binäre Gleitkommazahlen

TELIS FINANZ Login App

FAQ zur Steuerungstechnik

Applikation zur Antriebstechnik

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Überprüfung der digital signierten E-Rechnung

OSD-Branchenprogramm. OSD-Version Was ist neu? EDV-Power für Holzverarbeiter

Technische Informatik - Eine Einführung

DOKUMENTATION VOGELZUCHT 2015 PLUS

Microsoft Office 365 Migration Benutzerdaten

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

ICS-Addin. Benutzerhandbuch. Version: 1.0

Technical Note 0102 Gateway

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Kapitel 3. Codierung von Text (ASCII-Code, Unicode)

Updateanleitung für SFirm 3.1

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Microsoft Office 365 Migration Benutzerdaten

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

S7-Hantierungsbausteine für R355, R6000 und R2700

Firmware-Update für das Blackberry Bold 9900

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

2. Negative Dualzahlen darstellen

GS-Programme 2015 Allgemeines Zentralupdate

Programmablauf für die Batch Wlan Komplettpakete mit Windows CE

Import SIMATIC-Variablen

Erstellen einer digitalen Signatur für Adobe-Formulare

Datenübernahme easyjob 3.0 zu easyjob 4.0

Übung RA, Kapitel 1.2

Installationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.

BSV Software Support Mobile Portal (SMP) Stand

INTERNETZUGANG WLAN-ROUTER ANLEITUNG FIRMWARE-UPDATE SIEMENS

Tevalo Handbuch v 1.1 vom

Workflow. Installationsanleitung

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

PC-Kaufmann Supportinformation - Proxy Konfiguration für Elster

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Zeichen bei Zahlen entschlüsseln

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Lizenzen auschecken. Was ist zu tun?

Datenblatt. Text-to-PDF Mailer 1.0 für Tobit David

Kapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

GRAF-SYTECO. Handbuch. Zeichensatzgenerator für AT-Geräte. Erstellt: November SYsteme TEchnischer COmmunikation

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Folgeanleitung für Fachlehrer

ACL-Skript: GDPdU-Datenübernahme

DeltaVision Computer Software Programmierung Internet Beratung Schulung

Mindestlohn. Beschreibung

Inbetriebnahme Profinet mit Engineer. Inhaltsverzeichnis. Verwendete Komponenten im Beispiel:

TeamSpeak3 Einrichten

ANLEITUNG GERÄTEREGISTRATION AN KRZ.SMK IOS

Hilfe zur Urlaubsplanung und Zeiterfassung

Grundlagen der Informatik (BSc) Übung Nr. 5

Neue Steuererklärung 2013 erstellen

-Inhalte an cobra übergeben

Lösungen: zu 1. a.) b.) c.)

Automatische Installation (wenn das SSO-Applet nicht vorhanden ist)! Abbildung 1:Auswahldialog für Installationslaufwerk

Nutzung VPA compact IV als USB Modem

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Registrierung am Elterninformationssysytem: ClaXss Infoline

Ausbildungsunterlage für die durchgängige Automatisierungslösung Totally Integrated Automation (T I A) MODUL A7 Test- und Online- Funktionen

Transkript:

Tool zur Steuerung & Regelung Toolsammlung von Konvertierungs-Bausteinen für Datentypumwandlungen Toolsammlung für Konvertierungs-Bausteine

Gewährleistung, Haftung und Support Hinweis Funktionsbausteine und Tools sind unverbindlich und erheben keinen Anspruch auf Vollständigkeit hinsichtlich Konfiguration und Ausstattung sowie jeglicher Eventualitäten. Funktionsbausteine und Tools stellen keine kundenspezifische Lösungen dar, sondern sollen lediglich Hilfestellung bieten bei typischen Aufgabenstellungen. Sie sind für den sachgemäßen Betrieb der beschriebenen Produkte selbst verantwortlich. Diese vorgestellten Beispiele entheben Sie nicht der Verpflichtung zu sicherem Umgang bei Anwendung, Installation, Betrieb und Wartung. Durch Nutzung dieser Funktionsbausteine und Tools innerhalb der Beispiele erkennen Sie an, dass Siemens über die beschriebene Haftungsregelung hinaus nicht für etwaige Schäden haftbar gemacht werden kann. Wir behalten uns das Recht vor, Änderungen an den Funktionsbausteinen und Tools jederzeit ohne Ankündigung durchzuführen. Bei Abweichungen zwischen den Vorschlägen in diesen Beispielen und anderen Siemens Publikationen, wie z.b. Katalogen, hat der Inhalt der anderen Dokumentation Vorrang. Gewährleistung, Haftung und Support Für die in diesem Dokument enthaltenen Informationen übernehmen wir keine Gewähr. Unsere Haftung, gleich aus welchem Rechtsgrund, für durch die Verwendung der in diesem Beispiel beschriebenen Funktionsbausteine und Tools, Hinweise, Programme, Projektierungs- und Leistungsdaten usw. verursachte Schäden ist ausgeschlossen, soweit nicht z.b. nach dem Produkthaftungsgesetz in Fällen des Vorsatzes, der groben Fahrlässigkeit, wegen der Verletzung des Lebens, des Körpers oder der Gesundheit, wegen einer Übernahme der Garantie für die Beschaffenheit einer Sache, wegen des arglistigen Verschweigens eines Mangels oder wegen Verletzung wesentlicher Vertragspflichten zwingend gehaftet wird. Der Schadensersatz wegen Verletzung wesentlicher Vertragspflichten ist jedoch auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht Vorsatz oder grobe Fahrlässigkeit vorliegt oder wegen der Verletzung des Lebens, des Körpers oder der Gesundheit zwingend gehaftet wird. Eine Änderung der Beweislast zu Ihrem Nachteil ist hiermit nicht verbunden. Copyright 2009 Siemens Industry Sector. Weitergabe oder Vervielfältigung der Funktionsbausteine und Tools oder Auszüge daraus sind nicht gestattet, soweit nicht ausdrücklich von Siemens Industry Sector zugestanden. Bei Fragen zu diesem Beitrag wenden Sie sich bitte über folgende E-Mail- Adresse an uns: online-support.automation@siemens.com V1.0 Ausgabe 02.02.2009 2/37

Vorwort Vorwort In diesem Beispiel stellen wir ihnen funktionsfähige und getestete Automatisierungskonfigurationen auf Basis von Siemens Industry Sector- Standardprodukten und individuellen Funktionsbausteinen oder Tools vor, die Ihnen eine einfache, schnelle und kostengünstige Realisierung von Automatisierungsaufgaben erlauben. Neben der Auflistung aller benötigten Soft- und Hardwarekomponenten und Beschreibung deren Verschaltung miteinander, beinhalten die Beispiele die getesteten Tools oder Funktionsbausteine. Damit können die hier beschriebenen Funktionalitäten innerhalb kurzer Zeit nachgestellt und so auch als Basis für individuelle Erweiterungen genutzt werden. Referenz zum Automation and Drives Service & Support Dieser Beitrag stammt aus dem Internet Serviceportal der Siemens AG, Industry Automation und Drives Technologies. Durch den folgenden Link gelangen Sie direkt zur Downloadseite dieses Dokuments. http://support.automation.siemens.com/ww/view/de/25629271 V1.0 Ausgabe 02.02.2009 3/37

Inhaltsverzeichnis Inhaltsverzeichnis 1 Konverter für Gleitpunkt- und Festpunktzahlen... 5 1.1 Konvertierung: 64-Bit-Gleitpunktzahl 32-Bit-Gleitpunktzahl... 5 1.2 Konvertierung von Gleitpunktzahlen in das S5- oder S7-Format... 11 1.3 Konvertierung einer Variable vom Datentyp DINT nach INT... 13 2 Konverter für String Datentypen... 14 2.1 Konvertieren einer Integer in ASCII-Zeichen... 14 2.2 Konvertieren von String-Variablen in ASCII-Textformat... 16 3 Konverter für Datum/Uhrzeit und Zeit-Operationen... 19 3.1 Konvertieren von Time nach DINT und umgekehrt... 19 3.2 Konvertierung DATE_AND_TIME in STRING und umgekehrt... 23 4 Konverter für diverse Umwandlungsfunktionen... 27 4.1 Konvertieren von Zahlen im Binär-Code Gray-Code... 27 4.2 Temperaturumrechnung von Grad Celsius Grad Fahrenheit bzw. von Grad Celsius Grad Kelvin... 32 5 Übersicht der Download Dateien... 36 6 Historie... 37 V1.0 Ausgabe 02.02.2009 4/37

Konverter für Gleitpunkt- und Festpunktzahlen 1 Konverter für Gleitpunkt- und Festpunktzahlen 1.1 Konvertierung: 64-Bit-Gleitpunktzahl 32-Bit-Gleitpunktzahl Beschreibung Sollen SIMATIC Steuerungen 64-Bit-Gleitpunktzahlen (DOUBLE) verarbeiten oder ausgeben, ist vorher eine Formatwandlung in den bzw. aus dem 32-Bit-Datentyp REAL erforderlich. Das Arbeiten mit DOUBLE in der SIMATIC setzt voraus, dass die Rechengenauigkeit der 32-Bit- Gleitpunktarithmetik für die gestellte Aufgabe ausreichend ist. Die beiden IEEE 754-Gleitpunktformate DOUBLE und REAL bestehen jeweils aus Vorzeichenbit, Exponent und Mantisse und stellen sich wie folgt dar: Abbildung 1-1 Das Programmbeispiel enthält eine STEP 7 Bibliothek mit den Funktionen 32TO64 (FC21) und 64TO32 (FC22), die im Organisationsbaustein OB1 aufgerufen werden. Mit der beigefügten Variablentabelle können Sie die Funktionen testen. Funktion 32TO64 Die Funktion 32TO64 (FC21) wandelt eine 32-Bit-Gleitpunktzahl in eine 64-Bit-Gleitpunktzahl. Das REAL-Vorzeichenbit wird in das höchstwertige DOUBLE-Bit übernommen. Zum REAL-Exponenten wird die Differenz = 896 addiert, um den DOUBLE-Exponenten zu erhalten. Die REAL-Mantisse wird linksbündig in die DOUBLE-Mantisse geschrieben, die nicht belegten niederwertigen Bits werden mit Nullen aufgefüllt. V1.0 Ausgabe 02.02.2009 5/37

Konverter für Gleitpunkt- und Festpunktzahlen Bausteinparameter der Funktion 32TO64 (FC21) Tabelle 1-1 Parameter Deklaration Datentyp Bereich Beschreibung float Input REAL E, M, D, L in DOUBLE zu wandelnde REAL- Zahl double Input POINTER M, D, L Zieladresse für den Wert im Format DOUBLE. Der Zielbereich muss 8 Bytes umfassen RET_VAL Return INT A, M, D, L Der Wert gibt Hinweise auf die Formatwandlung "float" "double": 0000 H : "float" ist eine normalisierte Zahl 1 "double" ist eine normalisierte Zahl 2 (Normalfall). Hinweis 1 normalisierte Zahl: Exponente = 1...254 2 normalisierte Zahl: Exponent = 1...2046 3 NULL: Exponent = 0 und Mantisse = 0 4 denormalisierte Zahl: Exponent = 0 und Mantisse > 0 5 ± Exponent = 255, Mantisse = 0 6 NaN: Exponent = 255, Mantisse = > 0 0001 H : "float" = NULL 3 oder eine denormalisierte Zahl 4 "double" = NULL 3. 0002 H : "float" = ± 5 oder keine gültige Gleitpunktzahl (NaN) 6 "double" = NULL 3. V1.0 Ausgabe 02.02.2009 6/37

Konverter für Gleitpunkt- und Festpunktzahlen Funktion 64TO32 Die Funktion 64TO32 (FC22) wandelt eine 64-Bit-Gleitpunktzahl in eine 32-Bit-Gleitpunktzahl. Das DOUBLE-Vorzeichenbit wird in das höchstwertige REAL-Bit übernommen. Vom DOUBLE-Exponenten wird die Differenz = 896 subtrahiert, um den REAL-Exponenten zu erhalten. Von der DOUBLE-Mantisse werden die 29 niederwertigen Bits abgeschnitten. Bausteinparameter der Funktion 64TO32 (FC22) Tabelle 1-2 Parameter Deklaration Datentyp Bereich Beschreibung double Input POINTER M, D, L Quelladresse für den Wert im Format DOUBLE. Der Quellbereich muss 8 Bytes umfassen float Output REAL A, M, D, L in REAL gewandelte DOUBLE-Zahl RET_VAL Return INT A, M, D, L Der Wert gibt Hinweise auf die Formatwandlung "double" "float": 0000 H : "double" ist eine normalisierte Zahl 1 "float" ist eine normalisierte Zahl 2 (Normalfall) 0001 H : "double" = NULL 3 oder eine denormalisierte Zahl 4 oder zu klein 5 für die Formatwandlung "float" =NULL 3 0002 H : "double" = zu groß für die Formatwandlung 6 oder = ± 7 oder keine gültige Gleitpunktzahl (NaN) 8 "real" = ±3,402823 10 38 (Maximum) Hinweis 1 normalisierte Zahl: Exponente = 1...2046 2 normalisierte Zahl: Exponent = 1...254 3 NULL: Exponent = 0 und Mantisse = 0 4 denormalisierte Zahl: Exponent = 0 und Mantisse > 0 5 zu klein: Exponent < 879 6 zu groß: Exponent > 1150 7 ± Exponent = 2047, Mantisse = 0 8 NaN: Exponent = 2047, Mantisse = > 0 V1.0 Ausgabe 02.02.2009 7/37

Konverter für Gleitpunkt- und Festpunktzahlen Beispiel Im Organisationsbaustein OB1 sind die Funktionen mit folgenden Parametern aufgerufen. Abbildung 1-2 Angabe des ersten Bytes notwendig. Rückkonvertierung in ein Merkerdoppelwort Die nächste Abbildung zeigt eine VAT-Tabelle mit der Umwandlung der 32-Bit-Gleitkommazahl (Realzahl =11,25) in eine 64-Bit-Gleitkommazahl und die Rückkonvertierung in das Merkerdoppelwort MD100. Mit Hilfe der nachfolgenden Formel kann die 64-Bit-Gleitkommazahl überprüft werden. Die Berechnung einer IEEEE 64-Bit-Gleitkommazahl aus dem Binär-Code lautet: Z = VZ 52 1023 ( 1) ( 1,0 + M 2 ) 2 E Legende Z := Dezimalzahl Vz := Vorzeichen E := Exponent M := Mantisse V1.0 Ausgabe 02.02.2009 8/37

Konverter für Gleitpunkt- und Festpunktzahlen Abbildung 1-3 Binär-Code als 64-Bit-Gleitkommazahl Zum besseren Verständnis wird die umgewandelte 64-Bit-Gleitpunktzahl (Realzahl 11,25) anhand des Binärmusters aus der VAT-Tabelle entschlüsselt und berechnet. Aufschlüsselung des Datendoppelwortes: DB10.DBD4 Vorzeichen (VZ) 2#0100_0000_0010_0110_1000_0000_0000_0000 Exponent (11Bits) Erster Teil der Mantisse (M) Aufschlüsselung des Datendoppelwortes: DB10.DBD8 0000_0000_0000_0000_0000_0000_0000_0000 Zweiter Teil der Mantisse (M) V1.0 Ausgabe 02.02.2009 9/37

Konverter für Gleitpunkt- und Festpunktzahlen Kontrollberechnung Anhand der aufgeschlüsselten Datenworte werden die Dezimalzahlen für die Berechnungsformel berechnet. Vorzeichen: VZ = 0 binär = 0 + Exponent: E = 2 10 + 2 1 = 1026 Mantisse: M = 2 50 + 2 49 + 2 47 = 1, 829587 15 Eingesetzt in die Formel ergibt dies: Z = Z VZ 52 1023 ( 1) ( 1,0 + M 2 ) 2 15 = 1,829587 2 52 0 ( 1) 1,0 + 1026 1023 = 11, 25 E 2 Die Gleitkommazahl 11,25 wird richtig im 64-Bit-Datenformat angezeigt! Technische Daten Tabelle 1-3 Baustein 32TO64 (FC21) Wandelt REAL in DOUBLE 64TO32 (FC22) Wandelt DOUBLE in REAL Daten Benötigte Lokaldaten : 20 Bytes Ladespeicherbedarf : 383 Bytes Arbeitsspeicherbedarf : 284 Bytes Benötigte Lokaldaten : 24 Bytes Ladespeicherbedarf : 386 Bytes Arbeitsspeicherbedarf : 286 Bytes Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. V1.0 Ausgabe 02.02.2009 10/37

Konverter für Gleitpunkt- und Festpunktzahlen 1.2 Konvertierung von Gleitpunktzahlen in das S5- oder S7-Format Beschreibung Die Gleitpunktzahlen in der S5-CPU besitzen ein anderes Format als in einer S7 CPU. Daher können Sie die Realzahlen nicht direkt aus der S5 Steuerung übernehmen. Die Zahlen müssen Sie zuerst in das S7-Format umwandeln. Dies gilt selbstverständlich auch für den umgekehrten Fall, wenn Sie S7-Gleitpunktwerte in Ihrer S5-CPU verwenden möchten. Das Programmbeispiel enthält ein STEP 7 Projekt mit den Funktionen S7ToS5-Floating (FC1) und S5ToS7-Floating (FC2), die im Organisationsbaustein OB1 aufgerufen werden. Mit der beigefügten Variablentabelle können Sie die Funktionen testen. Da sich der zulässige Zahlenbereich bei S7 (normiert) von dem der S5 unterscheidet, ergibt sich hier folgender zulässiger Datenbereich: Der Betrag der Gleitpunktzahl darf 1.175495e-38 nicht unterschreiten (S7-Grenze). Der Betrag der Gleitpunktzahl darf 1.701412e+38 nicht überschreiten (S5-Grenze). Funktion S7ToS5-Floating In der Funktion S7ToS5-Floating werden die Realzahlen im S7-Format in Gleitpunktzahlen im S5 -Format umgewandelt. Am Eingang "S7_R_Number" geben Sie die S7-Realzahl an. Die umgewandelte Gleitpunktzahl wird am Ausgangsparameter "S5_F_Number" ausgegeben. Bei Überschreitung der S5-Grenze wird das "Overflow"-Bit in der Funktion gesetzt. Überprüfen Sie mit diesem Bit die Gültigkeit der gewandelten REAL-Zahl. Bausteinparameter der Funktion S7ToS5-Floating (FC1) Tabelle 1-4 Parameter Deklaration Datentyp Bereich Beschreibung S7_R_Number Input REAL ED, AD, Realzahl im S7-Format MD, DBD, LD S5_F_Number Output DWORD AD, MD, Gleitpunktzahl im S5-Format Overflow Output BOOL A, M, D, L S7-Realzahl zu groß V1.0 Ausgabe 02.02.2009 11/37

Konverter für Gleitpunkt- und Festpunktzahlen Funktion S5ToS7-Floating In der Funktion S5ToS7-Floating werden die Gleitpunktzahlen im S5- Format in Realzahlen im S7-Format umgewandelt. Am Eingang "S5_F_Number" geben Sie die S5-Gleitpunktzahl an. Die dann umgewandelte Realzahl wird am Ausgangsparameter "S7_R_Number" ausgegeben. Bei Unterschreitung der S7-Grenze wird das "Underflow"-Bit in der Funktion gesetzt. Überprüfen Sie mit diesem Bit die Gültigkeit der gewandelten REAL-Zahl. Bausteinparameter der Funktion S5ToS7-Floating (FC2) Tabelle 1-5 Parameter Deklaration Datentyp Bereich Beschreibung S5_F_Number Input DWORD ED, AD, Gleitpunktzahl im S5-Format MD, DBD, LD S7_R_Number Output REAL AD, MD, Realzahl im S7-Format Underflow Output BOOL A, M, D, L S5-Gleitpunktzahl zu klein Technische Daten Tabelle 1-6 Baustein S7ToS5-Floating (FC1) Wandelt eine Gleitpunktzahl im S7-Format in das S5-Format S5ToS7-Floating (FC2) Wandelt eine Gleitpunktzahl im S5-Format in das S7-Format Daten Benötigte Lokaldaten : 10 Bytes Ladespeicherbedarf : 264 Bytes Arbeitsspeicherbedarf : 198 Bytes Benötigte Lokaldaten : 10 Bytes Ladespeicherbedarf : 320 Bytes Arbeitsspeicherbedarf : 246 Bytes Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. V1.0 Ausgabe 02.02.2009 12/37

Konverter für Gleitpunkt- und Festpunktzahlen 1.3 Konvertierung einer Variable vom Datentyp DINT nach INT Beschreibung Da es in der Programmiersprache AWL keinen expliziten Wandlungsbefehl von DINT nach INT gibt, steht Ihnen die nachfolgende Funktion in den Programmiersprachen KOP/AWL/FUP zur Verfügung. Die Funktion DINT_TO_INT wandelt eine 32-Bit-Ganzzahl in eine 16-Bit-Ganzzahl und zeigt in einer booleschen Variable an, ob die Wandlung erfolgreich war. Funktion DINT_TO_INT In der Funktion wird zuerst überprüft, ob der Eingangswert vom Datentyp DINT zwischen -32768 und 32767 liegt. Ist dies der Fall, wird das niederwertigste Wort des Eingangswertes geladen und auf den Ausgangswert vom Datentyp INT transferiert. Außerdem wird die Variable OK (Wandlung erfolgreich) auf 1 gesetzt. Liegt der Eingangswert außerhalb des gültigen Bereiches, wird auf dem Ausgangswert INTEGER der Wert 0 transferiert und zusätzlich die Variable OK auf 0 gesetzt. Bausteinparameter der Funktion DINT_TO_INT FC25 Tabelle 1-7 Parameter Deklaration Datentyp Bereich Beschreibung DOUBLE Input DINT ED, AD, MD, DBD, LD Übergabe einer Variablen vom Datentyp DINT INTEGER Output INT A, M, D, L Wandlungsergebnis vom Datentyp INT OK Output BOOL A, M, D, L Wandlung OK = '1' (Übergebener Bereich liegt zwischen -32768 und 32767) Technische Daten Tabelle 1-8 Baustein DINT_TO_INT (FC25) Wandelt eine 32-Bit-Ganzzahl in eine 16-Bit-Ganzzahl Daten Benötigte Lokaldaten : 0 Bytes Ladespeicherbedarf : 182 Bytes Arbeitsspeicherbedarf : 112 Bytes Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. V1.0 Ausgabe 02.02.2009 13/37

Konverter für String Datentypen 2 Konverter für String Datentypen 2.1 Konvertieren einer Integer in ASCII-Zeichen Beschreibung Eine Integerzahl wird in ASCII-Zeichen umgewandelt, ohne den Datentyp STRING" zu benutzen. Die Funktion INT_TO_ASCII zerlegt eine Integerzahl in einzelne ASCII-Zeichen. Funktion INT_TO_ASCII Die Funktion wandelt die zu zerlegende 16-Bit-Ganzzahl (Dezimalzahl) temporär in eine siebenstellige binär codierte Dezimalzahl (BCD-Zahl) um und addiert einen Offset von 30hex (entspricht der Ziffer 0 in ASCII) zur Darstellung der einzelnen Zahlen (Einer-Zehner-Hunderter-Stelle...) im ASCII-Format. Das Vorzeichen wird ebenfalls ausgewertet und als ASCII-Zeichen + oder - im Zieldatenbereich an erster Stelle eingetragen. Der Zielbereich im Datenbaustein muss als ARRAY of CHAR mit einer Länge von 6 deklariert werden. Bausteinparameter der Funktion INT_TO_ASCII (FC1) Tabelle 2-1 Parameter Deklaration Datentyp Bereich Beschreibung VALUE Input INT E, A, M, Die zu zerlegende Integerzahl D, L DB_NO Input BLOCK_DB DB Zieldatenbaustein, in dem die ASCII-Zeichen gespeichert werden START_ADD Input INT E, A, M, D, L Zieladresse im Datenbaustein für die ASCII-Zeichen V1.0 Ausgabe 02.02.2009 14/37

Konverter für String Datentypen Beispiel Die Funktion FC1 wird im Organisationsbaustein OB1 mit folgenden Parametern aufgerufen: CALL "INT_TO_ASCII" VALUE DB_NO :="ivalue" :=DB1 START_ADD:=0 Im beigefügten S7-Programm finden Sie den Datenbaustein DB1 mit einem Array vom Typ Character mit der Länge 6. Ab der Zieladresse 0 werden nun die einzelnen Ziffern der Integerzahl, die der Variable ivalue (MW0) in der Variablentabelle VAT_1 übergeben wird, als ASCII-Zeichen eingetragen. Abbildung 2-1 Zu konvertierende Ziffer und das resultierende Ergebnis im Datenbaustein V1.0 Ausgabe 02.02.2009 15/37

Konverter für String Datentypen Technische Daten Tabelle 2-2 Baustein INT_TO_ASCII (FC1) Wandelt eine 16-Bit-Ganzzahl in ASCII- Zeichen um Daten Benötigte Lokaldaten : 10 Bytes Ladespeicherbedarf : 258 Bytes Arbeitsspeicherbedarf : 186 Bytes Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. 2.2 Konvertieren von String-Variablen in ASCII-Textformat Beschreibung Ein Feld mit String-Variablen wird komplett in ASCII-Textformat umgewandelt. Hierbei werden die ersten beiden Bytes (Längenangaben des Strings) ebenfalls in ASCII-Textzeichen umgewandelt. Dies ist für bestimmte Anwendungen erforderlich, z.b. wenn eine STRING Variable direkt über ein ASCII- oder FTP-Protokoll auf einem Drucker oder an einem PC Terminal auszugeben werden soll. Die Funktion ersetzt deshalb die ersten beiden Bytes mit dem ASCII-Code für Zeilenumbruch (0D Hex) und Zeilenvorschub (0A Hex). Danach enthält die String-Variable nur ASCII-Textzeichen. In einer Variablen vom Datentyp STRING kann eine ASCII-Zeichenkette mit maximal 254 Zeichen gespeichert werden. Die Länge in Byte ergibt sich aus der Anzahl der Zeichen in der Zeichenkette "n" und 2 Byte für den Kopf. Die nachfolgende Tabelle zeigt die Reihenfolge der Bytes bei der Angabe des Datentyps STRING[4] mit dem Ausgangswert 'AB'. (Darstellung der Werte in Hex-Format). Tabelle 2-3 Aufbau eines Strings im Hex-Format Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 4 2 41 42 0 0 Dabei haben die Bytes folgende Bedeutung: Byte 0: Maximale Länge der Zeichenkette Byte 1: Tatsächliche Länge der Zeichenkette V1.0 Ausgabe 02.02.2009 16/37

Konverter für String Datentypen Byte 2: ASCII-Wert für 'A' Byte 3: ASCII-Wert für 'B' Byte 4: nicht belegt Byte 5: nicht belegt Hinweis Die String-Funktionen (z.b. aus der IEC-Bibliothek) können mit den konvertierten Variablen nicht mehr angewendet werden! Funktion RPGEN Im Organisationsbaustein OB 1 wird über einen Flankenmerker (one-shot trigger) die Funktion RPGEN" aufgerufen. Die Funktion ersetzt die Kopfinformationen in Byte 0 und Byte 1 mit dem ASCII-Code für Carrige Return" (0D HEX) und Line Feed" (0A HEX). Die Zeichenketten sind im Datenbaustein DB 1 in einem Feld von String- Variablen mit gleicher Länge gespeichert. Der beispielhaft erstellte Datenbaustein DB 1 enthält 35 Zeichenketten, jede Zeichenkette hat eine Länge von 76 Zeichen. Nachdem die Funktion einmal aufgerufen wurde, sind alle Kopf- Informationen mit 0D" und 0A" ersetzt. Ein erneutes Aufrufen der Funktion RPGEN" bewirkt im Datenbaustein keine Veränderung mehr. Bausteinparameter der Funktion RPGEN (FC1) Tabelle 2-4 Parameter Deklaration Datentyp Bereich Beschreibung DB_NO Input INT E, A, M, D, L STR_LEN Input INT E, A, M, D, L NO_STR Input INT E, A, M, D, L Nummer des Datenblocks der die Zeichenketten enthält, die konvertiert werden sollen (im Beispiel DB1") Länge der Zeichenkette (wie bei der String-Variablen definiert, im Beispiel 76 Zeichen) Anzahl der Zeichenketten (wie beim Feld definiert, im Beispiel 35") V1.0 Ausgabe 02.02.2009 17/37

Konverter für String Datentypen Beispiel Abbildung 2-2 Anzahl der Zeichen je Stringvariable. Muss mit der Deklaration des Datenbausteins übereinstimmen. Hinweis Anzahl der Stringvariablen die umgewandelt werden sollen Zum Test dieser Funktion steht Ihnen eine VAT-Tabelle zur Verfügung. Technische Daten Tabelle 2-5 Baustein RPGEN (FC1) Wandelt eine String-Variable in ASCII-Text Format um (inkl. der Längeninformationen). Daten Benötigte Lokaldaten : 12 Bytes Ladespeicherbedarf : 210 Bytes Arbeitsspeicherbedarf : 142 Bytes Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. V1.0 Ausgabe 02.02.2009 18/37

Konverter für Datum/Uhrzeit und Zeit-Operationen 3 Konverter für Datum/Uhrzeit und Zeit-Operationen 3.1 Konvertieren von Time nach DINT und umgekehrt Beschreibung Zur Umrechnung des Datentyps TIME in DINT-Werte und umgekehrt stehen Ihnen die Funktionen TIME_TO_DINT und DINT_TO_TIME zur Verfügung. Die nachfolgenden vier Tabellen zeigen die Berechnungsformeln, um den Eingabewert (in Millisekunden) in Tage, Stunden, Minuten Sekunden, und Millisekunden umzurechnen. Tabelle 3-1 Umrechnungen für die Tage Variable Bezeichnung Umrechnung Tage Tage Tage = TIME_Wert / 86400000 ms 1 Tag = 86400000 ms TageinStd Tage in Stunden TageinStd = Tage * 24 h TageinMin Tage in Minuten TageinMin = Tage * 1440 min. TageinSek Tage in Sekunden TageinSek = Tage * 86400 sec. TageinMSek Tage in Millisekunden TageinMSek = Tage * 86400000 ms Tabelle 3-2 Umrechnungen für die Stunden Variable Bezeichnung Umrechnung Stunden Stunden aus Stunden = (TIME_Wert / 3600000) - TageinStd TIME_Wert StdinMin Stunden in Minuten StdinMin = Stunden * 60 min. StdinSek Stunden in StdinSek = Stunden * 3600 sec. Sekunden StdinMSek Stunden in Millisekunden StdinMSek = Stunden * 3600000 ms Tabelle 3-3 Umrechnungen für die Minuten Variable Bezeichnung Umrechnung Minuten Minuten aus TIME_Wert Minuten = (TIME_Wert / 60000) - TageinMin - StdinMin MininSek Minute in Sekunden MininSek = Minuten * 60 sec. MininMSek Minute in MininMSek = Minuten * 60000 ms Millisekunden V1.0 Ausgabe 02.02.2009 19/37

Konverter für Datum/Uhrzeit und Zeit-Operationen Tabelle 3-4 Umrechnungen für die Sekunden und Millisekunden Variable Bezeichnung Umrechnung Sekunden SekinMSek Millisekunden Sekunden aus TIME_Wert Minuten in Millisekunden Millisekunden aus TIME_Wert Sekunden = (TIME_Wert / 1000) - TageinSek - StdinSek MininSek SekinMSek = Sekunden * 1000 ms Millisekunden = TIME_Wert - TageinMSek - StdinMSek - SekinMSek Funktion TIME_TO_DINT Die Funktion TIME_TO_DINT konvertiert eine Variable vom Datentyp TIME in den Datentyp DINT, wobei die einzelnen Werte (Tage, Stunden, Minuten, Sekunden, Millisekunden) jeweils als einzelne Variable zur Verfügung gestellt werden. Der Inhalt der Variable vom Typ TIME" wird als Millisekunden interpretiert und als 32-Bit-Festpunktzahl mit Vorzeichen abgelegt. Um den Datentyp TIME" (Anzahl der Millisekunden) in die einzelnen DINT Variablen (Tage, Stunden, Minuten, Sekunden, Millisekunden) umzuwandeln, werden die oben aufgelisteten Berechnungsformeln verwendet. Bausteinparameter der Funktion TIME_TO_DINT (FC12) Tabelle 3-5 Parameter Deklaration Datentyp Bereich Beschreibung TIME_WERT Input TIME (IEC-Zeit) ED, AD, MD, TAGE Output DINT AD, MD, STUNDEN Output DINT AD, MD, MINUTEN Output DINT AD, MD, SEKUNDEN Output DINT AD, MD, MILLISEKUNDEN Output DINT AD, MD, Zeit die konvertiert werden soll. Beispiel: T#12d13h14m25s100ms Wert in Tage Wert in Stunden Wert in Minuten Wert in Sekunden Wert in Millisekunden Funktion DINT_TO_TIME Die Funktion DINT_TO_TIME konvertiert die Variablen mit dem Inhalt von Tagen, Stunden, Minuten, Sekunden und Millisekunden zurück in eine Variable mit dem Datentyp Time. Hierbei werden die Werte zuerst in V1.0 Ausgabe 02.02.2009 20/37

Konverter für Datum/Uhrzeit und Zeit-Operationen Millisekunden umgerechnet, dann addiert und anschießend an den Ausgangsparameter TIME_WERT übergeben. Das Ergebnis ist eine 32-Bit-Festpunktzahl mit Vorzeichen, das in der Datenansicht mit dem Anzeigeformat Zeit wie folgt angezeigt wird: T#12d13h14m25s100ms. Bausteinparameter der Funktion DINT_TO_TIME (FC11) Tabelle 3-6 Parameter Deklaration Datentyp Bereich Beschreibung TAGE Input DINT ED, AD, MD, STUNDEN Input DINT ED, AD, MD, MINUTEN Input DINT ED, AD, MD, SEKUNDEN Input DINT ED, AD, MD, MILLISEKUNDEN Input DINT ED, AD, MD, TIME_WERT Output TIME (IEC-Zeit) Beispiel AD, MD, Wert in Tage Wert in Stunden Wert in Minuten Wert in Sekunden Wert in Millisekunden Konvertierte Zahl mit dem Datentyp TIME Das Beispiel enthält ein STEP 7 Projekt mit den oben aufgeführten Funktionen. Der Aufruf erfolgt über den FC10 im Organisationsbaustein OB1. Für den Test der Funktionen steht eine VAT-Tabelle zur Verfügung. In der nachfolgenden Tabelle sind die wichtigsten Schritte zum Testen der Funktion aufgelistet. Tabelle 3-7 Schritt Aktion / Ereignis 1. Laden Sie die komplette Station in die CPU oder in die S7-PLCSIM 2. Öffnen Sie die VAT-Tabelle VAT1 im Modus Variable beobachten 3. Geben Sie einen Eingabewert im Format TIME ein und aktivieren Sie den Steuerwert für die Umwandlung von TIME nach DINT. Siehe Punkt 1 Das Ergebnis der Umwandlung sehen Sie unter Punkt 2 4. Geben Sie Werte für die Tage, Stunden, Minuten, Sekunden und V1.0 Ausgabe 02.02.2009 21/37

Konverter für Datum/Uhrzeit und Zeit-Operationen Schritt Aktion / Ereignis Millisekunden ein, und aktivieren Sie den Steuerwert für die Umwandlung von DINT nach TIME. Siehe Punkt 3 Das Ergebnis der Umwandlung sehen Sie unter Punkt 4 Abbildung 3-1 2 1 3 4 Technische Daten Tabelle 3-8 Baustein TIME_TO_DINT (FC12) Wandelt eine Variable mit dem Datentyp TIME in fünf Variablen für Tage, Stunden, Minuten, Sekunden und Millisekunden DINT_TO_TIME (FC11) Umkehrung der oben genannten Funktion. Aus fünf DINT-Variablen wird eine Variable mit dem Datentyp TIME gebildet Daten Benötigte Lokaldaten : 40 Bytes Ladespeicherbedarf : 408 Bytes Arbeitsspeicherbedarf : 318 Bytes Benötigte Lokaldaten : 16 Bytes Ladespeicherbedarf : 204 Bytes Arbeitsspeicherbedarf : 132 Bytes Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. V1.0 Ausgabe 02.02.2009 22/37

Konverter für Datum/Uhrzeit und Zeit-Operationen 3.2 Konvertierung DATE_AND_TIME in STRING und umgekehrt Beschreibung Die Funktion DT_TO_STRING konvertiert eine DATE_AND_TIME Variable in einen STRING mit einer Datum- und Uhrzeit-Zeichenfolge. Die Funktion STRING_TO_DT konvertiert den STRING mit der Datum und Uhrzeit-Zeichenfolge wieder in eine Variable mit dem zusammengesetzten Datentyp DATE_AND_TIME. Das Beispiel enthält ein STEP 7 Projekt mit den oben aufgeführten Funktionen. Im Beispiel wird die temporäre Lokaldatenvariable OB1_DATE_TIME im Organisationsbaustein OB1eingelesen und in eine STRING-Variable umgewandelt. Anschließend erfolgt die Rück- Konvertierung. Für den Test der Funktionen steht eine VAT-Tabelle zur Verfügung. Um eine DATE_AND_TIME-Variable als Datum und Uhrzeit Zeichenfolge (STRING) darzustellen, werden die einzelnen Bytes der DATE_AND_TIME-Variable eingelesen, in einzelne Ziffern im ASCII-Code umgewandelt und anschließend in den String kopiert. Datum und Uhrzeit werden mit dem Datentyp DATE_AND_TIME in 8 Bytes (BCD-Format) gespeichert. Die nachfolgende Tabelle zeigt den Inhalt und den Gültigkeitsbereich dieses Datentyps an. Tabelle 3-9 Byte Inhalt Bereich 0 Jahr "JJ" 1990...1999 90...99 2000...2089 00...89 1 Monat "MM" 01...12 2 Tag "DD" 1...31 3 Stunde "hh" 0...23 4 Minute "mm" 0...59 5 Sekunde "ss" 0...59 6 Ersten zwei Stellen der Millisekunden 00...99 "cc." (die beiden höchstwertigen Ziffern) 7 Letzte Stelle der Millisekunden "..c" 0...9 (4MSB) 7 Wochentag (4LSB) 1...7 (1 = Sonntag) Legende: MSB: Most Significant Bit LSB: Least Significant Bit V1.0 Ausgabe 02.02.2009 23/37

Konverter für Datum/Uhrzeit und Zeit-Operationen Funktion DT_TO_STRING Die Funktion DT_TO_STRING wandelt die DATE_AND_TIME-Variable in eine STRING-Variable mit folgendem Format: DD/MM/JJ hh:mm:ss.ccc Die Trennzeichen in der Datumsdarstellung werden über den Bausteinparameter w eingestellt (frei wählbar). Der erzeugte String hat eine Länge von 23 Byte. Bei der Deklaration der STRING-Variablen wird in Byte 0 automatisch die deklarierte Länge, sowie in Byte 1 die aktuelle Länge des Strings hinterlegt. Ab Byte 2 werden die eigentlichen STRING-Elemente gespeichert. Liegt die STRING-Variable im Lokaldatenbereich, muss vor dem Aufruf der Funktion das Byte 0 (Deklarationslänge des Strings) initialisiert werden. Bausteinparameter der Funktion DT_TO_STRING (FC90) Tabelle 3-10 Parameter Deklaration Datentyp Bereich Beschreibung X_DATE_TIME Input DATE_AND_TIME P# DT-Variable W Input CHAR Trennzeichen zwischen Datumsangabe Y_DT_STRING Output STRING P# STRING-Variable mit 21 Elementen Funktion STRING_TO_DT Die Funktion STRING_TO_DT konvertiert die STRING-Zeichenkette mit dem Format DD/MM/JJ hh:mm:ss.ccc in eine Variable mit dem Datentyp DATE_AND_TIME. Liegt die STRING-Variable im Lokaldatenbereich, muss vor dem Aufruf der Funktion das Byte 0 (Deklarationslänge des Strings) initialisiert werden. Bausteinparameter der Funktion STRING_TO_DT (FC91) Tabelle 3-11 Parameter Deklaration Datentyp Bereich Beschreibung X_DT_STRING Input STRING P# STRING-Variable mit 21 Elementen Y_DATE_TIME Output DATE_AND_TIME P# DT-Variable V1.0 Ausgabe 02.02.2009 24/37

Konverter für Datum/Uhrzeit und Zeit-Operationen Beispiel Abbildung 3-2 Die nachfolgende VAT-Tabelle zeigt die Ergebnisse der Konvertierung für das Datum und die Uhrzeit vom 24/05/2007 14:05:25.334. Hinweis Die Angabe des Wochentages wird nicht im STRING und bei der Rückkonvertierung berücksichtigt. V1.0 Ausgabe 02.02.2009 25/37

Konverter für Datum/Uhrzeit und Zeit-Operationen Technische Daten Tabelle 3-12 Baustein TIME_TO_DINT (FC90) Wandelt eine Variable mit dem Datentyp DATE_AND_TIME in eine STRING-Variable DINT_TO_TIME (FC91) Rückkonvertierung Wandelt die STRING-Variable in eine Variable mit dem Datentyp DATE_AND_TIME Daten Benötigte Lokaldaten : 16 Bytes Ladespeicherbedarf : 450 Bytes Arbeitsspeicherbedarf : 370 Bytes Benötigte Lokaldaten : 16 Bytes Ladespeicherbedarf : 412 Bytes Arbeitsspeicherbedarf : 334 Bytes Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. V1.0 Ausgabe 02.02.2009 26/37

Konverter für diverse Umwandlungsfunktionen 4 Konverter für diverse Umwandlungsfunktionen 4.1 Konvertieren von Zahlen im Binär-Code Gray-Code Beschreibung Der Gray-Code ist eine symmetrische Art einen Code zu generieren, bei dem sich benachbarte Zahlen nur in einem einzigen Bit unterscheiden. Er dient als Kodierungsverfahren zur robusten Übertragung digitaler Größen über analoge Signalwege (z.b. Temperatursensoren, Wegmessung). Für die Umrechnung von Binär-Code nach Gray-Code und umgekehrt stehen sechs Funktionen zur Verfügung. von Binär-Code nach Gray-Code - FC103 für 8-Bit Gray-Code (Byte) - FC104 für 16-Bit Gray-Code (Word) - FC105 für 32-Bit Gray-Code (DWord) von Gray-Code nach Binär-Code - FC100 8-Bit Gray-Code nach 8 Bit binär (Byte) - FC101 16-Bit Gray-Code nach 16 Bit binär (Word) - FC102 32-Bit Gray-Code nach 32 Bit binär (DWord) Das Beispiel enthält eine Bibliothek mit den oben aufgeführten Funktionen, eine VAT-Tabelle und ein Organisationsbaustein OB1 zum Testen der Funktionen FC103 und FC100. 4-Bit-Gray-Code Darstellung Die nachfolgende Tabelle zeigt die Binärwerte und den Gray-Code der Dezimalzahlen 0 bis 15. Der Gray-Code ist eine andere Darstellungsform des Binär-Codes. Seine Grundlage besteht darin, dass sich zwei benachbarte Gray-Zahlen in nicht mehr als einem Bit (also 0 oder 1) unterscheiden dürfen. Tabelle 4-1 Dezimalzahl Binär-Code Gray-Code 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 V1.0 Ausgabe 02.02.2009 27/37

Konverter für diverse Umwandlungsfunktionen Dezimalzahl Binär-Code Gray-Code 7 0111 0100 8 1000 1100 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 1110 1001 15 1111 1000 Funktionen Binär-Code nach Gray-Code Die nachfolgenden Funktionen wandeln binär-codierte Zahlen in graycodierte Zahlen um. Dabei unterscheiden sich die Funktionen lediglich in der Codebreite (8, 16 oder 32 Bit), die sie konvertieren. Funktion BINAER_to_GRAY_BYTE (FC103) Funktion BINAER_to_GRAY_WORD (FC104) Funktion BINAER_to_GRAY_DWORD (FC105) Für die Umrechnung wurde folgende Umrechnungsformel verwendet: G ( n) = B( n) XOR B( n +1) Legende: G = Bit des Gray-Codes B = Bit des Binär-Codes n = Nummer des Bits Bausteinparameter der Funktionen FC103, FC104 und FC105 Tabelle 4-2 Parameter Deklaration Datentyp Bereich Beschreibung BINAERCODE INPUT FC103: BYTE FC104: WORD FC105: DWORD GRAYCODE OUTPUT FC103: BYTE FC104: WORD FC105: DWORD E, A, M, D, L A, M, D, L Binär-Code codierte Zahl Gray-Code codierte Zahl V1.0 Ausgabe 02.02.2009 28/37

Konverter für diverse Umwandlungsfunktionen Funktionen Gray-Code nach Binär-Code Die nachfolgenden Funktion wandeln gray-codierte Zahlen in binär-codierte Zahlen um. Der einzige Unterschied zwischen den Funktionen besteht darin, dass die Variablen ein unterschiedliches Format haben. Funktion GRAY_to_BINAER _BYTE (FC100) Funktion GRAY_to_BINAER _WORD (FC101) Funktion GRAY_to_BINAER _DWORD (FC102) Für die Umrechnung wurde folgende Umrechnungsformel verwendet: Zuerst wird das höchstwertige Bit berechnet: ( n) G( n) XOR 0 B = Die folgenden Bits werden wie folgt berechnet: ( n 1) = G( n ) XOR B( n) B 1 B B ( n 2) = G( n 2) XOR B( n 1) ( n 3) = G( n 3) XOR B( n 2) usw. Die Formel für die Berechnung der Bits von (n-1) bis1 lautet: B ( n x) = G( n x) XOR B( n ( x 1)) Legende: x = Zahl von 1 bis (n-1) G = Bit des Gray-Codes B = Bit des Binär-Codes n = Nummer des Bits V1.0 Ausgabe 02.02.2009 29/37

Konverter für diverse Umwandlungsfunktionen Bausteinparameter der Funktionen FC100, FC101 und FC102 Tabelle 4-3 Parameter Deklaration Datentyp Bereich Beschreibung GRAYCODE INPUT FC100: BYTE FC101: WORD FC102: DWORD BINAERCODE OUTPUT FC100: BYTE FC101: WORD FC102: DWORD E, A, M, D, L A, M, D, L Gray-Code codierte Zahl Binär-Code codierte Zahl Beispiel Tabelle 4-4 Schritt In der nachfolgenden Tabelle sind die wichtigsten Schritte zum Testen der Funktionen aufgelistet. Im Organisationsbaustein OB1 sind folgende Funktionen im Netzwerk 1 aufgerufen: Funktion BINAER_to_GRAY_BYTE (FC103) Funktion GRAY_to_BINAER _BYTE (FC100) Aktion / Ereignis 1. Erstellen Sie ein neues STEP 7 Projekt und kopieren Sie aus der Bibliothek alle Bausteine und Objekte in den Programm-Ordner. 2. Laden Sie die komplette Station in die CPU oder in die S7-PLCSIM 3. Öffnen Sie die VAT-Tabelle VAT1 im Modus Variable beobachten 4. Geben Sie den Eingabewert 7 ein und aktivieren Sie den Steuerwert für die Umwandlung vom Binär-Code zum Gray-Code. Das Ergebnis der Umwandlung sehen Sie unter Punkt 1 5. Geben Sie den Gray-Code 2#0000_1001 (Dezimal 14) ein und aktivieren Sie den Steuerwert für die Umwandlung vom Gray-Code zum Binär-Code Das Ergebnis der Umwandlung sehen Sie unter Punkt 2 V1.0 Ausgabe 02.02.2009 30/37

Konverter für diverse Umwandlungsfunktionen Abbildung 4-1 Eingabewert Ergebnis im Gray-Code 1 Eingabewert im Graycode (14 dez ) Technische Daten Tabelle 4-5 Baustein Daten Funktionen: Binär-Code nach Gray-Code Benötigte Lokaldaten : 0 Bytes BINAER_to_GRAY_BYTE (FC103) Ladespeicherbedarf : 108 Bytes BINAER_to_GRAY_WORD (FC104) Arbeitsspeicherbedarf : 54 Bytes BINAER_to_GRAY_DWORD (FC105) Funktion GRAY_to_BINAER _BYTE (FC100) Benötigte Lokaldaten : 4 Bytes Ladespeicherbedarf : 174 Bytes Arbeitsspeicherbedarf : 112 Bytes Funktion GRAY_to_BINAER _WORD (FC101) Benötigte Lokaldaten : 6 Bytes Ladespeicherbedarf : 174 Bytes Arbeitsspeicherbedarf : 112 Bytes Funktion GRAY_to_BINAER _DWORD (FC102) Benötigte Lokaldaten : 10 Bytes Ladespeicherbedarf : 174 Bytes Arbeitsspeicherbedarf : 112 Bytes Ergebnis im Binär-Code 2 Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. V1.0 Ausgabe 02.02.2009 31/37

Konverter für diverse Umwandlungsfunktionen 4.2 Temperaturumrechnung von Grad Celsius Grad Fahrenheit bzw. von Grad Celsius Grad Kelvin Beschreibung Für die Umrechnung von Temperaturwerten in verschiedene Einheiten stehen vier Funktionen zur Verfügung. Umrechnung von Grad Celsius nach Grad Fahrenheit Umrechnung von Grad Fahrenheit nach Grad Celsius Umrechnung von Kelvin nach Grad Celsius Umrechnung von Grad Celsius nach Kelvin Das Beispiel enthält ein STEP 7 Projekt mit den oben aufgeführten Funktionen. Der Aufruf erfolgt im Organisationsbaustein OB1. Für den Test der Funktionen steht eine VAT-Tabelle zur Verfügung. Funktion Grad Celsius nach Grad Fahrenheit (Tmp_C_F) Zur Festlegung des Nullpunktes der Fahrenheit Temperaturskala wurde ein Kältegemisch aus Wasser, Eis und Salmiak verwendet. Der Gefrierpunkt des Wassers liegt bei dieser Skala bei 32 Grad Fahrenheit, der Siedepunkt des Wassers bei 212 Grad Fahrenheit. Zwischen dem Gefrier- und dem Siedepunkt des Wassers liegen also 180 Grad, während auf der Celsius Temperaturskala diese Temperaturdifferenz in 100 Teile geteilt ist. Daraus ergibt sich folgende Umrechnungsformel: Grad Celsius nach Grad Fahrenheit: F = ( C + 32) 9 5 Bausteinparameter der Funktion Tmp_C_F (FC1) Tabelle 4-6 Parameter Deklaration Datentyp Bereich Beschreibung Tmp_Celsius INPUT REAL ED, AD, MD, Tmp_Fahrenheit OUTPUT REAL AD, MD, Temperatur in Grad Celsius als Realzahl Temperatur in Grad Fahrenheit als Realzahl V1.0 Ausgabe 02.02.2009 32/37

Konverter für diverse Umwandlungsfunktionen Funktion Grad Fahrenheit nach Grad Celsius (Tmp_F_C) Für die Rückkonvertierung von Grad Fahrenheit nach Grad Celsius wird folgende Umrechnungsformel verwendet: Grad Fahrenheit nach Grad Celsius: C = ( F 32) 5 9 Bausteinparameter der Funktion Tmp_F_C (FC2) Tabelle 4-7 Parameter Tmp_Fahrenheit Tmp_Celsius Deklaration Datentyp Bereich Beschreibung INPUT REAL ED, AD, MD, OUTPUT REAL AD, MD, Temperatur in Grad Fahrenheit als Realzahl Temperatur in Grad Celsius als Realzahl Funktion Kelvin nach Grad Celsius (Tmp_K_C) Kelvin ist die SI-Einheit für die Temperatur. Die Temperatureinheiten Kelvin und Celsius unterscheiden sich durch die Festlegung des Nullpunktes. 0 K bezeichnet den absoluten Nullpunkt der Temperatur bei minus 273,15 C, an dem auch auf atomarer Ebene keinerlei thermische Bewegung stattfindet. Die Celsius-Skala bezieht sich auf den Schmelzpunkt des Eises als Nullpunkt. Daraus ergibt sich folgende Umrechnungsformel: Tmp _ Celsius [ C] = Tmp _ Kelvin [ K] 273, 15 Bausteinparameter der Funktion Tmp_K_C (FC3) Tabelle 4-8 Parameter Deklaration Datentyp Bereich Beschreibung Tmp_Kelvin INPUT REAL ED, AD, MD, Tmp_Celsius OUTPUT REAL AD, MD, Temperatur in Kelvin als Realzahl Temperatur in Grad Celsius als Realzahl V1.0 Ausgabe 02.02.2009 33/37

Konverter für diverse Umwandlungsfunktionen Funktion Grad Celsius nach Kelvin (Tmp_C_K) Für die Rückkonvertierung von Grad Celsius nach Kelvin wird folgende Umrechnungsformel verwendet: [ K] = Tmp _ Celsius [ C] 273, 15 Tmp _ Kelvin + Bausteinparameter der Funktion Tmp_C_K (FC4) Tabelle 4-9 Parameter Deklaration Datentyp Bereich Beschreibung Tmp_Celsius INPUT REAL ED, AD, MD, Tmp_Kelvin OUTPUT REAL AD, MD, Temperatur in Grad Celsius als Realzahl Temperatur in Kelvin als Realzahl Beispiel Abbildung 4-2 Mit der beigefügten VAT-Tabelle testen Sie die verschiedenen Umrechungsfunktionen. V1.0 Ausgabe 02.02.2009 34/37

Konverter für diverse Umwandlungsfunktionen Technische Daten Tabelle 4-10 Baustein Funktion Tmp_C_F Umrechnung von Grad Celsius nach Grad Fahrenheit Funktion Tmp_F_C Umrechnung von Grad Fahrenheit nach Grad Celsius Funktion Tmp_K_C Umrechnung von Kelvin nach Grad Celsius Funktion Tmp_C_K Umrechnung von Grad Celsius nach Kelvin Daten Benötigte Lokaldaten : 0 Bytes Ladespeicherbedarf : 124 Bytes Arbeitsspeicherbedarf : 70 Bytes Benötigte Lokaldaten : 0 Bytes Ladespeicherbedarf : 124 Bytes Arbeitsspeicherbedarf : 70 Bytes Benötigte Lokaldaten : 0 Bytes Ladespeicherbedarf : 108 Bytes Arbeitsspeicherbedarf : 54 Bytes Benötigte Lokaldaten : 0 Bytes Ladespeicherbedarf : 108 Bytes Arbeitsspeicherbedarf : 54 Bytes Die zugehörige Download-Datei finden Sie im Kapitel Übersicht der Download-Dateien. V1.0 Ausgabe 02.02.2009 35/37

Übersicht der Download Dateien 5 Übersicht der Download Dateien Im Download File 25629271_Converter_V10.ZIP finden Sie die nachfolgend aufgeführten ZIP-Daten für die jeweiligen Konverterbausteine. Tabelle 5-1 Lfd. Nr. Konverter ZIP-Datei 1. Konvertierung: double_real.zip 64-Bit-Gleitpunktzahl 32-Bit-Gleitpunktzahl 2. Konvertierung von Gleitpunktzahlen in das S5- oder S7-Format S5_S7-Floating-Converter.zip 3. Konvertierung einer Variable vom Datentyp DINT DINT_to_INT.zip nach INT 4. Konvertieren einer Integer in ASCII-Zeichen INTEGER_to_ASCII.zip 5. Konvertieren einer String-Variablen in ASCII Textformat STRING_to_ASCII-Text.zip inklusive der zwei Bytes für die Längen- angabe 6. Konvertierung einer Variable vom Datentyp TIME in TIME_to_DINT.zip fünf DINT-Variablen mit den Werten für Tage, Stunden, Minuten, Sekunden und Millisekunden Rückkonvertierung von DINT-Variablen in den Datentyp TIME. Aus fünf DINT-Variablen wird eine Variable mit dem Datentyp TIME gebildet 7. Konvertiert eine Variable vom Datentyp DT_to_STRING.zip DATE_AND_TIME in eine STRING-Variable Rückkonvertierung einer STRING-Variable in den Datentyp DATE_AND_TIME 8. Konvertieren von Zahlen im Binär-Code Gray- Gray_code.zip Code 9. Temperaturumrechnung in verschiedene Einheiten Temperatur.zip (Grad Celsius, Grad Fahrenheit, Kelvin) V1.0 Ausgabe 02.02.2009 36/37

Historie 6 Historie Tabelle 6-1 Historie Version Datum Änderung V1.0 02.02.2009 Erste Ausgabe V1.0 Ausgabe 02.02.2009 37/37