S7-SoftSPS:Datenschnittstelle: Unterschied zwischen den Versionen

Aus IBHsoftec Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Von verschiedenen Programmiersystemen (z.B. Visual Basic<sup>®</sup>, Visual C/C++<sup>®</sup> oder Borland C++Builder<sup>®</sup>) kann direkt auf die ''S7…“)
 
 
(5 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
Zeile 43: Zeile 43:
 
Länge der Parameterliste (Visual-C): 20 Bytes.
 
Länge der Parameterliste (Visual-C): 20 Bytes.
  
'''Wert schreiben'''<br />
 
Schreibt einen Wert in die ''S7-SoftSPS''.
 
  
<table>
+
'''Wert schreiben'''
<tbody>
+
<tr class="odd">
+
<td align="left">unsigned long int DLLexport WriteVal</td>
+
<td align="left">(unsigned long int typ,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned long int nr,</td>
+
</tr>
+
<tr class="odd">
+
<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 * val);,</td>
+
</tr>
+
</tbody>
+
</table>
+
  
<br />
+
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);,
 +
|}
  
<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>
+
| typ || 'E' = Eingang<br />'A' = Ausgang<br />'M' = Merker<br />'Z' = Zählerwert<br />'T' = Zeitwert<br />'D' = Datenwort oder Datendoppelwort<br />'B' = Datenbit,-byte,-wort,-doppelwort<br />auf Byteadresse<br />'P' = P_Parameter || <br /><br /><br />nur 16-Bit-Zugriff<br />nur 16-Bit-Zugriff<br />abhängig vom Parameter size<br />
</tr>
+
abhängig von size<br />S7 kompatibel, nur S7!<br />nur S7 ab Version 3!<br />
<tr class="even">
+
|-
<td align="left">typ</td>
+
| nr || Adresse || Byteadresse des einzulesenden Operanden
<td align="left">'E' = Eingang<br />
+
|-
'A' = Ausgang<br />
+
| DBNr || Datenbaustein Nummer || 1 – 16383
'M' = Merker<br />
+
|-
'Z' = Zählerwert<br />
+
| size || Anzahl der Bits<br />0..7= Bit Nr 0 7<br />8 = 1 Byte<br />16 = 1 Wort<br />32 = 1 Doppelwort || <br /><br />nur 'E','A','M'
'T' = Zeitwert<br />
+
|-
'D' = Datenwort oder Datendoppelwort<br />
+
| val ||  Zu schreibender Wert ||
'B' = Datenbit,-byte,-wort,-doppelwort auf Byteadresse<br />
+
|-
'P' = P_Parameter</td>
+
| Rückgabe ||  0 bei Fehler || Fehlermeldungen
<td align="left"> <br />
+
|}
 <br />
+
 <br />
+
nur 16-Bit-Zugriff<br />
+
nur 16-Bit-Zugriff<br />
+
abhängig vom Parameter size<br />
+
abhängig von size<br />
+
 <br />
+
S7 kompatibel, nur S7!<br />
+
nur S7 ab Version 3!</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">nr</td>
+
<td align="left">Adresse</td>
+
<td align="left">Byteadresse des einzulesenden Operanden</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 Bits<br />
+
0..7= Bit Nr 0 7<br />
+
8 = 1 Byte<br />
+
16 = 1 Wort<br />
+
32 = 1 Doppelwort</td>
+
<td align="left"> <br />
+
nur 'E','A','M'</td>
+
</tr>
+
<tr class="even">
+
<td align="left">val</td>
+
<td align="left">Zu schreibender Wert</td>
+
<td align="left"> </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.
  
'''Mehrere Werte lesen'''<br />
 
Liest mehrere Werte aus der ''S7-SoftSPS''.
 
  
<table>
+
'''Mehrere Werte lesen'''
<tbody>
+
<tr class="odd">
+
<td align="left">unsigned long int DLLexport ReadVals</td>
+
<td align="left">(unsigned long int typ,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned long int nr,</td>
+
</tr>
+
<tr class="odd">
+
<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 />
+
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);,
 +
|}
  
<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>
+
| 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!
</tr>
+
|-
<tr class="even">
+
| nr || Adresse ||
<td align="left">typ</td>
+
|-
<td align="left">'E' = Eingang<br />
+
| DBNr || Datenbaustein Nummer || 1 – 16383
'A' = Ausgang<br />
+
|-
'M' = Merker<br />
+
| size || Anzahl der Bytes oder Datenworte || Bei typ: 'E', 'A', 'M' und 'B' Angabe in Bytes, bei 'D' Angabe in Datenworten.
'D' = Datenwort<br />
+
|-
'B' = Datenbyte auf Byteadresse</td>
+
| vals ||  Byte-Werte ||  Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />Achtung: Das Feld muss groß genug sein!
<td align="left"> <br />
+
|-
 <br />
+
| Rückgabe ||  0 bei Fehler || Fehlermeldungen
 <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</td>
+
<td align="left">Bei typ: 'E', 'A', 'M' und 'B' Angabe in Bytes, bei 'D' 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!
  
'''Mehrere Werte schreiben'''<br />
 
Schreibt mehrere Werte in die ''S7-SoftSPS''.
 
  
<table>
+
'''Mehrere Werte schreiben'''
<tbody>
+
<tr class="odd">
+
<td align="left">unsigned long int DLLexport WriteVals</td>
+
<td align="left">(unsigned long int typ,</td>
+
</tr>
+
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">unsigned long int nr,</td>
+
</tr>
+
<tr class="odd">
+
<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 />
+
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);,
 +
|}
  
<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>
+
| 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!
</tr>
+
|-
<tr class="even">
+
| nr || Adresse ||
<td align="left">typ</td>
+
|-
<td align="left">'E' = Eingang<br />
+
| DBNr || Datenbaustein Nummer || 1 – 16383
'A' = Ausgang<br />
+
|-
'M' = Merker<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.
'D' = Datenwort<br />
+
|-
'B' = Datenbyte auf Byteadresse</td>
+
| vals ||  Byte-Werte ||  Pointer auf ein gültiges Array im Adressraum Ihrer Applikation.<br />Achtung: Das Feld muss groß genug sein!
<td align="left"> <br />
+
|-
 <br />
+
| Rückgabe ||  0 bei Fehler || Fehlermeldungen
 <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.
+
 
 +
'''FloatToMC5'''
 +
 
 +
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">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 />
+
{| class="wikitable"
 +
|-
 +
! Parameter !! Beschreibung !!  Kommentar
 +
|-
 +
| FloatVal || Gleitpunktzahl im IEEE- bzw. INTEL-Format ||
 +
|-
 +
| MC5Val || Gleitpunktzahl im Siemens-S7-Format ||
 +
|}
  
  
<table>
+
'''MC5ToFloat'''
<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 />
+
Wandelt S7-Doppelwörter in Gleitpunktzahlen im IBM-PC-Format um.
Wandelt S7-Doppelwörter in Gleitpunktzahlen im IBM-PC-Format um.
+
  
<table>
+
{|
<tbody>
+
|-
<tr class="odd">
+
| void DLLexport MC5ToFloat || (unsigned long far * MC5Val
<td align="left">void DLLexport MC5ToFloat</td>
+
|-
<td align="left">(unsigned long far * MC5Val</td>
+
|  || float FloatVal);
</tr>
+
|}
<tr class="even">
+
<td align="left"> </td>
+
<td align="left">float FloatVal);</td>
+
</tr>
+
</tbody>
+
</table>
+
  
<br />
 
  
 +
{| 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.