Praktikum Computersystemtechnik



Ähnliche Dokumente
Praktikum Rechnernetze für Studiengang Elektrotechnik / Elektronik

Einführung in die Programmierung

Installation OMNIKEY 3121 USB

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Benutzung der LS-Miniscanner

Inhaltsverzeichnis

Voraussetzungen für die Nutzung der Format Rechenzentrumslösung (Hosting)

DST EINFÜHRUNG IN MRT (V2)

Vierfach-Bluetooth Relais PL0051

Anwenderhandbuch logiware IO-Stick

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand:

Allgemeine Anleitung Treiber für CP2102

3 Konfiguration OfficeMaster 3.10 SNMP

Lösung Übungszettel 6

Einführung in die C++ Programmierung für Ingenieure

Praktikum Computersystemtechnik

Einrichtung von Mozilla Thunderbird

Einführung in die Programmierung (EPR)

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

EKF Software Server. Handbuch. Version 2.1. Hersteller: 2008 mesics gmbh Berliner Platz Münster info@mesics.de

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Fernzugriff auf das TiHo-Netz über das Portal

Wireless LAN PCMCIA Adapter Installationsanleitung

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Benutzerhinweise: IGW/920-SK/92 COM Port Redirector

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Über die Status-Befehle kann die Peripherie der gesamten Hard- und Firmware abgefragt werden.

Elexis - Afinion AS100 Connector

Klausur in Programmieren

INTERPRETER Interface. DATAWIN OMR Serie 10 Serie 50 Serie 300. Programmbeschreibung. Edition _01

ZVT TA7.0 Protokoll beim ICT250 aktivieren

1 Vom Problem zum Programm

Virtuelle COM-Schnittstelle umbenennen

Angewandte Mathematik und Programmierung

Lokale Installation von DotNetNuke 4 ohne IIS

EINRICHTUNG DER FANUC-MERCATOR- SCHNITTSTELLE

Anwenderhandbuch logiware IO-Stick in go1984

R-ADSL2+ Einrichthinweise unter Windows 98/ME

Kostenloser Apple-Softclient zur Nutzung von TeSign

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Installationsanleitung Sander und Doll Mobilaufmaß. Stand

MODBUS/TCP und Beckhoff Steuerelemente

Installationsanleitung Scanner des MEDI Baden-Württemberg e.v.

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

METTLER TOLEDO ETHERNET-Option

Theoretische Aspekte

Hochschule München, FK 03 FA SS Ingenieurinformatik

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Alle aufgeführten Produkte oder Bezeichnungen sind eingetragene Marken der entsprechenden Hersteller.

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

RS232 to Ethernet Interface. COM-Server. B Schnittstellenbeschreibung 12.00/

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Internet online Update (Mozilla Firefox)

Sichere für Rechtsanwälte & Notare

Installation des COM Port Redirectors

USB-Driver: Download-Link:

Informationsblatt: Advoware über VPN

Installation eines BM-33k6/ISDN pro USB an einem Windows XP-Rechner

Benutzerhandbuch DesignMaster II

Lehrveranstaltung Grundlagen von Datenbanken

Herzlich Willkommen bei der nfon GmbH

Auskunft über die Kassendaten

SC18IM700-Tester v Einleitung

Service & Support. Wie kann ein WinCC (TIA Portal) Projekt über Ethernet auf ein Bediengerät übertragen werden? WinCC (TIA Portal) FAQ Februar 2012

Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys

Datenaustausch mit dem ClassPad II. CASIO Educational Projects

SILworX Installation und Lizenzierung

UP4DAR HOWTO: Firmware-Update via RS232- Schnittstelle

PIXMA MG3500. series. Einrichtungshandbuch

Einrichtung von Outlook 2007

Stepperfocuser 2.0 mit Bootloader

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Klausur in Programmieren

NODELOCKED LIZENZ generieren (ab ST4)

S O L U T I O N S ::::: CSE-H55 Ethernet/RS422 Wandler. Installationsanleitung

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch für Direkt-Digital-Vario. Firmware ab Hardware 01 Seriennummer ab 0003

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Powermanager Server- Client- Installation

Kostenloser Apple-Softclient zur Nutzung von TeSign

Parametrier- & Analysesoftware ensuite Installationsanleitung und Systemanforderungen

Umzug der Datenbank Firebird auf MS SQL Server

Zertifikat in dakota einlesen Wie lese ich mein Zertifikat in dakota.le ein?

Verbindung zwischen PC und Mikrokontroler Blue-Tooth-Modul Schaltung Parametrierung kein zusätzliches LF

Modul CTO Barcode für Windows Seite 1

Virtual Private Network

SINUMERIK Integrate for Production. Gültig für Für 840D sl unter Operate 4.5 SP5 Für 828D unter Operate 4.5 SP5

Neuer Vorraum-Sensor. Dr. H. Klein, CEDES GmbH VII. Schwelmer Symposium Juni 2009

Windows Server 2012 RC2 konfigurieren

Optimale Integration leicht gemacht.

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Nutzung des Retain-Archivs

Berührungslose Datenerfassung. easyident-usb Stickreader. Art. Nr. FS-0012

Übung: Netzwerkmanagement mit SNMP

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

WARY Notariat Urkundenrolle V2013

S7-Hantierungsbausteine für R355, R6000 und R2700

web: CAD/CAM-Systeme Entwicklung Beratung Vertrieb Kundenbetreuung Service für Werkzeugmaschinen

Transkript:

Friedrich-List-Platz 1, 01069 Dresden ~ PF 120701 ~ 01008 Dresden ~ Tel.(0351) 462 3383 ~ Fax (0351) 462 2175 Praktikum Computersystemtechnik Versuch C6 Prozess-Steuerung mittels IP 1 Allgemeine Hinweise Dieses Praktikum wird in Gruppen von 3 Teilnehmern durchgeführt. Die Aufgaben zur Versuchsvorbereitung sind als Hausaufgaben schriftlich auszuführen. Sie sind Bestandteil des Protokolls und werden in die Bewertung des Versuches einbezogen. Jede Versuchsgruppe fertigt ein Protokoll an, welches innerhalb von 2 Wochen abzugeben ist (in Papierform oder als pdf). 2 Vorbereitungsaufgaben Überlegen Sie sich für jede im Versuch durchzuführende Aufgabe einen möglichen Lösungsweg und dokumentieren Sie diesen. Bereiten Sie den Quelltext der zu erstellenden Software weitestgehend vor. 2.1 ADAM-6051: Anschluss der Peripherie Zeichnen und dimensionieren Sie die jeweiligen Schaltungen, geben Sie ggf. die Dimensionierungsformeln an: Fakultät Elektrotechnik Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences Prof. H. Kühn Digitale Eingänge: Welche externe Beschaltung ist bei Anschluss eines Tasters notwendig? Digitale Ausgänge: Welche externe Beschaltung ist vorzunehmen - zur Ansteuerung einer LED? - zur Ansteuerung eines Relais? Zähler: Welche externe Beschaltung bei Anschluss eines Schaltkreises der 74HCT-Serie? 2.2 MODBUS Lesen Sie die Unterlagen zum MODBUS-Protokoll Wie wird MODBUS über IP übertragen? Bereiten Sie ein Programm zum Ansprechen des ADAM-Moduls vor (für Versuchsaufgabe 3.1.3). Informieren Sie den Versuchsbetreuer vorab über den/die für Ihre Lösung jeweils erforderlichen Programme (Compiler etc.) Welche(r) Befehl(e) ist/sind allgemein nach MODBUS-Standard und speziell bei ADAM- 6051 erforderlich - zum Setzen eines einzelnen digitalen Ausgangs? - zum Setzen aller digitalen Ausgänge? - zum Einlesen aller digitalen Eingänge? - zum Einlesen der Zähler? 2.3 SNMP Erläutern Sie die Arbeitsweise von SNMP, insbesondere die Begriffe Manager und Agent Trap Get, GetNext und Set MIB Praktikum Computersystemtechnik Versuch C6 Prozess-Steuerung mit IP Seite 1

3 Versuchsdurchführung 3.1 Prozess-Steuerung über MODBUS 3.1.1 Inbetriebnahme ADAM-6051 Programme: Adv5KTCP.exe und Netzwerk-Sniffer Wie findet das Programm Adv5KTCP.exe vorhandene ADAM-Module? Wie beurteilen Sie das verwendete Verfahren? Konfigurieren Sie das IP-Protokoll des ADAM-Moduls Setzen Sie alle digitalen Eingänge des ADAM-6051 auf Digital Input Wozu dient die Funktion Datastream? Mit welchem Protokoll werden die Daten übertragen? 3.1.2 Funktionstest ADAM-6051 Programme: Adv5KTCP.exe und Adam.exe Testen Sie die Funktion der Eingänge, Ausgänge und Zähler mit der von Ihnen entworfenen externen Beschaltung 3.1.4 Modbus-Protokoll Programme: Adv5KTCP.exe und Ethereal.exe Welche(n) Befehl(e) verwendet das Programm zum Setzen eines einzelnen digitalen Ausgangs? zum Setzen aller digitalen Ausgänge? zum Einlesen aller digitalen Eingänge? zum Einlesen der Zähler? 3.1.3 Geschwindigkeit des ADAM-6051 Programme Adv5KTCP.exe, Adam.exe, Demo\Delphi40\6kReadDIO\*.exe und Netzwerk-Sniffer Messen Sie die Reaktionszeit des Moduls unter Nutzung verschiedener Programme Diskutieren Sie die Messergebnisse (insbesondere die Ursachen für die teils enormen Zeitunterschiede)! Welche Reaktionszeit erreichen Sie? (Eigenes Programm in C oder anderer Programmiersprache schreiben) Seite 2 Praktikum Computersystemtechnik Versuch 4 Prozess-Steuerung mit IP

Rumpf einer Beispiel-Applikation zur Ansteuerung ADAM-6051 in Visual C++ Neues Projekt in Visual-Studio 2005 erstellen ( Win32 Console Application ) Bibliothek Ws2_32.lib einbinden (Project/Properties/Configuration Properties/Linker/Input/Additional Dependencies) empfohlene Includes: stdio.h winsock2.h conio.h ctype.h Programmauszug: Winsock initialisieren WSADATA wsadata; int iresult = WSAStartup(2, &wsadata); if (iresult!= NO_ERROR)... Fehlerbehandlung Socket erzeugen (TCP-Socket) SOCKET MySocket; MySocket = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); if (MySocket == INVALID_SOCKET)... Fehlerbehandlung IP-Adresse und Port des Servers sockaddr_in adam; adam.sin_family = AF_INET; adam.sin_addr.s_addr = inet_addr("99.99.99.99"); adam.sin_port = htons(9999); Verbindung mit Server herstellen if (connect(mysocket,(sockaddr*) &adam,sizeof(adam))==socket_error)... Fehlerbehandlung zu sendendes Modbus-Kommando int bytessent; Zahl der gesendeten Bytes int anzahlbytes =... Zahl der zu sendenden Bytes char sendbuf[99] =... Sendepuffer Senden des Kommandos bytessent = send( MySocket, sendbuf, anzahlbytes, 0 ); if (bytessent == 0)... Fehlerbehandlung Empfangen der Antwort int bytesrecv = SOCKET_ERROR; Zahl der empfangenen Bytes char recvbuf[99] = ""; Empfangspuffer while( bytesrecv!= SOCKET_ERROR ) { Warten auf Verbindungsende bytesrecv = recv( MySocket, recvbuf, strlen(recvbuf), 0 ); if ( bytesrecv == 0 WSAGetLastError() == WSAECONNRESET ) { printf( "Connection Closed.\n"); break; printf( "Bytes Recv: %ld\n", bytesrecv ); Aufraeumen WSACleanup(); printf(" Programm beendet\n Taste druecken! \n"); _getch(); Praktikum Computersystemtechnik Versuch C6 Prozess-Steuerung mit IP Seite 3

3.2. Netzwerkmanagement und Prozess-Steuerung über SNMP 3.2.1 SNMP-Funktionalität von Windows Installieren/Starten Sie unter WinXP die SNMP-Funktion (Agent) Fragen Sie unter Verwendung des Manager-Programms Informationen ab Erstellen Sie eine Übersicht, der mittels SNMP abfragbaren Informationen 3.2.2 SNMP-Funktionalität von Linux Installieren Sie die SNMP-Funktion (Agent) Fragen Sie unter Verwendung des Manager-Programms Informationen ab Erstellen Sie eine Übersicht, der mittels SNMP abfragbaren Informationen 3.2.3 SNMP-Funktionalität von Netzwerkhardware Wählen Sie zwei abzufragende Hardwarekomponenten aus (Switche, Router, Racküberwachung RMS, Netzwerkkarten etc.) Suchen Sie im Netz nach den erforderlichen MIB s Fragen Sie unter Verwendung des Manager-Programms Informationen ab Richten Sie das Versenden von Traps bei Alarmen ein Erstellen Sie eine Übersicht, der mittels SNMP abfragbaren Informationen 3.2.4 Gerätesteuerung mit SNMP Falls SNMP-Programm noch nicht installiert, dann vom Server herunterladen und in c:\programme\snmp entpacken Erläutern Sie den Inhalt der Fluke-45 MIB Testen Sie die serielle Verbindung zwischen PC und Fluke mittels Terminal-Programm (Hinweise: COM1 / 9600,8,n,1 / ohne Flusssteuerung / lokales Echo / Zeilenvorschub) Testen Sie die serielle Verbindung mittels eigenem Programm (in C oder anderer Programmiersprache schreiben) Starten Sie das SNMP-Programm für Fluke Lesen Sie Informationen vom Fluke-45 via SNMP von einem entfernten Rechner aus Konfigurieren Sie den Agent zum Versenden von Traps an mehrere Empfänger Testen Sie das automatische Trap-Versenden 4 Anhang Bedienungsanleitungen etc. für die verwendete Hard- und Software finden Sie im WWW Seite 4 Praktikum Computersystemtechnik Versuch 4 Prozess-Steuerung mit IP

Beispielprogramm zur Steuerung des Fluke45 / / / Programmfragment zur Ansteuerung der COM-Schnittstelle / / / #include <windows.h> #include <conio.h> #include <iostream> using namespace std; #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_COM_PORTS 8 static HANDLE hcomfile[max_com_ports]; static BOOL bisopen [MAX_COM_PORTS]; ComOpen Nr : Nummer des Com-Ports (0=COM1 1=COM2...) Baud : Baudrate Parity : 0 = kein Parity Bit 1 = gerade 2 = ungerade 3 = immer 0 4 = immer 1 Stopbits: 0 = Ein Stopbit 1 = Ein/einhalb Stopbits 2 = Zwei Stopbits Bits : 0 = 7 Datenbits 1 = 8 Datenbits return : 0 = Fehler 1 = OK int ComOpen(unsigned Nr,int Baud,int Parity,int Stopbits,int Databits) { static const int ipmode[]={noparity,evenparity,oddparity,spaceparity,markparity; static const int ismode[]={onestopbit,one5stopbits,twostopbits; char cname[]="\\\\.\\com1"; HANDLE hfile; COMMTIMEOUTS sto; DCB sdcb; if(nr>=max_com_ports) if(bisopen[nr]) cname[7]='1'+nr; hfile= CreateFile(cName,GENERIC_READ GENERIC_WRITE,0,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0); if(hfile==invalid_handle_value) { hfile=0; memset(&sdcb,0,sizeof(sdcb)); sdcb.dcblength=sizeof(sdcb); sdcb.baudrate = Baud; sdcb.fparity = (Parity!=0)? TRUE:FALSE; sdcb.fbinary = TRUE; sdcb.parity = ipmode[parity]; sdcb.stopbits = ONESTOPBIT; sdcb.foutxctsflow = FALSE; sdcb.foutxdsrflow = FALSE; sdcb.fdtrcontrol = DTR_CONTROL_ENABLE; sdcb.fdsrsensitivity= FALSE; sdcb.fabortonerror = FALSE; sdcb.bytesize = (Databits)? 8:7; if(!setcommstate(hfile,&sdcb)) { CloseHandle(hFile); sto.readintervaltimeout = MAXDWORD; 0 ms Read-Timeout sto.readtotaltimeoutmultiplier = 0; sto.readtotaltimeoutconstant = 0; sto.writetotaltimeoutmultiplier= 1; sto.writetotaltimeoutconstant = 2; if(!setcommtimeouts((handle)hfile,&sto)) { CloseHandle(hFile); hcomfile[nr]=hfile; bisopen [Nr]=TRUE; return 1; 1*2 ms Write Timeout Ergibt 1 wenn eine Schnittstelle geöffnet wurde Praktikum Computersystemtechnik Versuch C6 Prozess-Steuerung mit IP Seite 5

ComClose int ComClose(unsigned Nr) { if(nr>=max_com_ports) if(!bisopen[nr]) CloseHandle(hComFile[Nr]); hcomfile[nr]=0; bisopen [Nr]=FALSE; return 1; ComRead Buffer : Buffer in dem die Zeichen gespeichert werden Max : Maximale Anzahl der zu lesenden Zeichen return : Anzahl der gelesenen Zeichen int ComRead(unsigned Nr,void *Buffer,int Max) { DWORD dwcount; if(nr>=max_com_ports) if(!bisopen[nr]) ReadFile(hComFile[Nr],Buffer,Max,&dwCount,0); return dwcount; ComWrite Count : Anzahl der zu sendenden Zeichen return : Anzahl der gesendeten Zeichen int ComWrite(unsigned Nr,void *Buffer,int Count) { DWORD dwcount; if(nr>=max_com_ports) if(!bisopen[nr]) WriteFile(hComFile[Nr],Buffer,Count,&dwCount,0); return dwcount; Main int main(int argc, char* argv[]) { char unsigned PORTNR; int j; FLUKE_RETURN[50]=""; printf ("Nummer des COM-Ports?\n(COM1=1, COM2=2): "); scanf ("%d", &PORTNR); PORTNR=PORTNR-1; if (ComOpen(PORTNR, 9600, 0, 0, 1)) { ComWrite(PORTNR,"*IDN?\r", 7); Sleep(350); Timer, da FLUKE45 Reaktionszeit benoetigt j = ComRead(PORTNR, &FLUKE_RETURN, 50); cout << "Antwort von FLUKE45:" << FLUKE_RETURN << endl; ComClose(PORTNR); else printf("could not open com-port!\n"); Seite 6 Praktikum Computersystemtechnik Versuch 4 Prozess-Steuerung mit IP