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.

daq

1.2. Bausteine integrieren

1.2.1. Bibliothek öffnen

  1. Im TIA Portal rechts den Reiter Bibliotheken aktivieren

  2. Globale Bibliotheken aufklappen

  3. Die Schaltfläche "Globale Bibliothek öffnen" anklicken

  4. Die JRK_DAQ_V1 Bibliothek auswählen und öffnen

oeffnen
  1. JRK_DAQ_V1 Bibliothek aufklappen

  2. 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.

bausteine

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.

connection

1.2.3. Prozessdatenbaustein vorbereiten

Die Datenbausteinnummer muss manuell zugewiesen werden.

baustein no

Für den Export ist es notwendig, dass der optimierte Bausteinzugriff deaktiviert wird. Das Attribut muss dementsprechend gesetzt werden.

baustein zugriff

1.2.4. Export aufrufen

Aufruf der Exportfunktion programmieren.

Als Connection muss die Instanz des zuvor aufgerufenen Verbindungsbausteins angeben werden.

export

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.

baustein 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
Ergebniscodes Verbindung
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
Ergebniscodes Export
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

daq

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

Connections

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.

ConnectionAdd

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.

Configurations

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.

ConfigurationAddEdit
  1. Config ID, muss identisch mit der im Programm der S7-Steuerung sein.

  2. Datenbaustein Quelle wählen, diese definiert die Struktur der Prozessdaten und wird vom SPS-Programmierer zur Verfügung gestellt.

  3. Dateiname der Ausgabedatei lässt sich aus aus Platzhaltern zusammensetzen, siehe Kapitel über Platzhaltervariablen

  4. Inhalt an die Ausgabedatei anhängen falls sie existiert (ist der Haken nicht gesetzt, wird die Datei überschrieben)

  5. Vorlagedatei für die Kopfzeile, wird nur geschrieben, wenn die Ausgabedatei nicht existiert

  6. Vorlagedatei in der die Werte eingesetzt werden

  7. 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

Beispiel Vorlagedatei:
{Barcode};{Temperatur};{Druck};{IO:PASS|FAIL}
Beispiel Vorlagedatei Kopfzeile:
Barcode;Temperatur;Druck;Ergebnis
Beispiel generierte Ausgabedatei:
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:

  1. {Name}

  2. {Name:Format}

Name ist entweder:

  1. Name einer Variable aus dem Datenbaustein der Station sein, siehe Kapitel Export konfigurieren

  2. Name einer benutzerdefinierten Variable der Station sein, siehe Kapitel Export konfigurieren

  3. 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

Beispiele:
Formatangabe Wert der Variable Ausgabe

{Variable:4}

5

0004

{Variable:4}

123

0123

{Variable:4}

12345

12345

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

Beispiele:
Formatangabe Wert der Variable Ausgabe

{Variable:3.3}

0.5

000.500

{Variable:3.3}

0.123

000.123

{Variable:3.3}

7.8906

007.891

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.

Beispiele:
Formatangabe Wert der Variable Ausgabe

{Variable:3.3}

5

→ 000.005

{Variable:3.3}

123

→ 000.123

{Variable:3.3}

456789

→ 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.

Beispiele:
Formatangabe Wert der Variable Ausgabe

{Variable:1.3e3}

0.005

5.000e-003

{Variable:2.3E2}

0.005

50.000E-04

{Variable:1.3E3}

54

5.400E001

{Variable:1.3e+3}

0.005

5.400e+001

2.3.2.5. Texte links/rechts auffüllen
{Variable:LY,Z}

Der Text wird auf die Länge Y mit dem Zeichen Z aufgefüllt

{Variable:RY,Z}

L - die Zeichen werden links angefügt. R - die Zeichen werden rechts angefügt.

Beispiele:
Formatangabe Wert der Variable Ausgabe

{Variable:R4,0}

42

4200

{Variable:L4,0}

ab

00ab

{Variable:R5,.}

xyz

xyz..

{Variable:R5, }

42

42___

{Variable:L5, }

abcdef

abcdef

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:

Datums und Zeitformate
Zeichen Bedeutung

d

Tag 1-31

dd

Tag 01-31

M

Monat 1-12

MM

Monat 01-12

y

Jahr von 0-99

yy

Jahr von 00-99

yyyy

Jahr als vierstellige Zahl

h

Stunde 1-12

hh

Stunde 01-12

H

Stunde 0-24

HH

Stunde 00-24

m

Minute 0-59

mm

Minute 00-59

s

Sekunde 0-59

ss

Sekunde 00-59

tt

AM/PM Kennzeichner

Beispiele:
Formatangabe Wert der Variable Ausgabe

{Variable:dd.MM.yyyy HH:mm:ss}

2021-04-01T14:42:32

01.04.2021 14:42:32

{Variable:hh:mm:ss tt}

2021-04-01T14:42:32

02:42:32 PM

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.

Beispiel für boolsche Variablen:
Formatangabe Wert der Variable Ausgabe

{Variable:YES|NO}

TRUE

YES

{Variable:YES|NO}

FALSE

NO

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!
Beispiel bei Ganzzahligen Variablen:
Formatangabe Wert der Variable Ausgabe

{Variable:Rot|Grün|Blau}

0

→ Rot

{Variable:Rot|Grün|Blau}

1

→ Grün

{Variable:Rot|Grün|Blau}

2

→ Blau

{Variable:Rot|Grün|Blau}

3

→ verursacht einen Fehler

{Variable:Rot|Grün|Blau}

-1

→ verursacht einen Fehler

Ist der Wert außerhalb des Bereiches wird keine Datei generiert!