Schönberger Thomas info@schoenbergerthomas.jimdo.com 2016 Schönberger Thomas
Inhalt 1 Allgemein... 2 2 Voraussetzungen... 2 3 Lieferumfang... 2 4 S7Com... 3 4.1 S7Com Klasse... 3 4.2 Konstruktor S7Com... 3 4.3 Open... 4 4.4 Close... 4 4.5 ReadBit... 5 4.6 ReadByte... 6 4.7 ReadWord... 7 4.8 ReadDWord... 8 4.9 ReadReal... 9 4.10 WriteBit... 10 4.11 WriteByte... 11 4.12 WriteWord... 12 4.13 WriteDWord... 13 4.14 WriteReal... 14 5 Codebeispiel... 15 2016 Schönberger Thomas 1
1 Allgemein S7Com ist ein TCP/IP Treiber für die Siemens S7-300, S7-400 (mit CP), S7-1200 und S7-1500 Steuerungen unter dem Betriebssystem Android. Die Kommunikation erfolgt über TCP/IP auf Basis von RFC 1006. Sie haben Zugriff auf Eingänge, Ausgänge, Merker und Datenbausteine. 2 Voraussetzungen Betriebssystem: Raspian für Raspberry Pi Steuerungen: S7-300, S7-400 (mit CP), S/-1200, S7-1500 3 Lieferumfang S7comRaspi.so, lib.so.h, S7Tools.h, S7.h.pdf S7Com Treiber Modul Header files S7Com Dokumentation 2016 Schönberger Thomas 2
4 4.1 Klasse Public class Include.h 4.2 Konstruktor (char *HostIp, BYTE RackNr, BYTE SlotNr, DWORD RxTimeout, DWORD TxTimeout); HostIp char[] IP Adresse der S7-Steuerung im Format XXX.XXX.XXX.XXX RackNr BYTE Rack Nr. der der S7-CPU SlotNr BYTE Slot Nr. der S7.CPU im angegebenen Rack RxTimeout DWORD Rx Timeout in millisekunden TxTimeout DWORD Tx Timeout in millisekunden Die Verbindung zur S7-Steuerung wird initialisiert. Die TCP/IP Verbindung wird nicht geöffnet. 2016 Schönberger Thomas 3
4.3 Open public boolean Open (); - Konnte die Verbindung zur S7-Steuerung geöffnet werden wird true zurückgegeben, ansonsten wird false zurückgegeben. Die Funktion öffnet die Verbindung zur S7-Steuerung. Wurde vor dem ersten Aufruf einer Schreib-/Lesefunktion die Verbindung noch nicht geöffnet so wird diese durch die Schreib-/Lesefunktion geöffnet. 4.4 Close public void Close (); - - Die Funktion schließt die geöffnete TCP/IP Verbindung zur S7-Steuerung 2016 Schönberger Thomas 4
4.5 ReadBit int ReadBit(BYTE MemArea, WORD DbNr, WORD Addr, BYTE Bit, BYTE *Val); Bit BYTE Bit des gelesenen Bytes Val *BYTE BYTE Pointer in dem der Zustand des Bits abgelegt wird ReadBit liefert einen int mit Vorzeichen als mit folgender Bedeutung: Es wird das Bit des angegebenen Bytes gelesen 2016 Schönberger Thomas 5
4.6 ReadByte int ReadByte(BYTE MemArea, WORD DbNr, WORD Addr, WORD Length, BYTE *Val); Bit BYTE Bit des gelesenen Bytes Val *BYTE BYTE Pointer in dem der Zustand des Bits abgelegt wird Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es wird die angegebene Adress mit der angegebenen Länge von Byte s aus der Steuerung gelesen 2016 Schönberger Thomas 6
4.7 ReadWord int ReadWord(BYTE MemArea, WORD DbNr, WORD Addr, WORD Length, WORD *Val); Length WORD Anzahl der zu lesenden Word s Val WORD* Ziel WORD Pointer Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es wird die angegebene Adress mit der angegebenen Länge von Word s aus der Steuerung gelesen 2016 Schönberger Thomas 7
4.8 ReadDWord int ReadDWord(BYTE MemArea, WORD DbNr, WORD Addr, WORD Length, DWORD *Val); Length WORD Anzahl der zu lesenden Word s Val DWORD* Ziel DWORD Pointer Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es wird die angegebene Adress mit der angegebenen Länge von DWord s aus der Steuerung gelesen 2016 Schönberger Thomas 8
4.9 ReadReal int ReadReal(BYTE MemArea, WORD DbNr, WORD Addr, WORD Length, DOUBLE *Val); Length WORD Anzahl der zu lesenden Word s Val DOUBLE* Ziel DOUBLE Pointer Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es wird die angegebene Adress mit der angegebenen Länge von Real s aus der Steuerung gelesen 2016 Schönberger Thomas 9
4.10 WriteBit int WriteBit(BYTE MemArea, WORD DbNr, WORD Addr, BYTE Bit, BOOL Val); Length WORD Anzahl der zu lesenden Word s Val BOOL Wert Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es wird das Bit des angegebenen Bytes geschrieben 2016 Schönberger Thomas 10
4.11 WriteByte int WriteByte(BYTE MemArea, WORD DbNr, WORD Addr, WORD Length, BYTE *Val); Length WORD Anzahl der zu lesenden byte s, short s, int s, foats s Val BYTE* Quell BYTE Pointer Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es werden die entsprechenden Werte mit der angegebenen Länge in die Steuerung geschrieben 2016 Schönberger Thomas 11
4.12 WriteWord int WriteWord(BYTE MemArea, WORD DbNr, WORD Addr, WORD Length, WORD *Val); Length WORD Anzahl der zu lesenden byte s, short s, int s, foats s Val WORD* Quell WORD Pointer Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es werden die entsprechenden Werte mit der angegebenen Länge in die Steuerung geschrieben 2016 Schönberger Thomas 12
4.13 WriteDWord int WriteDWord(BYTE MemArea, WORD DbNr, WORD Addr, WORD Length, DWORD *Val); Length WORD Anzahl der zu lesenden byte s, short s, int s, foats s Val DWORD* Quell DWORD Pointer Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es werden die entsprechenden Werte mit der angegebenen Länge in die Steuerung geschrieben 2016 Schönberger Thomas 13
4.14 WriteReal int WriteReal(BYTE MemArea, WORD DbNr, WORD Addr, WORD Length, DOUBLE *Val); Length WORD Anzahl der zu lesenden byte s, short s, int s, foats s Val DOUBLE* Quell BYTE Pointer Es wird ein int mit Vorzeichen als geliefert mit folgender Bedeutung: Es werden die entsprechenden Werte mit der angegebenen Länge in die Steuerung geschrieben 2016 Schönberger Thomas 14
5 Codebeispiel #include <iostream> #include </.h> using namespace std; int main(int argc, char *argv[]) { *Plc; } char host[] = "192.168.178.10"; WORD value; Plc = new (host, 0, 2, 1000, 1000); Plc->ReadWord(MEMORY_AREAS_DB, 100, 10, 1, &value); Plc->Close(); return 0; 2016 Schönberger Thomas 15