Deckblatt S7-Programm zur Ermittlung von UTC-Zeit und Datum aus einem GPS Signal SIMATIC S7-300/400 CPU FAQ Februar 2010 Service & Support Answers for industry.
Fragestellung Dieser Beitrag stammt aus dem Service&Support Portal der Siemens AG, Sector Industry, Industry Automation and Drive Technologies. Es gelten die dort genannten Nutzungsbedingungen (www.siemens.com/nutzungsbedingungen). Durch den folgenden Link gelangen Sie direkt zur Downloadseite dieses Dokuments. http://support.automation.siemens.com/ww/view/de/40929072 Frage Wie können Sie Uhrzeit und Datum aus einem GPS Signal bestimmen? Antwort Folgen Sie zur umfassenden Beantwortung dieser Frage den in diesem Dokument aufgeführten Handlungsanweisungen und Hinweisen. 2 Version, Beitrags-ID:40929072
Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung... 4 1.1 Einsatzbereich... 4 1.2 Das NMEA-Protokoll... 4 2 Hardwareprojektierung... 5 2.1 Projektierung der SIMATIC Komponenten... 5 2.2 Die GPS-Maus... 6 2.2.1 Technische Daten... 6 2.2.2 Anschluss der GPS-Maus... 7 3 Das S7-Programm... 8 3.1 Aufbau des S7-Programms... 8 3.2 FB 2 S_RCV... 8 3.3 FB 10 GPS_TIME... 9 3.3.1 Selektion des RMC-Unterprotokolls... 10 3.3.2 Ermittlung des benötigten Datenblocks... 10 3.3.3 Prüfung der Daten auf Plausibilität... 11 3.3.4 Umwandlung der Daten von ASCII zu BCD... 11 3.3.5 Kontrolle der Kommunikation... 11 4 Internet Links... 12 5 Historie... 12 Version, Beitrags-ID:40929072 3
1 Einführung 1 Einführung 1.1 Einsatzbereich Das hier beschriebene S7-Programm dient zur Ermittlung der UTC-Zeit und des Datums aus einem GPS-Signal. Hierbei wird das GPS-Signal nach dem NMEA- Protokoll mit einem GPS-Empfänger, einer sogenannten GPS-Maus, empfangen und über eine ET 200S Schnittstellenbaugruppe in eine SIMATIC S7-300 CPU eingelesen. 1.2 Das NMEA-Protokoll Das NMEA-Protokoll (NMEA steht für National Marine Electronics Association) ist das gängigste GPS-Protokoll und besteht aus einer Vielzahl von Unterprotokollen. Jedes dieser Unterprotokolle übermittelt eine oder mehrere Informationen. Das Datum und die Uhrzeit können dem Unterprotokoll RMC (recommended minimum sentence C) entnommen werden. Dieses Protokoll hat folgende Struktur: $GPRMC,191410,A,4635.5634,N,00739.3538,E,0.0,0.0,181102,0.4,E,A*19 Missweisung (mit Richtung) Datum: 18.11.2002 Bewegungsrichtung in Grad Geschwindigkeit über Grund in Knoten Längengrad mit (Vorzeichen)-Richtung (E = Ost, W = West) 007 39.3538` Ost Breitengrad mit (Vorzeichen)-Richtung (N = Nord, S = Süd) 46 35.5634` Nord Status der Bestimmung: A = active (gültig), V = void (ungültig) Uhrzeit: 19:14:10 (UTC-Zeit) 4 Version, Beitrags-ID:40929072
2 Hardwareprojektierung 2 Hardwareprojektierung 2.1 Projektierung der SIMATIC Komponenten In der Hardware Konfiguration werden folgende SIMATIC Komponenten verwendet: Abbildung 2-1: verwendete SIMATIC Komponenten Die in dem vorliegenden Programm verwendete ET 200S besteht aus den folgenden Komponenten. Tabelle 2-1: Komponenten der ET 200S Komponente Bestellnummer IM 151 PROFIBUS-DP 6ES7 151-1BA00-0AB0 PM-E DC24V 6ES7 138-4CA01-0AA0 1 SI ASCII (8 Byte) 6ES7 138-4DF01-0AB0 Die Parametrierung der ET 200S 1SI Schnittstellenbaugruppe ist in der Abbildung 2-2 dargestellt. Version, Beitrags-ID:40929072 5
2 Hardwareprojektierung Abbildung 2-2: Parametrierung der ET200S Schnittstelle 2.2 Die GPS-Maus In dem vorliegenden FAQ wurde die GPS-Maus GNS 9833 der Firma Global Navigation Systems (GNS) verwendet. 2.2.1 Technische Daten Tabelle 2-2: Technische Daten der GPS-Maus Chipset SiRF 3 Datenprotokoll GNS Produkoll 2.0 & NMES 2.0, 38400 Baud Startzeiten cold start ca. 40 sek. warm start ca. 8 sek. hot start ca. 1 sek. Datenschnittstelle 1 GNS Mini DIN 6pin Anschluss Maße 65 x 65 x 18 mm Betriebstemperatur -10 C +70 C Stromversorgung 5,0V +/- 5% DC Leistungsaufnahme 0,5W bei 5,0V DC 1 Die Belegung der Datenschnittstelle der GPS-Maus ist in der Abbildung 2-3 dargestellt. 6 Version, Beitrags-ID:40929072
2 Hardwareprojektierung Abbildung 2-3: Belegung der Datenschnittstelle RXD nicht benutzt TXD Vcc 5V GND 2.2.2 Anschluss der GPS-Maus Zwischen der GPS-Maus und der ET 200S Schnittstellenbaugruppe sind zwei Verbindungen notwendig. Abbildung 2-4: Verdrahtung zwischen ET 200S und GPS-Maus ET 200S 1SI GPS-Maus RXD TXD GND GND Hinweis Vergessen Sie nicht die Stromversorgung der GPS-Maus. Version, Beitrags-ID:40929072 7
3 Das S7-Programm 3 Das S7-Programm 3.1 Aufbau des S7-Programms Das in diesem FAQ enthaltene S7-Programm verfügt über folgende Bausteine. Tabelle 3-1: Funktionsbausteine des S7-Programms Baustein FB 2 S_RCV FB 10 GPS_TIME Funktion Empfang der Daten von der ET 200S Schnittstellenbaugruppe Ermittlung und Aufbereitung der Zeit und des Datums aus einem GPS Signal Tabelle 3-2: Datenbausteine des S7-Programms Baustein Funktion DB 2 S_RCV_DB Instanz DB des FB 2 DB 5 DB_GPS_Data Ablage der empfangenen Daten von der ET 200S DB 10 DB_instance_FB10 Instanz DB des FB 10 3.2 FB 2 S_RCV Der FB S_RCV überträgt Daten von der Baugruppe ET 200S 1SI zu einem S7- Datenbereich. Dieser Funktionsbaustein wird zur Datenübertragung im Zyklus oder alternativ in einem zeitgesteuerten Programm statisch aufgerufen. Abbildung 3-1: Aufruf FB S_RCV 8 Version, Beitrags-ID:40929072
3 Das S7-Programm Tabelle 3-3: Parameter FB S_RCV Name Typ Datentyp Beschreibung EN_R INPUT BOOL Freigabe für Daten lesen R INPUT BOOL Auftragsabbruch LADDR INPUT INT Basisadresse der Baugruppe ET 200S 1SI DB_NO INPUT INT Datenbausteinnummer DBB_NO INPUT INT Datenbytenummer NDR OUTPUT BOOL Auftrag fertig ohne Fehler, Daten übernommen ERROR OUTPUT BOOL Auftrag fertig mit Fehler LEN OUTPUT INT Länge des Empfangenen Telegramms STATUS OUTPUT WORD Spezifikation des Fehlers Mit Hilfe des FB S_RCV werden die GPS Daten über die ET 200S 1SI Baugruppe eingelesen und in den Datenbaustein DB_GPS_Data abgelegt Hinweis Ausführliche Informationen über den Funktionsbaustein S_RCV können der Betriebsanleitung der ET 200S Schnittstellenbaugruppe entnommen werden. 3.3 FB 10 GPS_TIME Der FB 10 GPS_TIME ermittelt aus dem empfangenen GPS Protokoll das Datum und die Uhrzeit in UTC-Zeit. Abbildung 3-2: Aufruf FB GPS_TIME Tabelle 3-4: Parameter FB GPS_TIME Name Typ Datentyp Beschreibung DB_No_Data INPUT INT Datenbausteinnummer des DB_GPS_Data GPS_Date_and_Time OUTPUT DATE_TIME Datum und Zeit Version, Beitrags-ID:40929072 9
3 Das S7-Programm Um das Datum und die Uhrzeit aus dem GPS Protokoll zu erlangen, werden im FB GPS_TIME folgende Punkte abgearbeitet: 1. Selektion des RMC-Unterprotokolls 2. Ermittlung des benötigten Datenblocks 3. Prüfung der Daten auf Plausibilität 4. Umwandlung der Daten von ASCII zu einer binär codierten Dezimalzahl (BCD) Werden Uhrzeit und Datum empfangen und sind plausibel, wird die Information am Ausgang DATE_TIME ausgegeben. Ohne Empfang oder bei unplausiblen Daten wird am Ausgang DATE_TIME 99.99.99, 99:99 ausgegeben. 3.3.1 Selektion des RMC-Unterprotokolls Wie in Kapitel 1.2 beschrieben, besteht das NMEA-Protokoll aus verschiedenen Unterprotokollen, die der Reihe nach gesendet werden. Daher muss festgestellt werden, wenn ein Datensatz im RMC-Unterprotokoll empfangen wurde. Die Uhrzeit und das Datum werden dann dem RMC-Unterprotokoll entnommen. Dies geschieht in Netzwerk 2. Wann immer im Datenbaustein DB_GPS_Data das RMC-Unterprotokoll eingetragen ist, wird dieses mit Hilfe des SFC 20 BLKMOV in den Instanzdatenbaustein des FB GPS_TIME kopiert. 3.3.2 Ermittlung des benötigten Datenblocks Die Struktur des RMC-Unterprotokolls ist im Kapitel 1.2 aufgezeigt. Diese Datenstruktur findet sich auch im Datenbaustein DB_instance_FB10 wieder. Abbildung 3-3: Auszug aus DB_instance_FB10 $ G P R M C, UTC Zeit, Status der Bestimmung Die Genauigkeit der empfangenen Daten ist jedoch von der Qualität des Empfanges der GPS-Maus abhängig. Daher kann die Anzahl der Stellen des Längen- und Breitengrades variieren. 10 Version, Beitrags-ID:40929072
3 Das S7-Programm Das hat zur Folge, dass die Position des Datums im RMC-Unterprotokoll ermittelt werden muss. Dies geschieht durch das Zählen der Datenblöcke des Unterprotokolls, die durch Kommas [ `,` ] voneinander getrennt sind. In dem Netzwerk 4 des FB GPS_TIME wird daher die Position des neunten Datenblocks, in dem sich das Datum befindet, ermittelt. Hinweis Bei der Ermittlung der Uhrzeit kann auf das Zählen der Datenblöcke verzichtet werden. 3.3.3 Prüfung der Daten auf Plausibilität Nach der Ermittlung des neunten Datenblocks, werden die darin befindlichen Daten auf ihre Richtigkeit überprüft. Dies bedeutet, der Tagwert muss zwischen 0 und 31 sein. der Monatwert muss zwischen 1 und 12 sein. das Jahr muss mindestens 10 (2010) sein. Die Daten der UTC-Zeit, die sich im ersten Datenblock befinden, werden ebenfalls einer Plausibilitätsprüfung unterzogen. Dies bedeutet, der Stundenwert muss zwischen 0 und 23 liegen. der Minuten- und der Sekundenwert müssen zwischen 0 und 59 liegen. 3.3.4 Umwandlung der Daten von ASCII zu BCD Nach bestandener Plausibilitätsprüfung werden die Datums- und Zeitwerte von ASCII Kodierung in das BCD Format gewandelt. Im BCD Code kann nun die Ausgabe der Datums- und Zeitwerte im Format DATE_TIME erfolgen. In diesem Format können nun beispielsweise die Datumsund Zeitwerte zum stellen der CPU-Uhr verwendet werden. 3.3.5 Kontrolle der Kommunikation Bei einem Ausfall der GPS-Maus, oder bei einer Unterbrechung der Verbindung zwischen GPS-Maus und ET 200S Schnittstellenbaugruppe, werden die Daten im Datenbaustein DB_GPS_Data nicht mehr aktualisiert. Wenn dies geschieht, wird nach dem Ablauf einer Überwachungszeit von zwei Sekunden für die Datums- und Zeitwerte eine hexadezimale 99 ausgegeben. Die Kontrolle der Kommunikation erfolg im Netzwerk 3 des FB GPS_TIME. Hinweis Bei einer erneuten Aktivierung der GPS-Maus, müssen die Startzeiten des eingesetzten GPS-Empfängers beachtet werden. Version, Beitrags-ID:40929072 11
4 Internet Links 4 Internet Links Diese Liste ist keinesfalls vollständig und spiegelt nur eine Auswahl wieder Tabelle 4-1: Internet Links Themengebiet Titel \1\ Homepage der Firma GNS http://www.gns-gmbh.com \2\ NMEA Protokoll http://www.nmea.org \3\ NMEA Unterprotokolle http://www.codepedia.com 5 Historie Tabelle 5-1: Historie Version Datum Änderung V1.0 02/2010 Erste Ausgabe 12 Version, Beitrags-ID:40929072