S7-SoftSPS:Datenschnittstelle: Unterschied zwischen den Versionen

Aus IBHsoftec Wiki
Wechseln zu: Navigation, Suche
 
(3 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
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 124: Zeile 128:
 
Schreibt mehrere Werte in die ''S7-SoftSPS''.
 
Schreibt mehrere Werte in die ''S7-SoftSPS''.
  
<table>
+
{|
<tbody>
+
|-
<tr class="odd">
+
| unsigned long int DLLexport WriteVals || (unsigned long int typ,
<td align="left">unsigned long int DLLexport WriteVals</td>
+
|-
<td align="left">(unsigned long int typ,</td>
+
|  || unsigned long int nr,
</tr>
+
|-
<tr class="even">
+
|  || unsigned long int DBNr,
<td align="left"> </td>
+
|-
<td align="left">unsigned long int nr,</td>
+
|  || unsigned long int size,
</tr>
+
|-
<tr class="odd">
+
|  || unsigned long int far * vals);,
<td align="left"> </td>
+
|}
<td align="left">unsigned long int DBNr,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned long int size,</td>
+
</tr>
+
<tr class="odd">
+
<td align="left"> </td>
+
<td align="left">unsigned long int far * vals);,</td>
+
</tr>
+
</tbody>
+
</table>
+
  
<br />
 
  
 
+
{| class="wikitable"
<table>
+
|-
<tbody>
+
! Parameter !! Beschreibung !!  Kommentar
<tr class="odd">
+
|-
<td align="left">Parameter</td>
+
| typ || 'E' = Eingang<br />'A' = Ausgang<br />'M' = Merker<br />'D' = Datenwort<br />'B' = Datenbyte auf Byteadresse || <br /><br /><br />S5 kompatibel<br />S7 kompatibel, nur S7!
<td align="left">Beschreibung</td>
+
|-
<td align="left">Kommentar</td>
+
| nr || Adresse ||
</tr>
+
|-
<tr class="even">
+
| DBNr || Datenbaustein Nummer || 1 – 16383
<td align="left">typ</td>
+
|-
<td align="left">'E' = Eingang<br />
+
| size || Anzahl der Bytes oder Datenworte<br />'E'<br />'A'<br />'M'<br />'B'<br />'D' || <br />Angabe in Bytes<br />Angabe in Bytes<br />Angabe in Bytes<br />Angabe in Bytes<br />Angabe in Datenworten.
'A' = Ausgang<br />
+
|-
'M' = Merker<br />
+
| vals ||  Byte-Werte ||  Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />Achtung: Das Feld muss groß genug sein!
'D' = Datenwort<br />
+
|-
'B' = Datenbyte auf Byteadresse</td>
+
| Rückgabe ||  0 bei Fehler || Fehlermeldungen
<td align="left"> <br />
+
|}
 <br />
+
 <br />
+
S5 kompatibel<br />
+
S7 kompatibel, nur S7!</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">nr</td>
+
<td align="left">Adresse</td>
+
<td align="left"> </td>
+
</tr>
+
<tr class="even">
+
<td align="left">DBNr</td>
+
<td align="left">Datenbaustein Nummer</td>
+
<td align="left">1 – 16383</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">size</td>
+
<td align="left">Anzahl der Bytes oder Datenworte<br />
+
'E'<br />
+
'A'<br />
+
'M'<br />
+
'B'<br />
+
'D'</td>
+
<td align="left"> <br />
+
Angabe in Bytes<br />
+
Angabe in Bytes<br />
+
Angabe in Bytes<br />
+
Angabe in Bytes<br />
+
Angabe in Datenworten.</td>
+
</tr>
+
<tr class="even">
+
<td align="left">vals</td>
+
<td align="left">Byte-Werte</td>
+
<td align="left">Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />
+
Achtung: Das Feld muss groß genug sein!</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">Rückgabe</td>
+
<td align="left">0 bei Fehler</td>
+
<td align="left">Fehlermeldungen</td>
+
</tr>
+
</tbody>
+
</table>
+
  
 
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'''<br />
 
Liest den Inhalt eines Datenbausteines aus der ''S7-SoftSPS''.
 
  
<table>
+
'''DB lesen'''
<tbody>
+
<tr class="odd">
+
<td align="left">unsigned long int DLLexport ReadDB</td>
+
<td align="left">(unsigned long int nr,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned short int far * Baustein,</td>
+
</tr>
+
<tr class="odd">
+
<td align="left"> </td>
+
<td align="left">unsigned long int far * Anzahl,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned long int Synchron);</td>
+
</tr>
+
</tbody>
+
</table>
+
  
<br />
+
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);
 +
|}
  
<table>
+
 
<tbody>
+
{| class="wikitable"
<tr class="odd">
+
|-
<td align="left">Parameter</td>
+
! Parameter !! Beschreibung !!  Kommentar
<td align="left">Beschreibung</td>
+
|-
<td align="left">Kommentar</td>
+
| nr || DB-Nummer || 1..16383
</tr>
+
|-
<tr class="even">
+
| Baustein ||  Zeiger auf den DB-Inhalt || Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />Achtung: Das Feld muss groß genug sein!
<td align="left">nr</td>
+
|-
<td align="left">DB-Nummer</td>
+
| Anzahl || Anzahl der Worte, die aus dem Baustein gelesen werden sollen || Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.
<td align="left">1..16383</td>
+
Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.
</tr>
+
|-
<tr class="odd">
+
| Synchron || Immer 0 || Bei S7 ohne Bedeutung
<td align="left">Baustein</td>
+
|-
<td align="left">Zeiger auf den DB-Inhalt</td>
+
| Rückgabe ||  0 bei Fehler || Fehlermeldungen
<td align="left">Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />
+
|}
Achtung: Das Feld muss groß genug sein!</td>
+
</tr>
+
<tr class="even">
+
<td align="left">Anzahl</td>
+
<td align="left">Anzahl der Worte, die aus dem Baustein gelesen werden sollen</td>
+
<td align="left">Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.<br />
+
Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">Synchron</td>
+
<td align="left">Immer 0</td>
+
<td align="left">Bei S7 ohne Bedeutung</td>
+
</tr>
+
<tr class="even">
+
<td align="left">Rückgabe</td>
+
<td align="left">0 bei Fehler</td>
+
<td align="left">Fehlermeldungen</td>
+
</tr>
+
</tbody>
+
</table>
+
  
 
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'''<br />
 
Beschreibt einen Datenbaustein in der ''SPS''.
 
  
<table>
+
'''DB schreiben'''
<tbody>
+
<tr class="odd">
+
<td align="left">unsigned long int DLLexport WriteDB</td>
+
<td align="left">(unsigned long int nr,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned short int far * Baustein,</td>
+
</tr>
+
<tr class="odd">
+
<td align="left"> </td>
+
<td align="left">unsigned long int far * Anzahl,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned long int Synchron);</td>
+
</tr>
+
</tbody>
+
</table>
+
  
<br />
+
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);
 +
|}
  
<table>
+
 
<tbody>
+
{| class="wikitable"
<tr class="odd">
+
|-
<td align="left">Parameter</td>
+
! Parameter !! Beschreibung !!  Kommentar
<td align="left">Beschreibung</td>
+
|-
<td align="left">Kommentar</td>
+
| nr || DB-Nummer || 1..16383
</tr>
+
|-
<tr class="even">
+
| Baustein ||  Zeiger auf den DB-Inhalt || Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />Achtung: Das Feld muss groß genug sein!
<td align="left">nr</td>
+
|-
<td align="left">DB-Nummer</td>
+
| Anzahl || Anzahl der Worte, die aus dem Baustein geschrieben werden sollen || Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.
<td align="left">1..16383</td>
+
Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.
</tr>
+
|-
<tr class="odd">
+
| Synchron || Immer 0 || Bei S7 ohne Bedeutung
<td align="left">Baustein</td>
+
|-
<td align="left">Zeiger auf den neuen DB-Inhalt</td>
+
| Rückgabe ||  0 bei Fehler || Fehlermeldungen
<td align="left">Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />
+
|}
Achtung: Das Feld muss groß genug sein!</td>
+
</tr>
+
<tr class="even">
+
<td align="left">Anzahl</td>
+
<td align="left">Anzahl der Worte, die aus dem Baustein geschrieben werden sollen.</td>
+
<td align="left">Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.<br />
+
Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">Synchron</td>
+
<td align="left">Immer 0</td>
+
<td align="left">Bei S7 ohne Bedeutung</td>
+
</tr>
+
<tr class="even">
+
<td align="left">Rückgabe</td>
+
<td align="left">0 bei Fehler</td>
+
<td align="left">Fehlermeldungen</td>
+
</tr>
+
</tbody>
+
</table>
+
  
 
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.
 
  
'''DB lesen S7'''<br />
+
ACHTUNG: ES WIRD WORTORIENTIERT GELESEN, LOW- UND HIGHBYTE WERDEN VERTAUSCHT.
Liest den Inhalt eines S7-Datenbausteines in der SPS (Byteorientiert).
+
  
<table>
 
<tbody>
 
<tr class="odd">
 
<td align="left">unsigned long int DLLexport ReadDB_S7</td>
 
<td align="left">(unsigned long int nr,</td>
 
</tr>
 
<tr class="even">
 
<td align="left"> </td>
 
<td align="left">unsigned char int far * Baustein,</td>
 
</tr>
 
<tr class="odd">
 
<td align="left"> </td>
 
<td align="left">unsigned long int far * Anzahl);</td>
 
</tr>
 
</tbody>
 
</table>
 
  
<br />
+
'''DB lesen S7'''
  
 +
Liest den Inhalt eines S7-Datenbausteines in der SPS (Byteorientiert).
  
<table>
+
{|
<tbody>
+
|-
<tr class="odd">
+
| unsigned long int DLLexport ReadDB_S7 || (unsigned long int nr,
<td align="left">Parameter</td>
+
|-
<td align="left">Beschreibung</td>
+
|  || unsigned char int far * Baustein,
<td align="left">Kommentar</td>
+
|-
</tr>
+
|  || unsigned long int far * Anzahl,
<tr class="even">
+
|}
<td align="left">nr</td>
+
 
<td align="left">DB-Nummer</td>
+
 
<td align="left">1..16383</td>
+
{| class="wikitable"
</tr>
+
|-
<tr class="odd">
+
! Parameter !! Beschreibung !!  Kommentar
<td align="left">Baustein</td>
+
|-
<td align="left">Zeiger auf den DB-Inhalt</td>
+
| nr || DB-Nummer || 1..16383
<td align="left">Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />
+
|-
Achtung: Das Feld muss groß genug sein!</td>
+
| Baustein ||  Zeiger auf den DB-Inhalt || Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />Achtung: Das Feld muss groß genug sein!
</tr>
+
|-
<tr class="even">
+
| Anzahl || Anzahl der Bytes, die aus dem Baustein gelesen werden sollen. || Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.
<td align="left">Anzahl</td>
+
Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.
<td align="left">Anzahl der Bytes, die aus dem Baustein gelesen werden sollen.</td>
+
|-
<td align="left">Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.<br />
+
| Rückgabe ||  0 bei Fehler || Fehlermeldungen
Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.</td>
+
|}
</tr>
+
<tr class="odd">
+
<td align="left">Rückgabe</td>
+
<td align="left">0 bei Fehler</td>
+
<td align="left">Fehlermeldungen</td>
+
</tr>
+
</tbody>
+
</table>
+
  
 
Länge der Parameterliste (Visual-C): 12 Bytes.
 
Länge der Parameterliste (Visual-C): 12 Bytes.
  
'''DB schreiben S7'''<br />
 
Beschreibt den Inhalt eines S7-Datenbausteines in der SPS (Byteorientiert).
 
  
<table>
+
'''DB schreiben S7'''
<tbody>
+
<tr class="odd">
+
<td align="left">unsigned long int DLLexport WriteDB_S7</td>
+
<td align="left">(unsigned long int nr,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned char int far * Baustein,</td>
+
</tr>
+
<tr class="odd">
+
<td align="left"> </td>
+
<td align="left">unsigned long int far * Anzahl);</td>
+
</tr>
+
</tbody>
+
</table>
+
  
<br />
+
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,
 +
|}
  
<table>
+
 
<tbody>
+
{| class="wikitable"
<tr class="odd">
+
|-
<td align="left">Parameter</td>
+
! Parameter !! Beschreibung !!  Kommentar
<td align="left">Beschreibung</td>
+
|-
<td align="left">Kommentar</td>
+
| nr || DB-Nummer || 1..16383
</tr>
+
|-
<tr class="even">
+
| Baustein ||  Zeiger auf den DB-Inhalt || Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />Achtung: Das Feld muss groß genug sein!
<td align="left">nr</td>
+
|-
<td align="left">DB-Nummer</td>
+
| Anzahl || Anzahl der Bytes, die aus dem Baustein geschrieben werden sollen. || Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.
<td align="left">1..16383</td>
+
Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.
</tr>
+
|-
<tr class="odd">
+
| Rückgabe ||  0 bei Fehler || Fehlermeldungen
<td align="left">Baustein</td>
+
|}
<td align="left">Zeiger auf den neuen DB-Inhalt</td>
+
<td align="left">Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />
+
Achtung: Das Feld muss groß genug sein!</td>
+
</tr>
+
<tr class="even">
+
<td align="left">Anzahl</td>
+
<td align="left">Anzahl der Bytes, die aus dem Baustein gelesen werden sollen.</td>
+
<td align="left">Falls der DB kleiner als die Anzahl ist, wird automatisch die Anzahl heruntergesetzt.<br />
+
Pointer auf eine gültige Variable im Adressraum Ihrer Applikation.</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">Rückgabe</td>
+
<td align="left">0 bei Fehler</td>
+
<td align="left">Fehlermeldungen</td>
+
</tr>
+
</tbody>
+
</table>
+
  
 
Länge der Parameterliste (Visual-C): 12 Bytes.
 
Länge der Parameterliste (Visual-C): 12 Bytes.
  
=== Funktionen zur Zahlenumwandlung ===
 
  
'''FloatToMC5'''<br />
+
== Funktionen zur Zahlenumwandlung ==
Wandelt Gleitpunktzahlen im IBM-PC-Format in S7-Doppelwörter um.
+
  
<table>
+
'''FloatToMC5'''
<tbody>
+
<tr class="odd">
+
<td align="left">void DLLexport FloatToMC5</td>
+
<td align="left">(float FloatValue,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned long far * MC5Val);</td>
+
</tr>
+
</tbody>
+
</table>
+
  
<br />
+
Wandelt Gleitpunktzahlen im IBM-PC-Format in S7-Doppelwörter um.
  
 +
{|
 +
|-
 +
| void DLLexport FloatToMC5 || (float FloatValue,
 +
|-
 +
|  ||  unsigned long far * MC5Val);
 +
|}
  
<table>
 
<tbody>
 
<tr class="odd">
 
<td align="left">Parameter</td>
 
<td align="left">Beschreibung</td>
 
<td align="left">Kommentar</td>
 
</tr>
 
<tr class="even">
 
<td align="left">FloatVal</td>
 
<td align="left">Gleitpunktzahl im IEEE- bzw. INTEL-Format</td>
 
<td align="left"> </td>
 
</tr>
 
<tr class="odd">
 
<td align="left">MC5Val</td>
 
<td align="left">Gleitpunktzahl im Siemens-S7-Format</td>
 
<td align="left"> </td>
 
</tr>
 
</tbody>
 
</table>
 
  
'''MC5ToFloat'''<br />
+
{| class="wikitable"
  Wandelt S7-Doppelwörter in Gleitpunktzahlen im IBM-PC-Format um.
+
|-
 +
! Parameter !! Beschreibung !! Kommentar
 +
|-
 +
| FloatVal || Gleitpunktzahl im IEEE- bzw. INTEL-Format ||
 +
|-
 +
| MC5Val || Gleitpunktzahl im Siemens-S7-Format ||
 +
|}
  
<table>
 
<tbody>
 
<tr class="odd">
 
<td align="left">void DLLexport MC5ToFloat</td>
 
<td align="left">(unsigned long far * MC5Val</td>
 
</tr>
 
<tr class="even">
 
<td align="left"> </td>
 
<td align="left">float FloatVal);</td>
 
</tr>
 
</tbody>
 
</table>
 
  
<br />
+
'''MC5ToFloat'''
  
 +
Wandelt S7-Doppelwörter in Gleitpunktzahlen im IBM-PC-Format um.
 +
 +
{|
 +
|-
 +
| void DLLexport MC5ToFloat  || (unsigned long far * MC5Val
 +
|-
 +
|  || float FloatVal);
 +
|}
 +
 +
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Beschreibung !!  Kommentar
 +
|-
 +
| MC5Val || Gleitpunktzahl im Siemens-S7-Format ||
 +
|-
 +
| FloatVal || Gleitpunktzahl im IEEE- bzw. INTEL-Format ||
 +
|}
  
<table>
 
<tbody>
 
<tr class="odd">
 
<td align="left">Parameter</td>
 
<td align="left">Beschreibung</td>
 
<td align="left">Kommentar</td>
 
</tr>
 
<tr class="even">
 
<td align="left">MC5Val</td>
 
<td align="left">Gleitpunktzahl im Siemens-S7-Format</td>
 
<td align="left"> </td>
 
</tr>
 
<tr class="odd">
 
<td align="left">FloatVal</td>
 
<td align="left">Gleitpunktzahl im IEEE- bzw. INTEL-Format</td>
 
<td align="left"> </td>
 
</tr>
 
</tbody>
 
</table>
 
  
=== Zugriff mit einem Webserver ===
+
== 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.
 
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.

Aktuelle Version vom 5. November 2012, 15:22 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
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.