S7-SoftSPS:Datenschnittstelle: Unterschied zwischen den Versionen
Joscha (Diskussion | Beiträge) |
Joscha (Diskussion | Beiträge) |
||
Zeile 60: | Zeile 60: | ||
| || unsigned long int far * val);, | | || unsigned long int far * val);, | ||
|} | |} | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 83: | Zeile 84: | ||
'''Mehrere Werte lesen''' | '''Mehrere Werte lesen''' | ||
+ | |||
Liest mehrere Werte aus der ''S7-SoftSPS''. | Liest mehrere Werte aus der ''S7-SoftSPS''. | ||
Zeile 97: | Zeile 99: | ||
| || unsigned long int far * vals);, | | || unsigned long int far * vals);, | ||
|} | |} | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 116: | Zeile 119: | ||
Länge der Parameterliste (Visual-C): 20 Bytes. | 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! | ACHTUNG: BEI DATENBAUSTEINEN (TYP = 'D') MUSS DAS WERTE-FELD DOPPELT SO GROß SEIN, DA FÜR JEDES DATENWORT 2 BYTES BENÖTIGT WERDEN! | ||
Zeile 156: | Zeile 160: | ||
Länge der Parameterliste (Visual-C): 20 Bytes. | 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! | 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''' | '''DB lesen''' | ||
Zeile 173: | Zeile 179: | ||
| || unsigned long int Synchron); | | || unsigned long int Synchron); | ||
|} | |} | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 191: | Zeile 198: | ||
Länge der Parameterliste (Visual-C): 16 Bytes. | Länge der Parameterliste (Visual-C): 16 Bytes. | ||
+ | |||
Achtung: ES WIRD WORTORIENTIERT GELESEN, LOW- UND HIGHBYTE WERDEN VERTAUSCHT. | Achtung: ES WIRD WORTORIENTIERT GELESEN, LOW- UND HIGHBYTE WERDEN VERTAUSCHT. | ||
+ | |||
'''DB schreiben''' | '''DB schreiben''' | ||
Zeile 208: | Zeile 217: | ||
| || unsigned long int Synchron); | | || unsigned long int Synchron); | ||
|} | |} | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 226: | Zeile 236: | ||
Länge der Parameterliste (Visual-C): 16 Bytes. | Länge der Parameterliste (Visual-C): 16 Bytes. | ||
+ | |||
Achtung: ES WIRD WORTORIENTIERT GELESEN, LOW- UND HIGHBYTE WERDEN VERTAUSCHT. | Achtung: ES WIRD WORTORIENTIERT GELESEN, LOW- UND HIGHBYTE WERDEN VERTAUSCHT. | ||
Zeile 242: | Zeile 253: | ||
| || unsigned long int far * Anzahl, | | || unsigned long int far * Anzahl, | ||
|} | |} | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 256: | Zeile 268: | ||
| Rückgabe || 0 bei Fehler || Fehlermeldungen | | Rückgabe || 0 bei Fehler || Fehlermeldungen | ||
|} | |} | ||
− | |||
Länge der Parameterliste (Visual-C): 12 Bytes. | Länge der Parameterliste (Visual-C): 12 Bytes. | ||
Zeile 273: | Zeile 284: | ||
| || unsigned long int far * Anzahl, | | || unsigned long int far * Anzahl, | ||
|} | |} | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 303: | Zeile 315: | ||
| || unsigned long far * MC5Val); | | || unsigned long far * MC5Val); | ||
|} | |} | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 324: | Zeile 337: | ||
| || float FloatVal); | | || float FloatVal); | ||
|} | |} | ||
+ | |||
{| class="wikitable" | {| class="wikitable" |
Version vom 5. November 2012, 15:16 Uhr
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 |
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 |
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.