|
|
| Line 49: |
Line 49: |
| Writes a value in ''S7-SoftPLC''. | | Writes a value in ''S7-SoftPLC''. |
|
| |
|
| <table>
| | {| |
| <tbody>
| | |- |
| <tr class="odd">
| | | unsigned long int DLLexport WriteVal || (unsigned long int typ, |
| <td align="left">unsigned long int DLLexport WriteVal</td>
| | |- |
| <td align="left">(unsigned long int type,</td>
| | | || unsigned long int nr, |
| </tr>
| | |- |
| <tr class="even">
| | | || unsigned long int DBNr, |
| <td align="left"> </td>
| | |- |
| <td align="left">unsigned long int no,</td>
| | | || unsigned long int size, |
| </tr>
| | |- |
| <tr class="odd">
| | | || unsigned long int far * val);, |
| <td align="left"> </td>
| | |} |
| <td align="left">unsigned long int DBNo,</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 />
| | TABLE |
| | |
| | |
| <table>
| |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">type</td>
| |
| <td align="left">'I' = input<br />
| |
| 'Q' = output<br />
| |
| 'M' = flag<br />
| |
| 'C' = counter value<br />
| |
| 'T' = timer value<br />
| |
| 'D' = data word or double data word<br />
| |
| 'B' = data bit, byte, wort, doppelwort on byte address<br />
| |
| 'P' = P_Parameter</td>
| |
| <td align="left"> <br />
| |
| <br />
| |
| <br />
| |
| 16-bit-access only<br />
| |
| 16-bit-access only<br />
| |
| depending on size<br />
| |
| depending on size<br />
| |
| <br />
| |
| compatible to S7 only<br />
| |
| S7 from version 3 only</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">no</td>
| |
| <td align="left">adress</td>
| |
| <td align="left">Byte address of operand to be written</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">DBNo</td>
| |
| <td align="left">number of data block</td>
| |
| <td align="left">1 – 16383</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">size</td>
| |
| <td align="left">number of bits<br />
| |
| 0..7= bit no 0 7<br />
| |
| 8 = 1 byte<br />
| |
| 16 = 1 word<br />
| |
| 32 = 1 double word</td>
| |
| <td align="left"> <br />
| |
| 'I','Q','M' only</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">val</td>
| |
| <td align="left">value to be written</td>
| |
| <td align="left"> </td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">return</td>
| |
| <td align="left">0 on error</td>
| |
| <td align="left">Error messages</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| Length of parameter list (Visual-C): 20 bytes. | | Length of parameter list (Visual-C): 20 bytes. |
|
| |
|
| '''Read multiple values'''<br />
| |
| Reads multiple values from ''S7-SoftPLC''.
| |
|
| |
|
| <table>
| | '''Read multiple values''' |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">unsigned long int DLLexport ReadVals</td>
| |
| <td align="left">(unsigned long int type,</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int no,</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int DBNo,</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 />
| | Reads multiple values from ''S7-SoftPLC''. |
|
| |
|
| | {| |
| | |- |
| | | 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>
| | TABLE |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">type</td>
| |
| <td align="left">'I' = input<br />
| |
| 'Q' = output<br />
| |
| 'M' = flag<br />
| |
| 'D' = data word<br />
| |
| 'B' = data byte on byte address</td>
| |
| <td align="left"> <br />
| |
| <br />
| |
| <br />
| |
| S5 compatible<br />
| |
| compatible to S7 only</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">no</td>
| |
| <td align="left">adress</td>
| |
| <td align="left"> </td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">DBNo</td>
| |
| <td align="left">number of data block</td>
| |
| <td align="left">1 – 16383</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">size</td>
| |
| <td align="left">number of data bytes or data words</td>
| |
| <td align="left">destination size in bytes for type 'I', 'Q', 'M' and 'B', destination size in data words for 'D'</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">vals</td>
| |
| <td align="left">Value of byte</td>
| |
| <td align="left">Pointer to a valid array in the user applications address space<br />
| |
| Warning: Array has to be big enough!</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">return</td>
| |
| <td align="left">0 on error</td>
| |
| <td align="left">Error messages</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| Length of parameter list (Visual-C): 20 bytes. | | Length of parameter list (Visual-C): 20 bytes. |
| | |
|
| |
|
| WARNING: FOR DATA BLOCKS (TYPE 'D') THE ARRAY HAS TO BE TWICE AS BIG, SINCE 2 BYTES ARE NECESSARY FOR EVERY DATA WORD! | | WARNING: FOR DATA BLOCKS (TYPE 'D') THE ARRAY HAS TO BE TWICE AS BIG, SINCE 2 BYTES ARE NECESSARY FOR EVERY DATA WORD! |
|
| |
|
| '''Write multiple values'''<br />
| |
| Writes multiple values to ''S7-SoftPLC''.
| |
|
| |
|
| <table>
| | '''Write multiple values''' |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">unsigned long int DLLexport WriteVals</td>
| |
| <td align="left">(unsigned long int type,</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int no,</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int DBNo,</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 />
| | Writes multiple values to ''S7-SoftPLC''. |
|
| |
|
| | {| |
| | |- |
| | | 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>
| | TABLE |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">type</td>
| |
| <td align="left">'I' = input<br />
| |
| 'Q' = output<br />
| |
| 'M' = flag<br />
| |
| 'D' = data word<br />
| |
| 'B' = data byte on byte address</td>
| |
| <td align="left"> <br />
| |
| <br />
| |
| <br />
| |
| S5 compatible<br />
| |
| compatible to S7 only</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">no</td>
| |
| <td align="left">adress</td>
| |
| <td align="left"> </td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">DBNo</td>
| |
| <td align="left">number of data block</td>
| |
| <td align="left">1 – 16383</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">size</td>
| |
| <td align="left">number of data bytes or data words<br />
| |
| 'I'<br />
| |
| 'Q'<br />
| |
| 'M'<br />
| |
| 'B'<br />
| |
| 'D'</td>
| |
| <td align="left"> <br />
| |
| Destination size in bytes<br />
| |
| Destination size in bytes<br />
| |
| Destination size in bytes<br />
| |
| Destination size in bytes<br />
| |
| Destination size in data words</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">value of byte</td>
| |
| <td align="left">value of byte</td>
| |
| <td align="left">Pointer to a valid array in the user applications address space<br />
| |
| Warning: Array has to be big enough!</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">return</td>
| |
| <td align="left">0 on error</td>
| |
| <td align="left">Error messages</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| Length of parameter list (Visual-C): 20 bytes. | | Length of parameter list (Visual-C): 20 bytes. |
| | |
|
| |
|
| WARNING: FOR DATA BLOCKS (TYPE = D) THE ARRAY HAS TO BE TWICE AS BIG, SINCE 2 BYTES ARE NECESSARY FOR EVERY DATA WORD! | | WARNING: FOR DATA BLOCKS (TYPE = D) THE ARRAY HAS TO BE TWICE AS BIG, SINCE 2 BYTES ARE NECESSARY FOR EVERY DATA WORD! |
|
| |
|
| '''Read DB'''<br />
| |
| Reads the content of a data block from ''S7-SoftPLC''.
| |
|
| |
|
| <table>
| | '''Read DB''' |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">unsigned long int DLLexport ReadDB</td>
| |
| <td align="left">(unsigned long int no,</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned short int far * block,</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int far * size,</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int synchronous);</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| <br />
| | Reads the content of a data block from ''S7-SoftPLC''. |
|
| |
|
| | {| |
| | |- |
| | | unsigned long int DLLexport ReadDB || (unsigned long int nr, |
| | |- |
| | | || unsigned short int far * Baustein, |
| | |- |
| | | || unsigned long int far * Anzahl, |
| | |- |
| | | || unsigned long int Synchron); |
| | |} |
|
| |
|
| <table>
| | TABLE |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">no</td>
| |
| <td align="left">number of data block</td>
| |
| <td align="left">1..16383</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">block</td>
| |
| <td align="left">pointer to data block content</td>
| |
| <td align="left">pointer to a valid array in the user applications address space.<br />
| |
| Warning: Array has to be big enough!</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">size</td>
| |
| <td align="left">number of words that are to be read from the data block</td>
| |
| <td align="left">if the data block is smaller than the size, the size will be reduced automatically. Pointer to a valid variable in the user applications address space.</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">synchronous</td>
| |
| <td align="left">always 0</td>
| |
| <td align="left">irrelevant for S7</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">return</td>
| |
| <td align="left">0 on error</td>
| |
| <td align="left">Error messages</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| Length of parameter list (Visual-C): 16 bytes. | | Length of parameter list (Visual-C): 16 bytes. |
| | |
|
| |
|
| WARNING: WORD-ORIENTED READING, LOW- AND HIGH-BYTE ARE SWAPPED. | | WARNING: WORD-ORIENTED READING, LOW- AND HIGH-BYTE ARE SWAPPED. |
|
| |
|
| '''Write DB'''<br />
| |
| Writes a data block to ''S7-SoftPLC''.
| |
|
| |
|
| <table>
| | '''Write DB''' |
| <tbody>
| | |
| <tr class="odd">
| | Writes a data block to ''S7-SoftPLC''. |
| <td align="left">unsigned long int DLLexport WriteDB</td>
| |
| <td align="left">(unsigned long int no,</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned short int far * block,</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int far * size,</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int synchronous);</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| <br />
| | {| |
| | |- |
| | | unsigned long int DLLexport WriteDB || (unsigned long int nr, |
| | |- |
| | | || unsigned short int far * Baustein, |
| | |- |
| | | || unsigned long int far * Anzahl, |
| | |- |
| | | || unsigned long int Synchron); |
| | |} |
|
| |
|
|
| |
|
| <table>
| | TABLE |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">no</td>
| |
| <td align="left">number of data block</td>
| |
| <td align="left">1..16383</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">block</td>
| |
| <td align="left">pointer to data block content</td>
| |
| <td align="left">Pointer to a valid array in the user applications address space<br />
| |
| Warning: Array has to be big enough!</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">size</td>
| |
| <td align="left">number of words that are to be written into the block</td>
| |
| <td align="left">if the data block is smaller than the size, the size will be reduced automatically.<br />
| |
| Pointer to a valid variable in the user applications address space.</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">synchronous</td>
| |
| <td align="left">always 0</td>
| |
| <td align="left">irrelevant for S7</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">return</td>
| |
| <td align="left">0 on error</td>
| |
| <td align="left">Error messages</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| Length of parameter list (Visual-C): 16 bytes. | | Length of parameter list (Visual-C): 16 bytes. |
| | |
|
| |
|
| WARNING: WORD-ORIENTED READING, LOW- AND HIGH-BYTE ARE SWAPPED. | | WARNING: WORD-ORIENTED READING, LOW- AND HIGH-BYTE ARE SWAPPED. |
|
| |
|
| '''Read S7 DB'''<br />
| |
| Reads the content of a S7 data block from the PLC (byte oriented).
| |
|
| |
|
| <table>
| | '''Read S7 DB''' |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">unsigned long int DLLexport ReadDB_S7</td>
| |
| <td align="left">(unsigned long int no,</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned char int far * block,</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int far * size);</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| <br />
| | Reads the content of a S7 data block from the PLC (byte oriented). |
|
| |
|
| | {| |
| | |- |
| | | unsigned long int DLLexport ReadDB_S7 || (unsigned long int nr, |
| | |- |
| | | || unsigned char int far * Baustein, |
| | |- |
| | | || unsigned long int far * Anzahl, |
| | |} |
|
| |
|
| <table>
| | |
| <tbody>
| | TABLE |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">no</td>
| |
| <td align="left">number of data block</td>
| |
| <td align="left">1..16383</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">block</td>
| |
| <td align="left">pointer to data block content</td>
| |
| <td align="left">Pointer to a valid array in the user applications address space<br />
| |
| Warning: Array has to be big enough!</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">size</td>
| |
| <td align="left">number of bytes that are to be read into the block</td>
| |
| <td align="left">if the data block is smaller than the size, the size will be reduced automatically.<br />
| |
| Pointer to a valid variable in the user applications address space.</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">return</td>
| |
| <td align="left">0 on error</td>
| |
| <td align="left">Error messages</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| Length of parameter list (Visual-C): 12 bytes. | | Length of parameter list (Visual-C): 12 bytes. |
|
| |
|
| '''Write S7 DB'''<br />
| |
| Writes the content of a S7 data block in the PLC (byte-oriented).
| |
|
| |
|
| <table>
| | '''Write S7 DB''' |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">unsigned long int DLLexport WriteDB_S7</td>
| |
| <td align="left">(unsigned long int no,</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned char int far * block,</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left"> </td>
| |
| <td align="left">unsigned long int far * size);</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| <br />
| | Writes the content of a S7 data block in the PLC (byte-oriented). |
|
| |
|
| | {| |
| | |- |
| | | unsigned long int DLLexport WriteDB_S7 || (unsigned long int nr, |
| | |- |
| | | || unsigned char int far * Baustein, |
| | |- |
| | | || unsigned long int far * Anzahl, |
| | |} |
|
| |
|
| <table>
| | TABLE |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">no</td>
| |
| <td align="left">number of data block</td>
| |
| <td align="left">1..16383</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">block</td>
| |
| <td align="left">pointer to data block content</td>
| |
| <td align="left">Pointer to a valid array in the user applications address space<br />
| |
| Warning: Array has to be big enough!</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">size</td>
| |
| <td align="left">number of bytes that are to be written into the block</td>
| |
| <td align="left">if the data block is smaller than the size, the size will be reduced automatically.<br />
| |
| Pointer to a valid variable in the user applications address space.</td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">return</td>
| |
| <td align="left">0 on error</td>
| |
| <td align="left">Error messages</td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| Length of parameter list (Visual-C): 12 bytes. | | Length of parameter list (Visual-C): 12 bytes. |
| | |
|
| |
|
| === Functions for data conversion === | | === Functions for data conversion === |
|
| |
|
| '''FloatToMC5'''<br />
| |
| Converts floating point numbers from IBM-PC-format into S7 double words.
| |
|
| |
|
| <table>
| | '''FloatToMC5''' |
| <tbody>
| | |
| <tr class="odd">
| | Converts floating point numbers from IBM-PC-format into S7 double words. |
| <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 />
| | {| |
| | |- |
| | | void DLLexport FloatToMC5 || (float FloatValue, |
| | |- |
| | | || unsigned long far * MC5Val); |
| | |} |
|
| |
|
| | TABLE |
|
| |
|
| <table>
| |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">FloatVal</td>
| |
| <td align="left">floating point number in IEEE- or INTEL-format</td>
| |
| <td align="left"> </td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">MC5Val</td>
| |
| <td align="left">floating point number in Siemens-S7-format</td>
| |
| <td align="left"> </td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| '''MC5ToFloat'''<br /> | | '''MC5ToFloat''' |
| Converts S7 double words into floating point numbers in IBM-PC-format.
| |
|
| |
|
| <table>
| | Converts S7 double words into floating point numbers in IBM-PC-format. |
| <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 />
| | {| |
| | |- |
| | | void DLLexport MC5ToFloat || (unsigned long far * MC5Val |
| | |- |
| | | || float FloatVal); |
| | |} |
|
| |
|
| | TABLE |
|
| |
|
| <table>
| |
| <tbody>
| |
| <tr class="odd">
| |
| <td align="left">parameter</td>
| |
| <td align="left">description</td>
| |
| <td align="left">comment</td>
| |
| </tr>
| |
| <tr class="even">
| |
| <td align="left">MC5Val</td>
| |
| <td align="left">floating point number in Siemens-S7-format</td>
| |
| <td align="left"> </td>
| |
| </tr>
| |
| <tr class="odd">
| |
| <td align="left">FloatVal</td>
| |
| <td align="left">floating point number in IEEE- or INTEL-format</td>
| |
| <td align="left"> </td>
| |
| </tr>
| |
| </tbody>
| |
| </table>
| |
|
| |
|
| === Accessing with a web server === | | === Accessing with a web server === |
|
| |
|
| If you are intending to access ''S7-SoftPLC'' with web applications(IIS), which should have access to the process data, please contact our support for examples. The ''S7-SoftPLC'' installs an object, which allows data access from script languages (VB Sript, J Script). | | If you are intending to access ''S7-SoftPLC'' with web applications(IIS), which should have access to the process data, please contact our support for examples. The ''S7-SoftPLC'' installs an object, which allows data access from script languages (VB Sript, J Script). |
Data interface to S7-SoftPLC
S7-SoftPLC can be accessed directly by various high level languages (e.g. Visual Basic®, Visual C/C++® or Borland C++Builder®). The DLL required for this (PLC32.DLL) is installed with S7-SoftPLC. The PLC32.DLL is a 32 Bit application.
Below the available functions for a data exchange are described.
Data transmitting functions
Read a single value
Reads a value from S7-SoftPLC.
| 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 |
Description |
Comment
|
| type |
'I' = input 'Q' = output 'M' = flag 'C' = counter value 'T' = timer value 'D' = data word or double data word 'B' = data bit, word, double word on byte address 'P' = P_Parameter |
16-bit-access only 16-bit-access only depending on size depending on size compatible to S7 only S7 from version 3 only
|
| no |
adress |
Byte address of read in operand
|
| DBNo |
Number of data block |
1 – 16383
|
| size |
Number of bits 0..7= bit no 0 7 8 = 1 byte 16 = 1 word 32 = 1 double word |
'I','Q','M' only
|
| val |
Read value |
Pointer to a valid variable in the user applications address space
|
| Rückgabe |
0 on Error |
Error messages
|
Length of parameter list (Visual-C): 20 bytes.
Write a single value
Writes a value in S7-SoftPLC.
| 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
Length of parameter list (Visual-C): 20 bytes.
Read multiple values
Reads multiple values from S7-SoftPLC.
| 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
Length of parameter list (Visual-C): 20 bytes.
WARNING: FOR DATA BLOCKS (TYPE 'D') THE ARRAY HAS TO BE TWICE AS BIG, SINCE 2 BYTES ARE NECESSARY FOR EVERY DATA WORD!
Write multiple values
Writes multiple values to S7-SoftPLC.
| 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
Length of parameter list (Visual-C): 20 bytes.
WARNING: FOR DATA BLOCKS (TYPE = D) THE ARRAY HAS TO BE TWICE AS BIG, SINCE 2 BYTES ARE NECESSARY FOR EVERY DATA WORD!
Read DB
Reads the content of a data block from S7-SoftPLC.
| unsigned long int DLLexport ReadDB |
(unsigned long int nr,
|
|
unsigned short int far * Baustein,
|
|
unsigned long int far * Anzahl,
|
|
unsigned long int Synchron);
|
TABLE
Length of parameter list (Visual-C): 16 bytes.
WARNING: WORD-ORIENTED READING, LOW- AND HIGH-BYTE ARE SWAPPED.
Write DB
Writes a data block to S7-SoftPLC.
| unsigned long int DLLexport WriteDB |
(unsigned long int nr,
|
|
unsigned short int far * Baustein,
|
|
unsigned long int far * Anzahl,
|
|
unsigned long int Synchron);
|
TABLE
Length of parameter list (Visual-C): 16 bytes.
WARNING: WORD-ORIENTED READING, LOW- AND HIGH-BYTE ARE SWAPPED.
Read S7 DB
Reads the content of a S7 data block from the PLC (byte oriented).
| unsigned long int DLLexport ReadDB_S7 |
(unsigned long int nr,
|
|
unsigned char int far * Baustein,
|
|
unsigned long int far * Anzahl,
|
TABLE
Length of parameter list (Visual-C): 12 bytes.
Write S7 DB
Writes the content of a S7 data block in the PLC (byte-oriented).
| unsigned long int DLLexport WriteDB_S7 |
(unsigned long int nr,
|
|
unsigned char int far * Baustein,
|
|
unsigned long int far * Anzahl,
|
TABLE
Length of parameter list (Visual-C): 12 bytes.
Functions for data conversion
FloatToMC5
Converts floating point numbers from IBM-PC-format into S7 double words.
| void DLLexport FloatToMC5 |
(float FloatValue,
|
|
unsigned long far * MC5Val);
|
TABLE
MC5ToFloat
Converts S7 double words into floating point numbers in IBM-PC-format.
| void DLLexport MC5ToFloat |
(unsigned long far * MC5Val
|
|
float FloatVal);
|
TABLE
Accessing with a web server
If you are intending to access S7-SoftPLC with web applications(IIS), which should have access to the process data, please contact our support for examples. The S7-SoftPLC installs an object, which allows data access from script languages (VB Sript, J Script).