Namespace: IPS7Lnk
Assemblies: IPS7LnkNet.Advanced.dll, IPS7LnkNet.Advanced.dll
The IPS7 type exposes the following members.
Referenznummer auf die Verbindung in der IPS7Lnk.dll.
C#
public IPS7()
Dient zur Deinitialisierung der Verbindung, Speicher wird freigegeben und die TCP/IP-Verbindung wird getrennt.
C#
public int Close()
Returns
0 Alles OK Speicher wieder freigegeben und Verbindung, wenn vorhanden geschlossen -3 Mit der angegebenen Referenznummer wurde kein IPS7Open durchgeführt Haben Sie IPS7Open aufgerufen ?. -99 Die Referenznummer ist ungültig ————————
Prüft den TCP/IP Verbindungsstatus zur SPS
C#
public int GetConnectStatus()
Returns
1 Verbindung ist OKay. 0 die Verbindung ist unterbrochen
Liefert die bis zu 20 letzen Telegramme als ByteArray Das Array ist 3-dimenisonal [x][y][z] x = 0: Sendetelegramm x = 1: Antworttelegramm y = 0 .. 19: Index auf die entprechende Telegrammnummer z = 0 .. n: die einzelnen Bytes des Telegramms
C#
public byte[][][] GetLastPackets()
Returns
Byte[][][]
3-dimensionles Byte-Array
Liefert den letzen Socket-Fehler, der bei der TCP/IP-Kommunikation aufgetreten ist.
C#
public int GetSockErr()
Returns
Socketfehler: Diese Liste erhebt keinen Anspruch auf Vollständigkeit ^ ^ NameCodeBedeutung ^ | | WSAEINTR10004Aufruf wurde abgebrochen | | | WSAEACCESS10013Zugriffsfehler | | | WSAEFAULT10014Parameter sind falsch | | | WSAEINVAL100221.Andere Funktion muß vorher aufgerufen werden 2. Socket ist schon an Adresse gebunden 3. Socket noch nicht an Adresse gebunden bzw. schon verbunden. | | | WSAEMFILE10024Resourcen fehlen (Dateien, Warteschlangen) | | | WSAEWOULDBLOCK10035Aufruf würde blockieren | | | WSAEINPROGRESS10036Parallele Aufrufe nicht erlaubt | | | WSAEALREADY10037Abgebrochene Routine trotzdem schon fertig | | | WSAENOTSOCK10038Kein gültiger Socket angegeben | | | WSAEDESTADDRREQ10039Zieladresse benötigt | | | WSAEMSGSIZE10040Datagram zu groß, wurde abgeschnitten | | | WSAENOPROTOOPT10042Unbekannte Socket-Option | | | WSAEPROTONOSUPPORT10043Protokoll wird nicht unterstützt | | | WSAESOCKTNOSUPPORT10044Sockettyp wird in angegebener Adressfamilie nicht unterstützt | | | WSAEOPNOTSUPP10045Dieser Sockettyp wird nicht unterstützt | | | WSAEPFNOSUPPORT10046Protokollfamilie wird nicht unterstützt | | | WSAEAFNOSUPPORT10047Adressfamilie wird nicht unterstützt | | | WSAEADDRINUSE10048IP-Adresse bzw. Port werden schon/noch benutzt | | | WSAEADDRNOTAVAIL10049Port/Adresse nicht verfügbar | | | WSAENETDOWN10050Netzwerk reagiert nicht | | | WSAENETUNREACH10051Netzwerk kann nicht erreicht werden | | | WSAENETRESET10052Verbindung durch TCP/IP zurückgesetzt | | | WSAECONNABORTED10053Verbindung durch TCP/IP abgebrochen | | | WSAECONNRESET10054Partner hat Verbindung zurückgesetzt | | | WSAENOBUFS10055Resourcen fehlen (Interner Pufferspeicher) | | | WSAEISCONN10056Socket ist schon verbunden | | | WSAENOTCONN10057Socket ist noch nicht verbunden | | | WSAESHUTDOWN10058Andere Seite hat Verbindung einseitig beendet | | | WSAETIMEDOUT10060Aufruf dauert zu lange, daher Abbruch | | | WSAECONNREFUSED10061Angerufener möchte keinen Verbindungsaufbau | | | WSAEHOSTUNREACH10065Host nicht erreicbar | | | WSASYSNOTREADY10091Netzwerk nicht zur Kommunikation bereit | | | WSAVERNOTSUPPORTED10092gewünschte Winsock-Version wird nicht unterstützt | | | WSANOTINITIALISED10093vSocket.Initialize muß aufgerufen werden | | | WSAHOST_NOT_FOUND11001DNS-Server nicht gefunden | | | WSATRY_AGAIN11002Gesuchter Rechner nicht gefunden | | | WSANO_RECOVERY11003Nicht behebbarer Fehler | | | WSANO_DATA11004Keine Namensdaten vorhanden |
Dient zur Initialisierung der Verbindung, dort wird nur Speicher vorbereitet. Erst beim ersten Aufruf der Lese- oder Schreibfunktionen wird, die TCP/IP-Verbindung automatisch gestartet. Es wird eine OP-Verbindung angelegt!
C#
public int Open(string IPAdr, uint Rack, uint Slot, uint RxTimeout, uint TxTimeout, uint ConnectTimeout)
Parameters
IPAdr
String
IP-Adresse der SPS im Format: xxx.xxx.xxx.xxx. Beispiel: 192.168.0.100
Rack
UInt32
Racknummer der Ziel-CPU
Slot
UInt32
Slotnummer der Ziel-CPU
RxTimeout
UInt32
Timeout in ms für Warten auf TCP/IP-Paket von der SPS. 0 = Standardeinstellung = 5000 ms
TxTimeout
UInt32
Timeout in ms für Senden eines TCP/IP-Paketes an die SPS. 0 = Standardeinstellung = 5000 ms
ConnectTimeout
UInt32
Timeout in ms für Warten auf Verbindungsaufbau mit SPS. 0 = Standardeinstellung = 5000 ms ( 5sec.)muss bei Bedarf verlängert werden.
Returns
Die Rückgabe ist die Referenznummer für diese Verbindung. ^ Wert ^ Beschreibung ^ | >= 0 | Alles OK.Result.E_NOERR | | E_NORESOURCE -2 | Keine Resourcen mehr frei. Maximale Anzahl an verfügbaren Verbindungen erreicht. | | E_ALREADY_OPENED -21 | Verbindung bereits geöffnet. Nur bei .NET Es wurde bereits ein Open ausgeführt. |
Dient zur Initialisierung der Verbindung, dort wird nur Speicher vorbereitet. Erst beim ersten Aufruf der Lese- oder Schreibfunktionen wird, die TCP/IP-Verbindung automatisch gestartet. Die Art der Verbindung OP/PG und der Typ der CPU werden über seperate Eingangsparameter ausgewählt. Weiter kann hier festgelegt werden, ob ein Routing auf eine andere CPU über ein SubNetz erreicht werden soll. (Hierfür muß der Treiber mit der Routing-Option lizenziert sein!)
C#
public int OpenEx(string IPAdr, uint Rack, uint Slot, uint SubNetId, uint DstMPIAdr, uint AccessMode, uint RxTimeout, uint TxTimeout, uint ConnectTimeout, byte[] LocalTSAP = null, byte[] RemoteTSAP = null)
Parameters
IPAdr
String
IP-Adresse der SPS im Format: xxx.xxx.xxx.xxx. Beispiel: 192.168.0.100
Rack
UInt32
Racknummer der Ziel-CPU
Slot
UInt32
Slotnummer der Ziel-CPU
SubNetId
UInt32
Subnetz-ID, wenn über ein Subnetzu zugegriffen werden soll. In der Step-S7 Software wird die Adresse z.B. so dargestellt: 0035 – 0001, geben Sie dann an 0x00350001 Wird nur bei AccessMode 10 oder 11 verwendet. Siehe AccessModes AM
DstMPIAdr
UInt32
ZielMPI-Adresse, wenn über ein Subnetz die Verbindung aufgebaut werden soll. Siehe AccessMode 10 und 11! Siehe AccessModes AM
AccessMode
UInt32
Siehe AccessModes AM
RxTimeout
UInt32
Timeout in ms für Warten auf TCP/IP-Paket von der SPS. 0 = Standardeinstellung = 5000 ms
TxTimeout
UInt32
Timeout in ms für Senden eines TCP/IP-Paketes an die SPS. 0 = Standardeinstellung = 5000 ms
ConnectTimeout
UInt32
Timeout in ms für Warten auf Verbindungsaufbau mit SPS. 0 = Standardeinstellung = 5000 ms ( 5sec.)muss bei Bedarf verlängert werden.
LocalTSAP
Byte[]
RemoteTSAP
Byte[]
Returns
Die Rückgabe ist die Referenznummer für diese Verbindung. ^ Wert ^ Beschreibung ^ | >= 0 | Alles OK.Result.E_NOERR | | E_NORESOURCE -2 | Keine Resourcen mehr frei. Maximale Anzahl an verfügbaren Verbindungen erreicht. | | E_ALREADY_OPENED -21 | Verbindung bereits geöffnet. Nur bei .NET Es wurde bereits ein Open ausgeführt. |
Dient zur Initialisierung der Verbindung, dort wird nur Speicher vorbereitet. Erst beim ersten Aufruf der Lese- oder Schreibfunktionen wird, die TCP/IP-Verbindung automatisch gestartet. Es wird eine PG-Verbindung angelegt!
C#
public int OpenPG(string IPAdr, uint Rack, uint Slot, uint RxTimeout, uint TxTimeout, uint ConnectTimeout)
Parameters
IPAdr
String
IP-Adresse der SPS im Format: xxx.xxx.xxx.xxx. Beispiel: 192.168.0.100
Rack
UInt32
Racknummer der Ziel-CPU
Slot
UInt32
Slotnummer der Ziel-CPU
RxTimeout
UInt32
Timeout in ms für Warten auf TCP/IP-Paket von der SPS. 0 = Standardeinstellung = 5000 ms
TxTimeout
UInt32
Timeout in ms für Senden eines TCP/IP-Paketes an die SPS. 0 = Standardeinstellung = 5000 ms
ConnectTimeout
UInt32
Timeout in ms für Warten auf Verbindungsaufbau mit SPS. 0 = Standardeinstellung = 5000 ms ( 5sec.)muss bei Bedarf verlängert werden.
Returns
Die Rückgabe ist die Referenznummer für diese Verbindung. ^ Wert ^ Beschreibung ^ | >= 0 | Alles OK.Result.E_NOERR | | E_NORESOURCE -2 | Keine Resourcen mehr frei. Maximale Anzahl an verfügbaren Verbindungen erreicht. | | E_ALREADY_OPENED -21 | Verbindung bereits geöffnet. Nur bei .NET Es wurde bereits ein Open ausgeführt. |
Dient zur Initialisierung der Verbindung, dort wird nur Speicher vorbereitet. Erst beim ersten Aufruf der Lese- oder Schreibfunktionen wird, die TCP/IP-Verbindung automatisch gestartet. Es wird eine S7-200-Verbindung angelegt!
C#
public int OpenS7200(string IPAdr, uint Rack, uint Slot, uint RxTimeout, uint TxTimeout, uint ConnectTimeout)
Parameters
IPAdr
String
IP-Adresse der SPS im Format: xxx.xxx.xxx.xxx. Beispiel: 192.168.0.100
Rack
UInt32
Racknummer der Ziel-CPU
Slot
UInt32
Slotnummer der Ziel-CPU
RxTimeout
UInt32
Timeout in ms für Warten auf TCP/IP-Paket von der SPS. 0 = Standardeinstellung = 5000 ms
TxTimeout
UInt32
Timeout in ms für Senden eines TCP/IP-Paketes an die SPS. 0 = Standardeinstellung = 5000 ms
ConnectTimeout
UInt32
Timeout in ms für Warten auf Verbindungsaufbau mit SPS. 0 = Standardeinstellung = 5000 ms ( 5sec.)muss bei Bedarf verlängert werden.
Returns
Die Rückgabe ist die Referenznummer für diese Verbindung. ^ Wert ^ Beschreibung ^ | >= 0 | Alles OK.Result.E_NOERR | | E_NORESOURCE -2 | Keine Resourcen mehr frei. Maximale Anzahl an verfügbaren Verbindungen erreicht. | | E_ALREADY_OPENED -21 | Verbindung bereits geöffnet. Nur bei .NET Es wurde bereits ein Open ausgeführt. |
Liest einen einzelnen Real-Wert aus der SPS.
C#
public int Rd(char DataArea, uint DBNo, uint Start, ref double Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll.
Buf
Double
Referenz auf den double im Anwenderprogramm.
Returns
siehe: Result
Liest einen einzelnen short-Wert (16 Bit) aus der SPS.
C#
public int Rd(char DataArea, uint DBNo, uint Start, ref short Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Buf
Int16
Referenz auf den short im Anwenderprogramm.
Returns
siehe: Result
Liest einen einzelnen int-Wert (32 Bit) aus der SPS.
C#
public int Rd(char DataArea, uint DBNo, uint Start, ref int Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Buf
Int32
Referenz auf den int im Anwenderprogramm.
Returns
siehe: Result
Liest einen einzelnen ushort-Wert (16 Bit) aus der SPS.
C#
public int Rd(char DataArea, uint DBNo, uint Start, ref ushort Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine! Dies gilt auch für Datenbausteine!
Buf
UInt16
Referenz auf den ushort im Anwenderprogramm.
Returns
siehe: Result
Liest eines einzelnen uint-Wertes (16 Bit) aus der SPS.
C#
public int Rd(char DataArea, uint DBNo, uint Start, ref uint Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Buf
UInt32
Referenz auf den uint im Anwenderprogramm.
Returns
siehe: Result
Liest byteweise Daten aus der SPS in ein byte-Array.
C#
public int Rd(char DataArea, uint DBNo, uint Start, uint Cnt, byte[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des gewünschten Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes, ab welchem der Lesevorgang gestartet werden soll.
Cnt
UInt32
Anzahl der zu lesenden bytes.
Buf
Byte[]
Pointer auf ein byte-Array im Anwenderprogramm.
Returns
siehe: Result
Liest byteweise Daten aus der SPS in ein char-Array.
C#
public int Rd(char DataArea, uint DBNo, uint Start, uint Cnt, char[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des gewünschten Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes, ab welchem der Lesevorgang gestartet werden soll.
Cnt
UInt32
Anzahl der zu lesenden Chars.
Buf
Char[]
Pointer auf ein Char-Array im Anwenderprogramm.
Returns
siehe: Result
Liest ein Real-Array Daten aus der SPS in ein double-Array.
C#
public int Rd(char DataArea, uint DBNo, uint Start, uint Cnt, double[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll.
Cnt
UInt32
Anzahl der zu lesenden doubles (Real-Werte).
Buf
Double[]
Pointer auf ein double-Array im Anwenderprogramm.
Returns
siehe: Result
Liest wortweise Daten aus der SPS in ein short (16-Bit)-Array.
C#
public int Rd(char DataArea, uint DBNo, uint Start, uint Cnt, short[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu lesenden shorts.
Buf
Int16[]
Pointer auf ein short-Array im Anwenderprogramm.
Returns
siehe: Result
Liest doppelwortweise Daten aus der SPS in ein int(32-Bit)-Array.
C#
public int Rd(char DataArea, uint DBNo, uint Start, uint Cnt, int[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu lesenden ints (32-Bit-Werte).
Buf
Int32[]
Pointer auf ein int-Array im Anwenderprogramm.
Returns
siehe: Result
Liest einen String aus der SPS
C#
public int Rd(char DataArea, uint DBNo, uint Start, uint Cnt, ref string Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des gewünschten Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des Bytes, ab welchem der Lesevorgang gestartet werden soll.
Cnt
UInt32
Maximale Länge des zulesenden Strings
Buf
String
ref auf string.
Returns
siehe: Result
Liest wortweise Daten aus der SPS in ein ushort (16-Bit)-Array.
C#
public int Rd(char DataArea, uint DBNo, uint Start, uint Cnt, ushort[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu lesenden ushorts.
Buf
UInt16[]
Pointer auf ein ushort-Array im Anwenderprogramm.
Returns
siehe: Result
Liest doppelwortweise Daten aus der SPS in ein uint(32-Bit)-Array.
C#
public int Rd(char DataArea, uint DBNo, uint Start, uint Cnt, uint[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu lesenden uints (32-Bit-Werte).
Buf
UInt32[]
Pointer auf ein uint-Array im Anwenderprogramm.
Returns
siehe: Result
Liest einen Anzahl bytes aus der SPS. Diese Funktion ist nur im unsafe-Mode zu verwenden!
C#
public int RdB(char DataArea, uint DBNo, uint Start, uint Cnt, byte *Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Wird nicht ausgewertet, da mit dieser Funktion kein Zugriff auf Db / DX möglich ist.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll.
Cnt
UInt32
Anzahl der bytes, die gelesen werden sollen.
Buf
Byte*
Pointer auf den byte-Buffer.
Returns
siehe: Result
Liest ein einzelnes Bit aus der SPS in eine byte Variable ein
C#
public int RdBit(char DataArea, uint DBNo, uint ByteNo, uint Bit, ref byte Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
ByteNo
UInt32
Nummer des bytes ab welchem gelesen werden soll.
Bit
UInt32
Bitnummer (0 - 7) des bytes, welches gelesen werden soll.
Buf
Byte
Referenz auf das “byte” im Anwenderprogramm.
Returns
siehe: Result
Liest ein einzelnes Bit aus der SPS in eine uint Variable ein
C#
public int RdBit(char DataArea, uint DBNo, uint ByteNo, uint Bit, ref uint Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
ByteNo
UInt32
Nummer des bytes ab welchem gelesen werden soll.
Bit
UInt32
Bitnummer (0 - 7) des bytes, welches gelesen werden soll.
Buf
UInt32
Referenz auf den “uint” im Anwenderprogramm.
Returns
siehe: Result
Liest einen einzelnen LReal-Wert aus der SPS.
C#
public int RdL(char DataArea, uint DBNo, uint Start, ref double Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll.
Buf
Double
Referenz auf den double im Anwenderprogramm.
Returns
siehe: Result
Liest einen einzelnen LINT-Wert (64 Bit) aus der SPS.
C#
public int RdL(char DataArea, uint DBNo, uint Start, ref long Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Buf
Int64
Referenz auf den int im Anwenderprogramm.
Returns
siehe: Result
Liest eines einzelnen ULINT-Wertes (46 Bit) aus der SPS.
C#
public int RdL(char DataArea, uint DBNo, uint Start, ref ulong Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Buf
UInt64
Referenz auf den uint im Anwenderprogramm.
Returns
siehe: Result
Liest ein LReal-Array Daten aus der SPS in ein double-Array.
C#
public int RdL(char DataArea, uint DBNo, uint Start, uint Cnt, double[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll.
Cnt
UInt32
Anzahl der zu lesenden doubles (Real-Werte).
Buf
Double[]
Pointer auf ein double-Array im Anwenderprogramm.
Returns
siehe: Result
Liest aus der SPS in ein LINT(64-Bit)-Array.
C#
public int RdL(char DataArea, uint DBNo, uint Start, uint Cnt, long[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu lesenden ints (32-Bit-Werte).
Buf
Int64[]
Pointer auf ein int-Array im Anwenderprogramm.
Returns
siehe: Result
Liest aus der SPS in ein ULINT(64-Bit)-Array.
C#
public int RdL(char DataArea, uint DBNo, uint Start, uint Cnt, ulong[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Lesevorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu lesenden uints (32-Bit-Werte).
Buf
UInt64[]
Pointer auf ein uint-Array im Anwenderprogramm.
Returns
siehe: Result
ACHTUNG! Dieser Aufruf darf nur verwendet werden, wenen Ihre Applikation im Unsafed-Mode läuft und der Zielspeicher während des Aufrufs gefixed ist! Grund: Der Garbage Collector könnte während des Aufrufs die Daten verscheiben. Siehe Keyword: fixed. Ansonsten ist die Methode “RdMultiBuffered” und die Methode “GetData” von IPS7RdMulti aufzurufen. Führt einen gemischten Readauftrag aus. Zuvor ist ein Array vom Type IPS7RdMulti zu initialisieren. Siehe aufgeführtes Beispiel: Die Funktion führt eigenständig die Datenkonvertierung des S7-Datentyps in den PC-Datentyp durch. Beispiel: Es sollen Bits (Boolean) von der SPS gelesen werden. Der Zusatnd soll in einem Array von int gespeichert werden. So ist ein Requesteintrag wie folgt zu initialisieren int EBits[32]; Rq.Bit((char)'E', 0, 4, 0, 32, EBits);
Durch den Datentyp int
der Variable EBits
wird die entsprechende überladene Funktion auf gerufen. Diese setzte im Request-Eintrag den PC-Datentype auf INT32. Somit stehten nach Aufruf der S7RQMulti
Funktion in folgender Form in der Variablen: E4.0 = EBits[0] (1: wenn Bit = 1, 0: wenn Bit = 0)
E4.1 = EBits[1] (1: wenn Bit = 1, 0: wenn Bit = 0)
E4.2 = EBits[2] (1: wenn Bit = 1, 0: wenn Bit = 0)
etc.
So könnte auch ein 16-Bit-Wert der SPS in einen Realwert im PC konvertiert werden. D.h wen Wert der SPS “50” ist, so ist das bei einem Double im PC “50.0”. Desweiteren führt RdMulti
ein Optimierung bzglw. der Datenblöcke, die gelesen werden durch.
ACHTUNG: Die Lesereihenfolge entspricht nicht der Anordnung in den Requestblöcken. Jedoch wird auf die Konsitenz der Daten z.B. bei 16/32 Bit werten geachtet.
C#
public int RdMulti(IPS7RdMulti[] pRqList, uint Cnt)
Parameters
pRqList
IPS7RdMulti[]
Ein Array von Requestblöcken des Typs IPS7RdMulti
Cnt
UInt32
Anzahl der Requestblöcke
Returns
0 alle Aufträge wurden mit Erfolg ausgeführt
!= 0 bei mindestens einem Auftrag ist ein Fehler aufgetreten. Für jeden RequestBlock muss .Result zu geprüft werden.
Siehe: Result
Führt einen gemischten Readauftrag aus, die gelesenen Daten werden im sichern Zustand in den .Net -Speicher gepuffert. Der Garbage Collector wird während des Aufrufs daran gehindert die Daten verscheiben. Zuvor ist ein Array vom Type IPS7RdMulti zu initialisieren. Im Anschluss sind die Daten über die GetData-Methode in den Applikationsspeicher zu holen. IPS7RdMulti Siehe aufgeführtes Beispiel: Die Funktion führt eigenständig die Datenkonvertierung des S7-Datentyps in den PC-Datentyp durch. Beispiel: Es sollen Bits (Boolean) von der SPS gelesen werden. Der Zusatnd soll in einem Array von int gespeichert werden. So ist ein Requesteintrag wie folgt zu initialisieren int EBits[32]; Rq.Bit((char)'E', 0, 4, 0, 32, EBits);
Durch den Datentyp int
der Variable EBits
wird die entsprechende überladene Funktion auf gerufen. Diese setzte im Request-Eintrag den PC-Datentype auf INT32. Somit stehten nach Aufruf der S7RQMulti
Funktion in folgender Form in der Variablen: E4.0 = EBits[0] (1: wenn Bit = 1, 0: wenn Bit = 0)
E4.1 = EBits[1] (1: wenn Bit = 1, 0: wenn Bit = 0)
E4.2 = EBits[2] (1: wenn Bit = 1, 0: wenn Bit = 0)
etc.
So könnte auch ein 16-Bit-Wert der SPS in einen Realwert im PC konvertiert werden. D.h wen Wert der SPS “50” ist, so ist das bei einem Double im PC “50.0”. Desweiteren führt RdMulti
ein Optimierung bzglw. der Datenblöcke, die gelesen werden durch.
ACHTUNG: Die Lesereihenfolge entspricht nicht der Anordnung in den Requestblöcken. Jedoch wird auf die Konsitenz der Daten z.B. bei 16/32 Bit werten geachtet.
C#
public int RdMultiBuffered(IPS7RdMulti[] RqList, uint Cnt)
Parameters
RqList
IPS7RdMulti[]
Ein Array von Requestblöcken des Typs IPS7RdMulti
Cnt
UInt32
Anzahl der Requestblöcke
Returns
0 alle Aufträge wurden mit Erfolg ausgeführt
!= 0 bei mindestens einem Auftrag ist ein Fehler aufgetreten. Für jeden RequestBlock muss .Result zu geprüft werden.
Siehe: Result
Berechnet die Anzahl der Pakete, die für diesen gemischten Readauftrag nötig sind. Zuvor ist ein Array vom Type IPS7RdMulti zu initialisieren.
C#
public int RdMultiCalcPacketCnt(IPS7RdMulti[] pRqList, uint Cnt)
Parameters
pRqList
IPS7RdMulti[]
Cnt
UInt32
Returns
>=0 Anzahl der Pakete, < 0 Fehler aufgetreten
Liest einen Anzahl ushort aus der SPS. Diese Funktion ist nur im unsafe-Mode zu verwenden!
C#
public int RdW(char DataArea, uint DBNo, uint Start, uint Cnt, ushort *Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Wird nicht ausgewertet, da mit dieser Funktion kein Zugriff auf Db / DX möglich ist.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll.
Cnt
UInt32
Anzahl der ushorts, die gelesen werden sollen.
Buf
UInt16*
Pointer auf den ushort-Buffer.
Returns
siehe: Result
Setzt ein einzelnes Bit in der SPS zurück.
C#
public int ResetBit(char DataArea, uint DBNo, uint ByteNo, uint Bit)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
ByteNo
UInt32
Nummer des bytes, auf welches zugegriffen werden soll.
Bit
UInt32
Bitnummer (0 - 7) des bytes, auf welches zugegriffen werden soll.
Returns
siehe: Result
Setzt ein einzelnes Bit in der SPS.
C#
public int SetBit(char DataArea, uint DBNo, uint ByteNo, uint Bit)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
ByteNo
UInt32
Nummer des bytes, auf welches zugegriffen werden soll.
Bit
UInt32
Bitnummer (0 - 7) des bytes, auf welches zugegriffen werden soll.
Returns
siehe: Result
Setzt individuelle TCP/IP KeepAlive Zeiten für diese Verbindung. Wenn die Standardwerte gelten sollen muss diese Funktion nicht verwendet werden. Wenn ja, sollte Sie nach den “Open”-Aufruf ausgeführt werden. Findet innerhalb der Zeit AliveTime
(ms) kein Datenverkehr auf der TCP/IP-Verbindung statt, so wird ein KeepAlive-Telegramm gesendet, um die Verbindung zu prüfen. Wird bei dieser Prüfung ein Fehler festfestellt, sendet der IP-Stack innerhalb der Zeit AliveInterval
(ms) ein nächstes KeepAlive-Telegramm. Dies wird einige male innerhalb der Zeit AliveInterval
wiederholt (bei Windows 6 mal). War der Vorgang nicht erfolgreich, wird die Verbindung beendet.
C#
public int SetKeepAlive(uint AliveInterval, uint AliveTime)
Parameters
AliveInterval
UInt32
Das Intervall in ms, in welchem KeepAlive Telegramme wiederholt werden. Dieses wird aktiv, wenn ein Fehler beim Senden / Empfangen eines KeepAlive-Telegramms aufgetreten ist.
AliveTime
UInt32
Intervall in ms, in welchem KeepAlive Telegramme gesendet werden
Returns
0 Aufruf erfolgreich. < 0 Aufruf war nicht erfolgreich
Selects whether the Siemsn PDU-Bug should be solved. Background: some S7 400 PLCs have a problem processing the maximum count of read request sent. e.g. if PDU == 480 Byte max request count is 39. Only 38 where processed and responded. Bye default this Bug is not solved (bDoSolved = false), normaly S7 works well. (since 1.1.77.12)
C#
public void SolveSiemensPDUBug(bool bDoSolve)
Parameters
bDoSolve
Boolean
Schreibt einen einzelnen byte-Wert (8-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, byte Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll.
Value
Byte
Wert als byte.
Returns
siehe: Result
Schreibt einen einzelnen double-Wert (Real) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, double Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll.
Value
Double
Wert als double.
Returns
siehe: Result
Schreibt einen einzelnen short-Wert (16-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, short Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Value
Int16
Wert als short.
Returns
siehe: Result
Schreibt einen einzelnen int-Wert (32-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, int Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Value
Int32
Wert als int.
Returns
siehe: Result
Schreibt einen String in die SPS. Es werden maximal 254 Zichen geschrieben Achtung: Ist der reservierte Bereich in der SPS zu klein, so wird Speicher in der SPS überschrieben
C#
public int Wr(char DataArea, uint DBNo, uint Start, string Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des Bytes, ab welchem der Lesevorgang gestartet werden soll.
Buf
String
string, der geschrieben werden soll
Returns
siehe: Result
Schreibt einen einzelnen ushort-Wert (16-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, ushort Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Value
UInt16
Der Wert als ushort.
Returns
siehe: Result
Schreibt einen einzelnen uint-Wert (32-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, uint Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Value
UInt32
Wert als uint.
Returns
siehe: Result
Schreibt byteweise ein byte-Array in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, uint Cnt, byte[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes, ab welchem der Lesevorgang gestartet werden soll.
Cnt
UInt32
Anzahl der zu schreibenden bytes.
Buf
Byte[]
Pointer auf das byte-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt byteweise ein char-Array in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, uint Cnt, char[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes, ab welchem der Lesevorgang gestartet werden soll.
Cnt
UInt32
Anzahl der zu schreibenden chars.
Buf
Char[]
Pointer auf das char-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt ein double-Array (Real-Array) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, uint Cnt, double[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll.
Cnt
UInt32
Anzahl der zu schreibenden doubles.
Buf
Double[]
Pointer auf ein double-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt wortweise ein short-Array (16-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, uint Cnt, short[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu schreibenden shorts.
Buf
Int16[]
Pointer auf ein short-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt doppelwortweise ein int-Array (16-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, uint Cnt, int[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu schreibenden ints.
Buf
Int32[]
Pointer auf ein int-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt wortweise ein ushort-Array (16-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, uint Cnt, ushort[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes, ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu schreibenden ushorts.
Buf
UInt16[]
Pointer auf ein ushort-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt doppelwortweise ein uint-Array (32-Bit) in die SPS.
C#
public int Wr(char DataArea, uint DBNo, uint Start, uint Cnt, uint[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu schreibenden uints.
Buf
UInt32[]
Pointer auf ein uint-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt einen Anzahl bytes in die SPS. Diese Funktion ist nur im unsafe-Mode zu verwenden!
C#
public int WrB(char DataArea, uint DBNo, uint Start, uint Cnt, byte *Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Wird nicht ausgewertet, da mit dieser Funktion kein Zugriff auf Db / DX möglich ist.
Start
UInt32
Nummer des bytes (bei M,E,A), ab welchem der Schreibvorgang gestartet werden soll.
Cnt
UInt32
Anzahl der bytes, die geschrieben werden sollen.
Buf
Byte*
Pointer auf den byte-Buffer.
Returns
siehe: Result
Schreibt ein einzelnes Bit in die SPS.
C#
public int WrBit(char DataArea, uint DBNo, uint ByteNo, uint Bit, uint Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
ByteNo
UInt32
Nummer des bytes, auf welches zugegriffen werden soll.
Bit
UInt32
Bitnummer (0 - 7) des bytes, auf welches zugegriffen werden soll.
Value
UInt32
Zustand des Bits, 0 = 0 Bit wird zurückgesetzt. != 0 Bit wird gesetzt.
Returns
siehe: Result
Schreibt einen einzelnen LReal (double) in die SPS.
C#
public int WrL(char DataArea, uint DBNo, uint Start, double Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll.
Value
Double
Wert als double.
Returns
siehe: Result
Schreibt einen einzelnen LINT-Wert (64-Bit) in die SPS.
C#
public int WrL(char DataArea, uint DBNo, uint Start, long Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Value
Int64
Wert als int.
Returns
siehe: Result
Schreibt ein LReal-Array (double-Array) in die SPS.
C#
public int WrL(char DataArea, uint DBNo, uint Start, uint Cnt, double[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll.
Cnt
UInt32
Anzahl der zu schreibenden doubles.
Buf
Double[]
Pointer auf ein double-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibtein LINTint-Array (64-Bit) in die SPS.
C#
public int WrL(char DataArea, uint DBNo, uint Start, uint Cnt, long[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu schreibenden ints.
Buf
Int64[]
Pointer auf ein int-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt ein ULINT-Array (64-Bit) in die SPS.
C#
public int WrL(char DataArea, uint DBNo, uint Start, uint Cnt, ulong[] Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der zu schreibenden uints.
Buf
UInt64[]
Pointer auf ein uint-Array im Anwenderprogramm.
Returns
siehe: Result
Schreibt einen einzelnen ULINT-Wert (64-Bit) in die SPS.
C#
public int WrL(char DataArea, uint DBNo, uint Start, ulong Value)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Nummer des Datenbausteins. Wird nur bei Zugriff auf DB ausgewertet.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Value
UInt64
Wert als uint.
Returns
siehe: Result
C#
public int WrMulti(IPS7WrMulti[] pRqL, uint Cnt)
Parameters
pRqL
IPS7WrMulti[]
Cnt
UInt32
Returns
Schreibt einen Anzahl ushorts (16-Bit) in die SPS. Diese Funktion ist nur im unsafe-Mode zu verwenden!
C#
public int WrW(char DataArea, uint DBNo, uint Start, uint Cnt, ushort *Buf)
Parameters
DataArea
Char
Datenbereich, siehe: DA
DBNo
UInt32
Wird nicht ausgewertet, da mit dieser Funktion kein Zugriff auf Db / DX möglich ist.
Start
UInt32
Nummer des bytes , ab welchem der Schreibvorgang gestartet werden soll. In der SPS überlappen sich z.B MW0 und MW1. MW 0 = MB0 und MB1, MW1 = MB1 und MB2. Dieses Verhalten ist unbedingt berücksichtigen! Dies gilt auch für Datenbausteine!
Cnt
UInt32
Anzahl der ushorts, die geschrieben werden sollen.
Buf
UInt16*
Pointer auf den ushort-Buffer.
Returns
siehe: Result