S7ComRaspi. Schönberger Thomas 2016 Schönberger Thomas

Ähnliche Dokumente
Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Vergleich verschiedener OO-Programmiersprachen

Vorlesungsprüfung Programmiersprache 1

virtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; };

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Grundelemente objektorientierter Sprachen (1)

Ein- und Ausgabe mit Dateien

Informatik I (D-ITET)

Grundelemente objektorientierter Sprachen (1)

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Praktikum Betriebssysteme 1. Aufgabe (1)

Die UART-Schnittstelle

Vorkurs Informatik WiSe 16/17

Grundlagen der Informatik 11. Zeiger

Informatik 1 ( ) D-MAVT F2010. Klassen. Yves Brise Übungsstunde 9

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klassen. C++ Übung am 02. Juni 2016

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++

Modbus Kopplung Simatic S7 (STEP 7)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Welche Informatik-Kenntnisse bringen Sie mit?

C++ Bit-Access. Detlef Wilkening

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Einführung in die Programmierung Wintersemester 2008/09

Modbus Kopplung Simatic S7 PN

Standardbibliotheken. Datentyp bool. Eingaben 2/2. Eingaben 1/2. In C gibt es keinen logischen Datentyp

Übung HP Musterlösung zu Aufgabe 9:

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Grundelemente objektorientierter Sprachen (1)

Vorkurs Informatik WiSe 17/18

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Ein- und Ausgabe mit Dateien

Musterlösung zur 6. Übung

Klausur Informatik I WS 2006/2007

Modbus Kopplung Simatic S7 TIA

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Copy-on-write und Implicit Sharing in Qt

Ein kleiner Blick auf die generische Programmierung

Programmieren in C/C++ und MATLAB

Objektorientierte Anwendungsentwicklung

Klausur Programmieren 1 SS 2017

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung

3. Semester : 1. Prüfung

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung in C. EDV1-04C-Einführung 1

8. Referenzen und Zeiger

Einführung in die Programmierung

Einführung in die Programmierung Wintersemester 2017/18

Modbus Kopplung Simatic 1500

Computeranwendung und Programmierung (CuP)

Einführung in die Programmierung Wintersemester 2010/11

Lösung zur Klausur C++ und Data Mining 16. Juli 2004 (SS 2004)

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Hydroinformatik I: IO - Files

Unified-E Modbus Adapter

Algorithmen und Datenstrukturen

C-Crashkurs. Praktikum Systemmanagement und Sicherheit

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

Objektorientiertes Programmieren mit C++ für Fortgeschrittene

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Grundlagen der Informatik

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Modbus Kopplung Simatic 1200

0. Einführung & Motivation

Programmieren in C/C++ und MATLAB

Bildverarbeitung mit C++

C++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Einstieg in die Informatik mit Java

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

DAP2 Praktikum Blatt 1

Prozeduren vs. Funktionen

Programmieren in Java

Programmiersprachen Einführung in C

Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Kapitel 8: Abstrakte Datentypen. Inhalt. Definition ADT Keller ADT Schlange

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

Einführung in die Informatik I Informatik I/A

Simatic S7 Connector

Informatik II. Woche 15, Giuseppe Accaputo

Angewandte Mathematik und Programmierung

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Grundlagen der Informatik 2. Typen

PVK Informatik I 1.Teil. Grundlagen Variablen Operatoren Fallunterscheidung Schleifen Kurzschreibweise Pointer Array Dynamische Strukturen Funktionen

Unterlagen. CPP-Uebungen-08/

Kapitel 13. Definition von Klassen. OOP Thomas Klinker 1

Transkript:

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