S7-SoftSPS:Datenschnittstelle

Aus IBHsoftec Wiki
Wechseln zu: Navigation, Suche

Von verschiedenen Programmiersystemen (z.B. Visual Basic®, Visual C/C++® oder Borland C++Builder®) kann direkt auf die S7-SoftSPS zugegriffen werden. Die hierzu benötigte DLL wird mitgeliefert (PLC32.DLL). Es handelt sich hierbei um eine 32 Bit Applikation.

Im Folgenden werden die zur Datenübertragung vorhandenen Funktionen beschrieben.

Funktionen zur Datenübertragung

Wert lesen

Liest einen Wert aus der S7-SoftSPS.

unsigned long int DLLexport ReadVal (unsigned long int typ,
unsigned long int nr,
unsigned long int DBNr,
unsigned long int size,
unsigned long int far * val);,


Parameter Beschreibung Kommentar
typ 'E' = Eingang
'A' = Ausgang
'M' = Merker
'Z' = Zählerwert
'T' = Zeitwert
'D' = Datenwort oder Datendoppelwort
'B' = Datenbit,-byte,-wort,-doppelwort
auf Byteadresse
'P' = P_Parameter



nur 16-Bit-Zugriff
nur 16-Bit-Zugriff
abhängig vom Parameter size

abhängig von size
S7 kompatibel, nur S7!
nur S7 ab Version 3!

nr Adresse Byteadresse des einzulesenden Operanden
DBNr Datenbaustein Nummer 1 – 16383
size Anzahl der Bits
0..7= Bit Nr 0 7
8 = 1 Byte
16 = 1 Wort
32 = 1 Doppelwort


nur 'E','A','M'
val Gelesener Wert Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.
Rückgabe 0 bei Fehler Fehlermeldungen

Länge der Parameterliste (Visual-C): 20 Bytes.


Wert schreiben

Schreibt einen Wert in die S7-SoftSPS.

unsigned long int DLLexport WriteVal (unsigned long int typ,
unsigned long int nr,
unsigned long int DBNr,
unsigned long int size,
unsigned long int far * val);,


Parameter Beschreibung Kommentar
typ 'E' = Eingang
'A' = Ausgang
'M' = Merker
'Z' = Zählerwert
'T' = Zeitwert
'D' = Datenwort oder Datendoppelwort
'B' = Datenbit,-byte,-wort,-doppelwort
auf Byteadresse
'P' = P_Parameter



nur 16-Bit-Zugriff
nur 16-Bit-Zugriff
abhängig vom Parameter size

abhängig von size
S7 kompatibel, nur S7!
nur S7 ab Version 3!

nr Adresse Byteadresse des einzulesenden Operanden
DBNr Datenbaustein Nummer 1 – 16383
size Anzahl der Bits
0..7= Bit Nr 0 7
8 = 1 Byte
16 = 1 Wort
32 = 1 Doppelwort


nur 'E','A','M'
val Zu schreibender Wert
Rückgabe 0 bei Fehler Fehlermeldungen

Länge der Parameterliste (Visual-C): 20 Bytes.


Mehrere Werte lesen

Liest mehrere Werte aus der S7-SoftSPS.

unsigned long int DLLexport ReadVals (unsigned long int typ,
unsigned long int nr,
unsigned long int DBNr,
unsigned long int size,
unsigned long int far * vals);,


Parameter Beschreibung Kommentar
typ 'E' = Eingang
'A' = Ausgang
'M' = Merker
'D' = Datenwort
'B' = Datenbyte auf Byteadresse



S5 kompatibel
S7 kompatibel, nur S7!
nr Adresse
DBNr Datenbaustein Nummer 1 – 16383
size Anzahl der Bytes oder Datenworte Bei typ: 'E', 'A', 'M' und 'B' Angabe in Bytes, bei 'D' Angabe in Datenworten.
vals Byte-Werte Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.
Achtung: Das Feld muss groß genug sein!
Rückgabe 0 bei Fehler Fehlermeldungen

Länge der Parameterliste (Visual-C): 20 Bytes.


ACHTUNG: BEI DATENBAUSTEINEN (TYP = 'D') MUSS DAS WERTE-FELD DOPPELT SO GROß SEIN, DA FÜR JEDES DATENWORT 2 BYTES BENÖTIGT WERDEN!


Mehrere Werte schreiben

Schreibt mehrere Werte in die S7-SoftSPS.

unsigned long int DLLexport WriteVals (unsigned long int typ,
unsigned long int nr,
unsigned long int DBNr,
unsigned long int size,
unsigned long int far * vals);,


Parameter Beschreibung Kommentar
typ 'E' = Eingang
'A' = Ausgang
'M' = Merker
'D' = Datenwort
'B' = Datenbyte auf Byteadresse



S5 kompatibel
S7 kompatibel, nur S7!
nr Adresse
DBNr Datenbaustein Nummer 1 – 16383
size Anzahl der Bytes oder Datenworte
'E'
'A'
'M'
'B'
'D'

Angabe in Bytes
Angabe in Bytes
Angabe in Bytes
Angabe in Bytes
Angabe in Datenworten.
vals Byte-Werte Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.
Achtung: Das Feld muss groß genug sein!
Rückgabe 0 bei Fehler Fehlermeldungen

Länge der Parameterliste (Visual-C): 20 Bytes.


ACHTUNG: BEI DATENBAUSTEINEN (TYP = 'D') MUSS DAS WERTE-FELD DOPPELT SO GROß SEIN, DA FÜR JEDES DATENWORT 2 BYTES BENÖTIGT WERDEN!


DB lesen

Liest den Inhalt eines Datenbausteines aus der S7-SoftSPS.

unsigned long int DLLexport ReadDB (unsigned long int nr,
unsigned short int far * Baustein,
unsigned long int far * Anzahl,
unsigned long int Synchron);


Parameter Beschreibung Kommentar
nr DB-Nummer 1..16383
Baustein Zeiger auf den DB-Inhalt Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.
Achtung: Das Feld muss groß genug sein!
Anzahl Anzahl der Worte, die aus dem Baustein gelesen werden sollen Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.

Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.

Synchron Immer 0 Bei S7 ohne Bedeutung
Rückgabe 0 bei Fehler Fehlermeldungen

Länge der Parameterliste (Visual-C): 16 Bytes.


Achtung: ES WIRD WORTORIENTIERT GELESEN, LOW- UND HIGHBYTE WERDEN VERTAUSCHT.


DB schreiben

Beschreibt einen Datenbaustein in der SPS.

unsigned long int DLLexport WriteDB (unsigned long int nr,
unsigned short int far * Baustein,
unsigned long int far * Anzahl,
unsigned long int Synchron);


Parameter Beschreibung Kommentar
nr DB-Nummer 1..16383
Baustein Zeiger auf den DB-Inhalt Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.
Achtung: Das Feld muss groß genug sein!
Anzahl Anzahl der Worte, die aus dem Baustein geschrieben werden sollen Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.

Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.

Synchron Immer 0 Bei S7 ohne Bedeutung
Rückgabe 0 bei Fehler Fehlermeldungen

Länge der Parameterliste (Visual-C): 16 Bytes.


ACHTUNG: ES WIRD WORTORIENTIERT GELESEN, LOW- UND HIGHBYTE WERDEN VERTAUSCHT.


DB lesen S7

Liest den Inhalt eines S7-Datenbausteines in der SPS (Byteorientiert).

unsigned long int DLLexport ReadDB_S7 (unsigned long int nr,
unsigned char int far * Baustein,
unsigned long int far * Anzahl,


Parameter Beschreibung Kommentar
nr DB-Nummer 1..16383
Baustein Zeiger auf den DB-Inhalt Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.
Achtung: Das Feld muss groß genug sein!
Anzahl Anzahl der Bytes, die aus dem Baustein gelesen werden sollen. Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.

Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.

Rückgabe 0 bei Fehler Fehlermeldungen

Länge der Parameterliste (Visual-C): 12 Bytes.


DB schreiben S7

Beschreibt den Inhalt eines S7-Datenbausteines in der SPS (Byteorientiert).

unsigned long int DLLexport WriteDB_S7 (unsigned long int nr,
unsigned char int far * Baustein,
unsigned long int far * Anzahl,


Parameter Beschreibung Kommentar
nr DB-Nummer 1..16383
Baustein Zeiger auf den DB-Inhalt Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.
Achtung: Das Feld muss groß genug sein!
Anzahl Anzahl der Bytes, die aus dem Baustein geschrieben werden sollen. Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.

Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.

Rückgabe 0 bei Fehler Fehlermeldungen

Länge der Parameterliste (Visual-C): 12 Bytes.


Funktionen zur Zahlenumwandlung

FloatToMC5

Wandelt Gleitpunktzahlen im IBM-PC-Format in S7-Doppelwörter um.

void DLLexport FloatToMC5 (float FloatValue,
unsigned long far * MC5Val);


Parameter Beschreibung Kommentar
FloatVal Gleitpunktzahl im IEEE- bzw. INTEL-Format
MC5Val Gleitpunktzahl im Siemens-S7-Format


MC5ToFloat

Wandelt S7-Doppelwörter in Gleitpunktzahlen im IBM-PC-Format um.

void DLLexport MC5ToFloat (unsigned long far * MC5Val
float FloatVal);


Parameter Beschreibung Kommentar
MC5Val Gleitpunktzahl im Siemens-S7-Format
FloatVal Gleitpunktzahl im IEEE- bzw. INTEL-Format


Zugriff mit einem Webserver

Sollten Sie beabsichtigen mit Webapplikationen (IIS) auf die S7-SoftSPS zuzugreifen, die Zugriff auf die Prozessdaten haben sollen, so setzen Sie sich bitte mit unserem Support in Verbindung. Im Lieferumfang der S7-SoftSPS ist ebenfalls ein Objekt enthalten, welches einen Datenzugriff aus Scriptsprachen (VB Script, J Script) heraus ermöglicht.