1. S7-1500 Bausteine
1.1. Einleitung
In diesem Teil des Dokumentes wird die Integration der S7-1500-Funktionsbausteine der JRK Datenerfassung im TIA Portal beschrieben.
1.2. Bausteine integrieren
1.2.1. Bibliothek öffnen
-
Im TIA Portal rechts den Reiter Bibliotheken aktivieren
-
Globale Bibliotheken aufklappen
-
Die Schaltfläche "Globale Bibliothek öffnen" anklicken
-
Die JRK_DAQ_V1 Bibliothek auswählen und öffnen
-
JRK_DAQ_V1 Bibliothek aufklappen
-
Kopiervorlagen aufklappen und die Bausteine per Drag & Drop in das Projekt kopieren. Für den Export werden FB_JRK_DAQ_Connection, FB_JRK_DAQ_Export und alle FCs benötigt.
1.2.2. Verbindungsbaustein aufrufen
Aufruf des Verbindungsbausteins programmieren.
Die ConnectionID entspricht der lokalen Verbindungs ID und muss eindeutig im SPS Projekt vergeben werden. Als InterfaceID wird die Hardwarekennung der Netzwerkschnittstelle eingetragen.
Bei PlcId wird die im ConfigTool hinterlegte PlcId eingetragne.
Ein Verbindungsaufruf kann bis zu 32 Instanzen verwalten, mehre Verbindungen von einer Steuerung sind möglich.
1.2.3. Prozessdatenbaustein vorbereiten
Die Datenbausteinnummer muss manuell zugewiesen werden.
Für den Export ist es notwendig, dass der optimierte Bausteinzugriff deaktiviert wird. Das Attribut muss dementsprechend gesetzt werden.
1.2.4. Export aufrufen
Aufruf der Exportfunktion programmieren.
Als Connection muss die Instanz des zuvor aufgerufenen Verbindungsbausteins angeben werden.
1.2.5. Export der AWL Quelle des Prozessdatenbausteins
Der DAQ-Server benötigt zum empfangen der Datenbausteine die AWL Quellen. Diese lassen sich im TIA Portal generieren.
1.3. Bausteine
1.3.1. FB_JRK_DAQ_Connection
Der Baustein baut die Verbindung zum DAQ Server auf.
FUNCTION_BLOCK "FB_JRK_DAQ_Connection" VERSION : 0.2 VAR_INPUT ConnectionID : CONN_OUC; // Verbindungs ID InterfaceID : HW_ANY; // HW-Kennung des Netzwerkinterfaces aus den Systemkonstanten IP1 : USInt := 10; // IP Addresse des Servers IP2 : USInt := 128; // IP Addresse des Servers IP3 : USInt := 35; // IP Addresse des Servers IP4 : USInt := 182; // IP Addresse des Servers PlcID : DInt; // Anlagennummer ohne Stationsnummer (5 Ziffern) Reconnect : Bool; // Verbindung neu aufbauen END_VAR
VAR_OUTPUT Connected : Bool; // Verbindung aufgebaut Error : Bool; // Fehler ErrorCode : Word; // Fehlercode, 16#1000 = TCON, 16#2000 = TSend, 16#3000 = TReceive ErrorStatus : Word; // Status des Bausteins der den Fehler ausgelöst hat : TCON/TSEND/TRCV END_VAR
1.3.1.1. Ergebniscodes
Ergebniscode | Beschreibung |
---|---|
16#1000 |
TCON Fehler, Status wird in ErrorStatus angezeigt |
16#2000 |
TSEND Fehler, Status wird in ErrorStatus angezeigt |
16#3000 |
TRCV Fehler, Status wird in ErrorStatus angezeigt |
1.3.2. FB_JRK_DAQ_Export
Der Baustein sendet den Inhalt eines Datenbausteins an das DAQ System und gibt eine Rückmeldung, wenn die Daten erfolgreich empfangen wurden. Dazu werden im DAQ System die Quelle des Datenbausteins sowie eine Vorlagedatei hinterlegt. Bei einem Fehler wird ein Fehlercode generiert.
FUNCTION_BLOCK "FB_JRK_DAQ_Export" VERSION : 0.2 VAR_INPUT Trigger : Bool; // Auslösen des Sendens durch pos. Flanke DBNo : UInt; // DB Nummer des zu sendenen Datenbausteins mit Prozessdaten ConfigID : UInt; // Stationsnummer END_VAR
VAR_OUTPUT Done : Bool; // Erfolgreich exportiert - bleibt anstehen bis Trigger wieder auf 0 ist Busy : Bool; // Befehl wird aktuell bearbeitet Error : Bool; // Fehler beim Ausführen der Funktion aufgetreten Result : Word; // Ergebnis, siehe Tabelle END_VAR
VAR_IN_OUT Connection : "FB_JRK_DAQ_Connection"; // Verbindung END_VAR
Ergebniscode | Beschreibung |
---|---|
16#0001 |
Erfolgreich exportiert |
16#1000 |
Datei konnte nicht geschrieben werden |
16#2000 |
Export nicht konfiguriert |
16#2001 |
Datenbausteinlänge stimmt nicht mit Konfiguration überein |
16#9000 |
Zuviele Instanzen des Bausteins auf einer Verbindung aufgerufen |
2. Konfigurationstool
2.1. Einleitung
Das JRK-DAQ-System (Data Acquisition = Datenerfassung) vereinfacht die Erfassung und Übermittlung von Prozessdaten. Es nimmt von Anlagen mit Siemens S7-300/S7-1500 Steuerungen Prozessdaten entgegen und gibt diese als Datei aus.
2.1.1. Systemaufbau
Das System besteht aus folgenden Komponenten:
-
JRK DAQ Gateway Windows Dienst
-
Konfigurationsoberfläche
-
Bibliotheken mit Funktionsbausteinen für die Siemens S7-300 und S7-1500 Steuerungen
Dieser Teil des Dokument beschreibt den Windows-Dienst, die Konfigurationsoberfläche und die Vorgehensweise zur Konfiguration des Dateiexports.
2.1.2. Dateien
Die Ordnerstruktur nach der Installation ist folgende:
- C:\JRK DAQ\
-
Installationspfad
- C:\JRK DAQ\bin\configtool
-
Ausführbare Dateien des Konfigurationstools
- C:\JRK DAQ\bin\service
-
Dateien des JRK DAQ Gateway Dienstes
- C:\JRK DAQ\config
-
Konfigurationsdateien des JRK DAQ Gateway Dienstes
- C:\JRK DAQ\config\logging.xml
-
Konfiguration der Protokollierung
- C:\JRK DAQ\config\DaqConnections.json
-
Konfiguration der Anlagenverbindungen - nur über das Konfigurationstool zu ändern
- C:\JRK DAQ\config\Requests.json
-
Konfiguration des Export - nur über das Konfigurationstool zu ändern
- C:\JRK DAQ\logs
-
Protokolldateien des Dienstes
2.1.3. Definitionen
- Datenbaustein
-
In einem Datenbaustein werden in der Siemens S7-Steuerung Daten strukturiert und benannt gespeichert
- Funktionbaustein
-
In Funktionbausteinen sind in der Siemens S7-Steuerung Unterroutinen gespeichert
- Vorlagedatei
-
In die Vorlagedatei werden die Daten aus einem Datenbaustein eingesetzt
2.2. Konfigurationsoberfläche
2.2.1. Verbindung anlegen
In der Liste auf der linken Seite des Hauptfensters sind die aktuell konfigurierten Anlagen zu sehen, über die Schaltfläche "Hinzufügen" kann eine neue Verbindung angelegt werden. Das Feld "Filter" kann verwendet werden, um nach der PlcId oder dem Namen zu suchen.
Hier müssen die PlcId sowie ein Name angegeben werden. Die PlcId muss mit der in dem Aufruf des Verbindungsbausteins in der SPS übereinstimmen, der Name kann frei gewählt werden.
Verbindet sich eine nicht konfigurierte Anlage mit dem DAQ-System wird für die PlcId automatisch ein Eintrag mit dem Namen "AutoConfigured" angelegt. Dieser kann anschließend über die Schaltfläche "Ändern" angepasst werden.
2.2.2. Exportkonfiguration hinzufügen
Im zweiten Schritt müssen die Aufrufe des Export Funktionsbausteines konfiguriert werden.
In der Liste werden die angelegten Exporte angezeigt.
2.2.3. Export konfigurieren
Über die Schaltfläche "Hinzufügen" oder "Ändern" öffnet sich der Einstellungsdialog der Exportkonfiguration.
-
Config ID, muss identisch mit der im Programm der S7-Steuerung sein.
-
Datenbaustein Quelle wählen, diese definiert die Struktur der Prozessdaten und wird vom SPS-Programmierer zur Verfügung gestellt.
-
Dateiname der Ausgabedatei lässt sich aus aus Platzhaltern zusammensetzen, siehe Kapitel über Platzhaltervariablen
-
Inhalt an die Ausgabedatei anhängen falls sie existiert (ist der Haken nicht gesetzt, wird die Datei überschrieben)
-
Vorlagedatei für die Kopfzeile, wird nur geschrieben, wenn die Ausgabedatei nicht existiert
-
Vorlagedatei in der die Werte eingesetzt werden
-
Datenbaustein - zeigt die eingelesene Struktur des Datenbausteins mit den Prozessdaten an. Alle Werte können in der Vorlagedatei eingesetzt werden. Dafür muss der Name der hier angezeigt wird genutzt werden, siehe Kapitel über Platzhaltervariablen
Wird eine Vorlagedatei verändert, wird diese nicht automatisch neugeladen! Sie muss einmal über den Konfigurationsdialog neu ausgewählt werden. |
2.3. Vorlagedatei erstellen
In die Vorlagedatei werden Werte aus dem Datenbaustein eingesetzt um die Ausgabedatei generieren. Dafür werden Platzhalter durch die Werte aus dem Datenbaustein ersetzt, siehe Kapitel Export konfigurieren
{Barcode};{Temperatur};{Druck};{IO:PASS|FAIL}
Barcode;Temperatur;Druck;Ergebnis
Barcode;Temperatur;Druck;Ergebnis 1234567890;25.000;100.000;PASS 1234567890;25.000;100.000;PASS 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 1234567890;25.000;100.000;PASS 1234567890;25.000;100.000;PASS 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 1234567890;25.000;100.000;PASS 1234567890;25.000;100.000;PASS 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL 0123456789;30.000;25.000;FAIL
2.3.1. Platzhaltervariablen
In der Vorlagedatei können Platzhaltervariablen genutzt werden. Diese werden beim Generieren der Ausgabedatei durch die tatsächlichen Werte aus der S7-Steuerung ersetzt. Platzhaltervariablen können zwei Formen haben:
-
{Name}
-
{Name:Format}
Name
ist entweder:
-
Name einer Variable aus dem Datenbaustein der Station sein, siehe Kapitel Export konfigurieren
-
Name einer benutzerdefinierten Variable der Station sein, siehe Kapitel Export konfigurieren
-
eine der vordefinierten Variablen:
{MachineNo} Anlagennummer der aktuellen Anlage
{StationNo} Stationsnummer der aktuellen Station
Format
wird im Kapitel Formatierungsoptionen definiert.
Ist kein Format angegeben werden folgende Standardformate genutzt:
Ganzzahl |
Ohne führende Nullen |
Fließkommazahl |
Ohne führende Nullen, 3 Nachkommastellen |
BOOL |
PASS bei TRUE, FAIL bei FALSE |
Datum |
dd.MM.yy (siehe Kapitel Datums und Zeitformate) |
2.3.2. Formatierungsoptionen
2.3.2.1. Führende Nullen
{Variable:X}
X
|
Mindeste Anzahl der Ziffern, wird mit führenden Nullen aufgefüllt |
Formatangabe | Wert der Variable | Ausgabe |
---|---|---|
|
|
→ |
|
|
→ |
|
|
→ |
2.3.2.2. Fließkommazahlen
Für Zahlen des Typen REAL in der S7-Steuerung.
{Variable:X.Y}
X
|
Mindeste Anzahl der Ziffern vor dem Dezimalpunkt, wird mit Nullen aufgefüllt |
Y
|
Anzahl der Ziffern nach dem Dezimalpunkt, wird mit Nullen aufgefüllt, bei mehr Ziffern wird gerundet |
Formatangabe | Wert der Variable | Ausgabe |
---|---|---|
|
|
→ |
|
|
→ |
|
|
→ |
2.3.2.3. Fixkommazahlen
{Variable:X.Y}
Für Zahlen der Typen INT, DINT, BYTE, WORD oder DWORD in der S7-Steuerung.
X
|
Mindeste Anzahl der Ziffern vor dem Dezimalpunkt, wird mit Nullen aufgefüllt |
Y
|
Anzahl der Ziffern nach dem Dezimalpunkt, wird mit Nullen aufgefüllt, bei mehr Ziffern wird gerundet |
Die Zahl wird als Fixkommazahl interpretiert und der Dezimalpunkt wird an die entsprechende Stelle gesetzt.
Formatangabe | Wert der Variable | Ausgabe |
---|---|---|
|
|
→ 000.005 |
|
|
→ 000.123 |
|
|
→ 456.789 |
2.3.2.4. Exponentialschreibweise
{Variable:X.YeZ}
{Variable:X.Ye+Z}
{Variable:X.YEZ}
{Variable:X.YE+Z}
X
|
Mindeste Anzahl der Ziffern vor dem Dezimalpunkt, wird mit Nullen aufgefüllt |
Y
|
Anzahl der Ziffern nach dem Dezimalpunkt, wird mit Nullen aufgefüllt, bei mehr Ziffern wird gerundet |
Z
|
Mindeste Anzahl der Ziffern des Exponenten, wird mit Nullen aufgefüllt |
Wird das + angegeben, wird immer das Vorzeichen vor dem Exponenten gesetzt, ansonsten ist dies nur bei negativen Exponenten der Fall.
Formatangabe | Wert der Variable | Ausgabe |
---|---|---|
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
2.3.2.5. Texte links/rechts auffüllen
{Variable:LY,Z}
|
Der Text wird auf die Länge |
{Variable:RY,Z}
|
|
Formatangabe | Wert der Variable | Ausgabe |
---|---|---|
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
2.3.2.6. Datums und Zeitformate
{Variable:Format}
Formatiert Zeitstempel (DATE_AND_TIME) Werte aus der S7-Steuerung
Das Format kann aus folgenden Zeichen zusammengesetzt werden:
Zeichen | Bedeutung |
---|---|
|
Tag 1-31 |
|
Tag 01-31 |
|
Monat 1-12 |
|
Monat 01-12 |
|
Jahr von 0-99 |
|
Jahr von 00-99 |
|
Jahr als vierstellige Zahl |
|
Stunde 1-12 |
|
Stunde 01-12 |
|
Stunde 0-24 |
|
Stunde 00-24 |
|
Minute 0-59 |
|
Minute 00-59 |
|
Sekunde 0-59 |
|
Sekunde 00-59 |
|
AM/PM Kennzeichner |
Formatangabe | Wert der Variable | Ausgabe |
---|---|---|
|
|
→ |
|
|
→ |
2.3.2.7. Textlisten
{Variable:Option0|Option1|..|OptionX}
|
Je nach Wert der Variable wird die entsprechende Option ausgewählt. |
Bei Variablen vom Typ BOOL wird bei dem Wert TRUE Option0 gewählt, bei dem Wert FALSE Option1.
Formatangabe | Wert der Variable | Ausgabe |
---|---|---|
|
|
→ |
|
|
→ |
Bei Variablen von den Typen INT, DINT, BYTE, WORD oder DWORD wird bei dem Wert 0 die Option0 gewählt, bei dem Wert 1 die Option1 usw.
Zu beachten ist, dass hier beim Wert 0 angefangen wird, nicht bei 1! |
Formatangabe | Wert der Variable | Ausgabe |
---|---|---|
|
|
→ Rot |
|
|
→ Grün |
|
|
→ Blau |
|
|
→ verursacht einen Fehler |
|
|
→ verursacht einen Fehler |
Ist der Wert außerhalb des Bereiches wird keine Datei generiert! |