Difference between revisions of "S7-SoftPLC:Data Interface"

From IBHsoftec Wiki English
Jump to: navigation, search
 
(4 intermediate revisions by one other user not shown)
Line 39: Line 39:
 
| val ||  Read value || Pointer to a valid variable in the user applications address space
 
| val ||  Read value || Pointer to a valid variable in the user applications address space
 
|-
 
|-
| Rückgabe || 0 on Error || Error messages
+
| return || 0 on Error || Error messages
 
|}
 
|}
  
Line 62: Line 62:
 
|}
 
|}
  
TABLE
+
 
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  comment
 +
|-
 +
| type || '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 <br />byte address<br />'P' = P_Parameter || <br /><br /><br />16-bit-access only<br />16-bit-access only<br />depending on size<br />depending on size<br />compatible to S7 only<br />S7 from version 3 only!<br />
 +
|-
 +
| no || adress || Byte address of operand to be written
 +
|-
 +
| DBNo || number of data block || 1 – 16383
 +
|-
 +
| size || number of bits<br />0..7= bit no 0 7<br />8 = 1 byte<br />16 = 1 word<br />32 = 1 double word || <br /><br />'I','Q','M' only
 +
|-
 +
| val ||  value to be written ||
 +
|-
 +
| return || 0 on error || Error messages
 +
|}
  
 
Length of parameter list (Visual-C): 20 bytes.
 
Length of parameter list (Visual-C): 20 bytes.
Line 84: Line 100:
 
|}
 
|}
  
TABLE
+
 
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  Comment
 +
|-
 +
| type || 'I' = input<br />'Q' = output<br />'M' = flag<br />'D' = data word<br />'B' =  data byte on byte address || <br /><br /><br />S5 compatible<br />compatible to S7 only
 +
|-
 +
| no || adress ||
 +
|-
 +
| DBNo || number of data block || 1 – 16383
 +
|-
 +
| size || number of data bytes or data words || destination size in bytes for type 'I', 'Q', 'M' and 'B', destination size in data words for 'D'
 +
|-
 +
| vals ||  Value of byte ||  Pointer to a valid array in the user applications address space
 +
Warning: Array has to be big enough!
 +
|-
 +
| return || 0 on error || Error messages
 +
|}
  
 
Length of parameter list (Visual-C): 20 bytes.
 
Length of parameter list (Visual-C): 20 bytes.
Line 109: Line 142:
 
|}
 
|}
  
TABLE
+
 
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  Comment
 +
|-
 +
| type || 'I' = input<br />'Q' = output<br />'M' = flag<br />'D' = data word<br />'B' = data byte on byte address || <br /><br /><br />S5 compatible<br />compatible to S7 only
 +
|-
 +
| no || adress ||
 +
|-
 +
| DBNo || number of data block || 1 – 16383
 +
|-
 +
| size || number of data bytes or data words<br />'I'<br />'Q'<br />'M'<br />'B'<br />'D' || <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
 +
|-
 +
| vals ||  value of byte || Pointer to a valid array in the user applications address space
 +
Warning: Array has to be big enough!
 +
|-
 +
| return || 0 on error || Error messages
 +
|}
  
 
Length of parameter list (Visual-C): 20 bytes.
 
Length of parameter list (Visual-C): 20 bytes.
Line 132: Line 182:
 
|}
 
|}
  
TABLE
+
 
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  Comment
 +
|-
 +
| no || number of data block || 1..16383
 +
|-
 +
| block || pointer to data block content || Pointer to a valid array in the user applications address space.
 +
Warning: Array has to be big enough!
 +
|-
 +
| size || number of words that are to be read from the data block || 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.
 +
|-
 +
| synchronous || always 0 || irrelevant for S7
 +
|-
 +
| return || 0 on error || Error messages
 +
|}
  
 
Length of parameter list (Visual-C): 16 bytes.
 
Length of parameter list (Visual-C): 16 bytes.
Line 156: Line 222:
  
  
TABLE
+
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  Comment
 +
|-
 +
| no || number of data block || 1..16383
 +
|-
 +
| block || pointer to data block content || Pointer to a valid array in the user applications address space
 +
Warning: Array has to be big enough!
 +
|-
 +
| size || number of words that are to be written into the block || 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.
 +
|-
 +
| synchronous || always 0 || irrelevant for S7
 +
|-
 +
| return || 0 on error || Error messages
 +
|}
  
 
Length of parameter list (Visual-C): 16 bytes.
 
Length of parameter list (Visual-C): 16 bytes.
Line 178: Line 259:
  
  
TABLE
+
 
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  Comment
 +
|-
 +
| no || number of data block || 1..16383
 +
|-
 +
| block || pointer to data block content || Pointer to a valid array in the user applications address space
 +
Warning: Array has to be big enough!
 +
|-
 +
| size || number of bytes that are to be read into the block || 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.
 +
|-
 +
| return || 0 on error || Error messages
 +
|}
  
 
Length of parameter list (Visual-C): 12 bytes.
 
Length of parameter list (Visual-C): 12 bytes.
Line 196: Line 291:
 
|}
 
|}
  
TABLE
+
 
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  Comment
 +
|-
 +
| no || number of data block || 1..16383
 +
|-
 +
| block || pointer to data block content || Pointer to a valid array in the user applications address space
 +
Warning: Array has to be big enough!
 +
|-
 +
| size || number of bytes that are to be written into the block || 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.
 +
|-
 +
| return || 0 on error || Error messages
 +
|}
  
 
Length of parameter list (Visual-C): 12 bytes.
 
Length of parameter list (Visual-C): 12 bytes.
Line 215: Line 324:
 
|}
 
|}
  
TABLE
+
 
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  Comment
 +
|-
 +
| FloatVal || floating point number in IEEE- or INTEL-format ||
 +
|-
 +
| MC5Val || floating point number in Siemens-S7-format ||
 +
|}
  
  
Line 229: Line 346:
 
|}
 
|}
  
TABLE
+
 
 +
{| class="wikitable"
 +
|-
 +
! Parameter !! Description !!  Comment
 +
|-
 +
| MC5Val || floating point number in Siemens-S7-format ||
 +
|-
 +
| FloatVal || floating point number in IEEE- or INTEL-format ||
 +
|}
  
  

Latest revision as of 12:32, 19 December 2012

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 type,
unsigned long int no,
unsigned long int DBNo,
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
return 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 type,
unsigned long int no,
unsigned long int DBNo,
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, byte, wort, doppelwort 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 operand to be written
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 value to be written
return 0 on error Error messages

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 type,
unsigned long int no,
unsigned long int DBNo,
unsigned long int size,
unsigned long int far * vals);,


Parameter Description Comment
type 'I' = input
'Q' = output
'M' = flag
'D' = data word
'B' = data byte on byte address



S5 compatible
compatible to S7 only
no adress
DBNo number of data block 1 – 16383
size number of data bytes or data words destination size in bytes for type 'I', 'Q', 'M' and 'B', destination size in data words for 'D'
vals Value of byte Pointer to a valid array in the user applications address space

Warning: Array has to be big enough!

return 0 on error Error messages

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 type,
unsigned long int no,
unsigned long int DBNo,
unsigned long int size,
unsigned long int far * vals);,


Parameter Description Comment
type 'I' = input
'Q' = output
'M' = flag
'D' = data word
'B' = data byte on byte address



S5 compatible
compatible to S7 only
no adress
DBNo number of data block 1 – 16383
size number of data bytes or data words
'I'
'Q'
'M'
'B'
'D'

Destination size in bytes
Destination size in bytes
Destination size in bytes
Destination size in bytes
Destination size in data words
vals value of byte Pointer to a valid array in the user applications address space

Warning: Array has to be big enough!

return 0 on error Error messages

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 no,
unsigned short int far * block,
unsigned long int far * size,
unsigned long int synchronous);


Parameter Description Comment
no number of data block 1..16383
block pointer to data block content Pointer to a valid array in the user applications address space.

Warning: Array has to be big enough!

size number of words that are to be read from the data block 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.

synchronous always 0 irrelevant for S7
return 0 on error Error messages

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 no,
unsigned short int far * block,
unsigned long int far * size,
unsigned long int synchronous);


Parameter Description Comment
no number of data block 1..16383
block pointer to data block content Pointer to a valid array in the user applications address space

Warning: Array has to be big enough!

size number of words that are to be written into the block 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.

synchronous always 0 irrelevant for S7
return 0 on error Error messages

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 no,
unsigned char int far * block,
unsigned long int far * size,


Parameter Description Comment
no number of data block 1..16383
block pointer to data block content Pointer to a valid array in the user applications address space

Warning: Array has to be big enough!

size number of bytes that are to be read into the block 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.

return 0 on error Error messages

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 no,
unsigned char int far * block,
unsigned long int far * size,


Parameter Description Comment
no number of data block 1..16383
block pointer to data block content Pointer to a valid array in the user applications address space

Warning: Array has to be big enough!

size number of bytes that are to be written into the block 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.

return 0 on error Error messages

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);


Parameter Description Comment
FloatVal floating point number in IEEE- or INTEL-format
MC5Val floating point number in Siemens-S7-format


MC5ToFloat

Converts S7 double words into floating point numbers in IBM-PC-format.

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


Parameter Description Comment
MC5Val floating point number in Siemens-S7-format
FloatVal floating point number in IEEE- or INTEL-format


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).