Artikel pedia
| Home | Kontakt | Artikel einreichen | Oberseite 50 artikel | Oberseite 50 autors
 
 


Artikel kategorien
Letztes fugte hinzu
    Ms-access

   Instrumentation + schnittstellen

   Pc tuning - volle kraft voraus für ihr system

   Informatorische grundlagen

   Javascript

   Interne sortieralgorithmen - der kern der sache

   Plotter und sonstige drucker

   Frage 20 (rössl priska)

   Internet - programmierung

   Monitore

   Semesterarbeit und spezialgebiet für informatik

   Erörterungs zum thema

   Inhaltsverzeichnis

   Einführung in die entwicklung ganzheitlicher informationssysteme:

   Titel dokument
alle kategorien

  Semesterbericht

                 Semesterbericht Software 4.Semester Jahrgang 1996    Thema: Entwicklung einer Software zur Fernüberwachung und Fernsteuerung des Sicherheitsstromversorgungssystem multi 0108 der Firma Saft Nife.                                   Fa. Stempel   ...

......

......

......

......

......

......

......

  ......

......

......

......

......

......

......

... ...

......

......

......

......

......

......

......

. Ausbildungsleiter Datum Betreuer Datum     .....

......

......

......

......

......

......

....   ..

......

......

......

......

......

......

......

.   Prüfungsausschuß Datum Prüfungsausschuß Datum Eingang Stempel Berufsakademie              INHALTSVERZEICHNIS   1 EINFÜHRUNG 3 1.1 Formelle Aufgabenstellung für die Gruppe 3 1.2 Organisatorisches Umfeld 3 1.3 Aufgabenstellung Programmausarbeitung 4 2 GRUNDLAGEN 4 2.1 Das Bytebus Protokoll 4 2.

1.1 Die UART - Schicht (Bitübertragungsschicht) 4 2.1.2 Frame-Schicht (Sicherungsschicht) 4 2.1.3 Link-Schicht (Festlegung der Rahmenarten) 5 2.

1.4 User- Schicht 5 2.2 Programmierung der seriellen Schnittstelle mit Hilfe der API-Funktionen 6 3 REALISIERUNG / IMPLEMENTIERUNG 7 3.1 Entwicklungsumgebung 7 3.2 Befehlsbibliotheken 7 3.3 Ereignisse (Events) 8 3.

4 Methoden und Daten der Klasse TKonfiguration 9 3.5 Methoden und Daten der Klasse TAnlage: 9 3.6 Methoden und Daten der Klasse TFenster 11 4 ABSCHLIEßENDE BEURTEILUNG DES PROJEKTES 11        Abbildungen und Tabellen     Abbildung 1 2. bis 4. Schicht des Bytebusprotokolls 4 Abbildung 2 Befehlsbibliotheken 7 Abbildung 3 Eventbehandlung 8   Tabelle 1 Userschicht 5 Tabelle 2 Bytebusprotokoll 6    Anlagen  Begriffserklärung Quellennachweis Diskette mit Programmcode und Resourcen   Einführung   Um eine gesicherte Stromversorgung auch bei Netzausfällen zu gewährleisten, bietet die Wirtschaft Lösungen für fast alle Problemstellungen an. Im Bereich der EDV, der Gebäudeautomatisierung und der Prozeßleittechnik kommen vor allem unterbrechungsfreie Stromversorgungssysteme zum Einsatz.

Die DIN VDE 108 schreibt den Einbau einer Sicherheitsstromversorgung in Gebäuden für Menschenansammlungen, wie z.B. Beherbergungsbetrieben, Großgaragen, Schulen und Arbeitsstätten, vor. Diese Systeme müssen eine Nennbetriebsdauer von 1 oder 3 Stunden gewährleisten. Sicherheitsstromversorgungssysteme nach DIN VDE 0108 versorgen Sicherheitssysteme wie z. B.

: Personenaufzüge (Evakuierungsfahrt), Rauch- und Wärmeabzugseinrichtungen, Lüftungsanlagen, Sicherheitsbeleuchtung, Überwachungs- und Warnanlagen. Das multi 0108 der Firma Saft Nife ist eine Sicherheitsstromversorgung für die Sicherheitsbeleuchtung mit Zentralbatterie zur Versorgung von Sicherheits- und Rettungszeichenleuchten und anderen ausgesuchten Verbrauchern. Formelle Aufgabenstellung für die Gruppe Aufgabe: Software zur Fernüberwachung und Fernsteuerung des Sicherheitsstromversorgungssystem multi 0108 der Firma Saft Nife. Teilnehmer: Jan Hohndorf, Matthias Buchhorn Zeitraum: 5 Wochen  Ein Programm zur Fernüberwachung und Fernsteuerung des Sicherheitsversorgungssystems multi 0108 soll geplant und entwickelt werden. Dabei liegt der Schwerpunkt auf die Wartbarkeit des Programmes, da das System ständig von den Technikern der Firma Saft Nife weiterentwickelt wird. Voraussetzung ist ein gut geplanter System- u.

Programmentwurf . Der Systementwurf besteht aus dem Lasten- und Pflichtenheft. Der Programmierer orientiert sich an den Vorgaben des Systemanalytikers. Aufgabe ist es, ein Programm zur Visualisierung der Vorgänge im Sicherheitsversorgungssystem für den Endanwender zu erstellen. Durch eine graphische Benutzeroberfläche werden Systemzustände übersichtlich präsentiert und aufgetretene Störungen schneller erkannt. Der Monteur bzw.


Servicetechniker benutzt ein anderes Programm mit dem Namen multipro zur Neukonfiguration der Anlage. Organisatorisches Umfeld       Aufgabenstellung Programmausarbeitung   Der Computer ist über eine serielle Schnittstelle mit der Anlage verbunden. Das multi 0108 nutzt das Bytebusprotokoll zur sicheren Übertragung der Informationen. Es ist vorgesehen über ein Modem oder einer RS 244 Schnittstelle bis zu 16 Endgeräte anzusteuern, wenn die Software der Anlage diese Funktion unterstützt. Die Datenstruktur des Programmes soll auf dieses Kriterium ausgelegt werden. Da eine Anlage mehrere tausend Leuchtmittel besitzen kann, werden die Leuchtmittel in mehreren Untergruppen geteilt.

Der Benutzer bewegt sich hierarchisch zwischen 4 Ebenen. Der Hauptschirm zeigt alle angeschlossene Hauptgeräte an. Mit dem Betätigen der linken Maustaste auf einen solchen Zeichen-Objekt werden alle Unterstationen dieser Anlage angezeigt. Mit dem Betätigen der rechten Maustaste erscheint ein neuer Dialog mit den Sytemeigenschaften der Anlage. Die 3. Ebene zeigt die Gruppeneingänge der ausgewälten Unterstation an.

Die letzte Ebene zeigt die zugehörigen geschalteten Endstromkreise und deren Leuchtmittel. Das Programm überprüft ständig den Status der Anlage. Sendet die Anlage einen Alarm, ordnet die Software diese Fehlermeldung einer Zeichenkomponente zu. Durch Vergabe von Paßwörtern wird die Auswahl bestimmter Personenkreise vorgenommen. Die Entwicklungsumgebung für diese Projektaufgabe ist Delphi 1.0 unter Windows 3.

11. Die Entscheidung fiel auf Delphi, da es die unkomplizierte graphische Anwendungsentwicklung mit der Programmiersprache Pascal verbindet. Grundlagen Das Bytebus Protokoll  Die Strukturen der Sicherheitsbeleuchtungsanlage werden auf einem PC entworfen und über eine serielle Schnittstelle zur Anlage gesendet. Es war eine erhöhte Datensicherheit nötig. Weiterhin sollte das verwendete Protokoll “point-to-multipoint” fähig sein und unabhängig von der Hardware funktionieren. Die Softwarefirma HEDON entwarf auf Grundlage diese Anforderungen das Bytebus-Protokoll.

Das Bytebus Protokoll wurde für Systeme mit einem Master und mehreren Slaves konstruiert. Die Informationen werden über ein 4-Schichten-modell ausgetauscht. Schicht 2 und 3 sind äquivalent zur HDLC Familie ( hide data link control) die in der DIN ISO 3309 Norm beschrieben ist . Dieses Protokoll wird auch in der 2. Schicht des OSI-Referenzmodells verwendet. Der aktive Teil ist immer der Master.

Er schickt ein Kommando an ein bestimmtes multi 0108 und es reagiert auf einem Kommando des Computers immer mit einer Antwort.   Abbildung 1 2. bis 4. Schicht des Bytebusprotokolls Die UART - Schicht (Bitübertragungsschicht) Die Aufgabe der untersten Schicht wird vom UART-Chip übernommen. Der UART-Chip wird mit bestimmten Eigenschaften, wie Baudrate, Stopbits, Datenbits, Parität, etc. programmiert.

Diese Schicht ist für den Programmierer transparent und muß nur einmal, mit dem Windows API-Befehl setCommState initialisiert werden. Frame-Schicht (Sicherungsschicht) Frameschicht markiert den Blockanfang, das Blockende und beinhaltet zwei Prüfbytes. Der Rahmen wird durch die Bytes DLE STX geöffnet und mit den Bytes DLE ETX geschlossen. Der Inhalt des Rahmens sind Daten des BBLINK Layer. Falls im Datenblock des BBLINK-Layer DLE vorkommt, kann es zu falscher Interpretation des Rahmenendes kommen, deshalb ist der Einsatz von "Byte stuffing" erforderlich. Für jedes DLE welches in BBLINK-Data vorkommt, wird ein weiteres DLE gesendet.

Falls der Empfänger ein DLE empfängt, wartet er auf das nächstes Zeichen. Ist dieses dann ETX oder STX, so erkennt der Empfänger den Rahmenanfang oder das Rahmenende. Andernfalls wird erkannt, das ein DLE-Data-Character empfangen wurde. Die Länge des Feldes "CRC" beträgt 2 Byte. Das erste Byte enthält die errechneten Werte der Bits 0 bis 7 und das zweite Byte der Bits 8 bis 15 der gesamten Daten im BBLINK-Layer. Die Gesamtlänge des Frames ist nur durch den Buffer-Speicher begrenzt und ist ein Konfigurationsparameter des BBFRAM-Layer.

Längere Frames werden nicht beachtet. Link-Schicht (Festlegung der Rahmenarten) Für eine “point-to-multipoint” Verbindung wird die Adressatennummer benötigt. So kann mit einem Adreßbyte eine beliebige Sicherheitsbeleuchtungsanlage angesprochen werden. Das zweite Byte der Link-Schicht ist ein Kontrollbyte. Es läßt sich in 3 Gruppen teilen: unnummerierte Schicht (U-Block), Supervisor Schicht(S-Block) und Informationsschicht (I-Block). unnummerierte Schicht (Steuerrahmen - U-Block): Aufgabe: Transport von Steuerzeichen   93 - Kommando - ( Setze normalen Anwortmodus) 53 - Kommando - ( Unterbreche Verbindung) 73 - Antwort - ( Bestätigung) 97 - Antwort - ( Fehlerhafter Rahmen) Supervisor Schicht - (Steuerrahmen - S-Block): Aufgabe: Übermittelt den Status des Master oder Slavegerätes   sss1 0001 - Kommando (zum Empfang bereit) sss1 0101 - Kommando (nicht bereit für Empfang) sss1 0001 - Antwort (zum Empfang bereit) sss1 0101 - Antwort (nicht bereit für Empfang)  Die Empfangsfolgenummer ist in den Bits 7,6,5 verschlüsselt.

Schickt das multi 0108 die Antwort “nicht bereit für Empfang” , muß der Master solange das Kommando “zum Empfang bereit” schicken, bis die Anlage die angeforderten Daten schickt. Die Empfangsfolgenummer des Kommandos hat den gleichen Wert wie die Empfangsfolgenummer des zuletzt abgeschickten Informationsblockes. Informationsschicht - (Steuerrahmen - I-Block): Die Aufgabe der Informationsschicht ist die gesicherte Übermittlung von Daten. Dieses Datenbyte enthält die Sendefolgenummer (Bits 1,2,3), die Empfangsfolgenummer(Bits 5,6,7) und die Information das eine User-Schicht übermittelt wird.Eine Informationsschicht ist an Bit 0 und Bit 4 erkennbar, denn Bit 0 ist immer auf null gesetzt und Bit 4 hat den Wert 1. User- Schicht In der Userschicht sind die Daten gekapselt.

Es ist möglich mit Hilfe des Framekommandos die Daten in kleine gleich große Stücke zu fragmentieren. Das Kommando “next frame” (080h) öffnet eine Fragmentkette. Mit dem Kommando “last frame” (081h) wird die Fragmentkette geschlossen. Welche Länge ein Fragment hat, wird mit dem Kommando “configuration frame” (082h) festgelegt. Das zweite Byte in der Userschicht gibt die Befehlsnummer an. Wenn die Daten nicht vollständig in einen Fragment eingelesen wurden, muß der Master mit einem leeren Userframe und dem Framekommando “next frame” das nächste Fragment anfordern.

Die Nummer der wichtigsten Kommandos ist aus Tabelle1 ersichtlich. Eine nähere Beschreibung befindet sich in der Dokumentation “bytebus message specification” der Firma Hedon.Tabelle 1 Userschicht Befehl Beschreibung Senden Empfangen 0 generelle Konfiguration lesen 285 1 1 generelle Konfiguration schreiben 1 285 4 erste Netzwerkstruktur schreiben 2842 1 5 erste Netzwerkstruktur lesen 1 2842 6 setze Zeit und Datum 8 1 11 [B] schreibe Alarm Konfiguration 141 1 12 [C] lese Alarm Konfiguration 1 141 13 [D] schreibe Alarm Gruppen Konfiguration 41 1 14 [E] lese Alarm Gruppen Konfiguration 1 41 15 [F] lösche den Meldespeicher 1 1 16 [10] Zeitpunkt für Tagestest festlegen 2,3,6 1 17 [11] schreibe Benutzerdefinierter Alarm 729 1 18 [12] lese Benutzerdefinierter Alarm 1 729 19 [13] lese Tageseinstellungen 1 1029 20 [14] starte Tagestest 1 oder 3 1 21 [15] lese Anzahl der Einträge im Meldespeicher 1 3 22 [16] lese Einträge vom Meldespeicher 5 1+14(X+1) 23 [17] lese Software Version aus 1 9 25 [19] lese Meßwerte 1 46 28 [1C] lese Alarme ein 1 112 29 [1D] lese Anlageneigenschaften 1 17 34 [22] lese Stromkreiswerte 1 33 36 [24] lese GEK-Stromkreis-Test-Daten 1 1025 37 [25] schreibe Leuchtentexte 44001 1 38 [26] lese Leuchtentexte 1 44001 39 [27] schreibe zweite Netzwerkstruktur 6241 1 40 [28] lese zweite Netzwerkstruktur 1 6241 41 [29] schalte System ein/aus 2 1 43 [2B] lösche Alarme 1 1 44 [2C] schreibe 3. Netzwerkstruktur   1 45 [2D] lese 3.Netzwerkstrukur 1    Tabelle 2 verdeutlicht dieses Bytebusprotokoll anhand eines Beispiels. Multirem sendet 6 Fragmente zur Anlage mit der Nummer 01.

Jedes Fragment wird durch die DLE STX und DLE ETX Bytes gekapselt. Der zweite gesendete Befehl hat den Wert 10, also muß nach der Bytestuffing-Methode eine weitere 10 übertragen werden. Jeder U- und I-Block enthält die Empfangsfolgenummer. Wenn Daten verschickt werden, erhöht sich die Sendefolgenummer im I-Block. Das erste Byte in der Datenschicht gibt das Fragmentbyte an. Die zwei Bytes des CR-Checks wird aus der Link- und der darunterliegenden Userschicht berechnet.

  Tabelle 2 Bytebusprotokoll Master (Kommando) Slave (Antwort) Anfang Nr. Befehl Daten CRC Ende Anfang Nr. Antwort Daten CRC Ende Bedeutung 10 02 01 93   8D B0 10 03 10 02 01 73   83 57 10 03 Antwortmodus 10 02 01 10 10 82 C8 00 AC BA 10 03 10 02 01 30 80 C8 00 47 80 10 03 Fragmentlänge 10 02 01 32 81 17 59 22 10 03 10 02 01 55   B7 13 10 03 Versionsnummer 10 02 01 31   95 36 10 03 10 02 01 55   B7 13 10 03 Sender nicht bereit 10 02 01 31   95 36 10 03 10 02 01 52 81 17 02 02 02 04 01 02 01 02 15 E0 10 03 Versionsnummer wird gesendet 10 02 01 31   95 36 10 03 10 02 01 51   93 55 10 03 zum Empfang bereit Frame Linkschicht Usersch. Frameschicht Programmierung der seriellen Schnittstelle mit Hilfe der API-Funktionen  Die Programmierung der seriellen Schnittstelle unter Windows unterscheidet sich grundsätzlich von MS-DOS. Windows erlaubt keinen direkten Zugriff auf die Hardware. An die Stelle der eigenen Routine tritt ein Gerätetreiber mit dem Namen COMM.

DRV. Dieser Treiber ist das einzige Modul , dem es erlaubt wird, direkt über die Interuptvektoren mit den seriellen Schnittstellen zu arbeiten. Eine serielle Schnittstelle kann mit dem Windowsbefehl OpenComm geöffnet werden. Der Befehl OpenComm legt zusätzlich die Größe des Empfangs- und Sendebuffers fest. Die Funktion gibt den Wert null zurück, wenn die Schnittstelle erfolgreich geöffnet wurde. Damit eine serielle Schnittstelle initialisiert werden kann, bedarf es eines sogenannten Gerätekontrollblockes (DCB).

Mit dem Befehl BuildCommDCB wird dieser Kontrollblock initialisiert. Mit allen diesen Einstellungen wird nun die jeweilige serielle Schnittstelle über den Befehl SetCommState initialisiert. Um vom Empfangsspeicher Daten auszulesen, wird die API-Funktion ReadComm verwendet. Die Funktion WriteComm schreibt Daten in den Sendebuffer. Eine unangenehme Eigenschaft des WriteComm Befehls ist es Daten im Sendebuffer zu überschreiben, wenn nicht genügend Speicherplatz im FIFO-Buffer vorhanden ist. Darum muß mit der Funktion GetCommError die Größe des Freien Sendespeichers überprüft werden.

Zu einem sauberen Beenden eines Programmes gehört auch, die serielle Schnittstelle mit dem Befehl CloseComm zu schließen. Realisierung / Implementierung Entwicklungsumgebung Die Wahl der Programmiersprache und Laufzeitumgebung wurde vom Auftraggeber freigestellt. Als Entwicklungsumgebung wurde Delphi 1.0 ausgewählt. Die Vorteile sind kurze Entwicklungszeiten für graphische Oberflächen, einfache Ereignisbehandlung, objektorientierte Programmierung und leichte Einbindung der Windows API - Funktionen. Der Nachteil ist, das Delphi sich mit seiner Struktur Pascal ähnelt und große Differenzen zur weitverbreiteten C++ Syntax aufweist.

Die Laufzeitumgebung ist Windows 3.1x und Windows 95. Nach einer Neucompilierung des Quellcodes mit Delphi 2.0 nutzt das Programm auch die weiterentwickelten API-32-Funktionen. Es wurde uns von der Firma Saft Nife eine Sicherheitsstrom-versorgungsanlage mit der aktuellsten Firmware-Version 2.04 zur Verfügung gestellt.

Die ersten Wochen wurde der Kommunikationverkehr zwischen dem Programm multipro und der Anlage untersucht. Ein speziell für diese Anforderung geschaffenes serielles Kabel ermöglichte eine Überprüfung des Datenstromes durch einen zweiten Rechner. In der dritten Woche erhielt das Projektteam die Dokumentation des Bytebusprotokolls der Firma Hedon. Befehlsbibliotheken Befehlsbibliotheken werden in Delphi UNIT genannt. Jedes graphische Formular besitzt eine eigene Unit. Die Module Anlage_.

pas, Fenster_.pas, Konfig_.pas beinhalten die Hauptklassen und besitzen keine Formulare. Die Unit STRUKTUR besitzt die Datenstruktur der Klassen TAnlage und TKonfig, da Records und Konstanten außerhalb von Klassen vereinbart werden müssen. Alle wichtigen Datenstrukturen sind in einer Klasse gebündelt, somit erhöht sich Übersichtlichkeit des Programmes.   Abbildung 2 BefehlsbibliothekenDas Modul main.

pas steuert alle Ereignisse und ordnet diese den entsprechenden Prozeduren zu. Im Hauptdialog kann der Benutzer folgende Ereignisse auslösen: Des Programm beginnt mit dem Einlesen der Konfigurationsdaten aus der multirem.ini. Der Timer wird gestartet und ließt Fragmentweise die Anlagedaten in die interne Datenstruktur des Programmes ein. Die Schaltflächen in der Werkzeugleiste lösen bei Betätigung Ereignisse aus. Folgende Schaltflächen stehen dem Benutzer zur Verfügung.

Anlagedaten sichern bzw. wiederherstellen, Tagestest auslösen, Jahrestest auslösen, Konfiguration ändern, neues Paßwort eingeben, Hilfedokument und Beenden. Mit Betätigen der linken Maustaste auf dem vorher ausgewählten Zeichenobjekt wird die nächste Unterstruktur angezeigt. Mit Betätigen der rechten Maustaste auf ein zuvor ausgewähltes Hauptverteiler-Zeichenobjekt wird ein neuer Dialog geöffnet, welcher die Eigenschaften des Hauptgerätes anzeigt und in dem der benutzerdefinierte Name geändert werden kann. Alle anderen Zeichenobjekte haben keine Eigenschaften, es kann jedoch der benutzerdefinierte Name geändert werden. Mit der Betätigung der Schaltfläche “Zurück” werden die Zeichenobjekte eine Ebene höher angezeigt.

Wird das Hauptfenster durch den Benutzer vergrößert, verkleinert, aus den Hintergrund geholt oder verschoben, wird der Inhalt des Hauptfensters nochmals gezeichnet. Die Klasse Anlage steuert die gesamte Kommunikation mit der Anlage. Jeder Anlage wird ein instanziertes Objekt zugewiesen. Zu einer späteren Firmware-Version werden mehrere Anlagen auf den seriellen Bus senden können. Jedes Anlagenobjekt erhält alle Daten und Methoden einer reellen Anlage. Bevor es zu einer Kommunikation kommt, müssen mehrere Vorbereitungen getroffen werden.

Eine entsprechende serielle Schnittstelle wird konfiguriert und geöffnet. Dann wird der Timer gestartet und im Abstand von 250 ms werden Kommandos zur Anlage geschickt und auf eine Antwort des multi 0108 gewartet. Das erste Kommando schaltet die Anlage in den normalen Antwortmodus. Das zweite Kommando übermittelt die Fragmentlänge. Die Fragmentierung der Daten erhöht die Übertragungssicherheit. Das dritte Kommando ließt die Firmware-Version ein.

Das Programm Multirem soll die Firmware-Version 2.x unterstützen. Wird eine niedrigere Versionnummer ausgelesen, wird das Programm mit einem Hinweisdialog beendet. Mit allen weiteren Kommandos wird die gesamte Konfiguration der Anlage eingelesen. Die Konfigurationsdaten werden über Zeigeroperationen direkt in die interne Datenstruktur geschrieben und auf dem Bildschirm angezeigt. Die Klasse Fenster besitzt Methoden und Daten um diese Daten zu visualisieren.

Das Programm Multirem teilt die Struktur der Anlage in vier Ebenen auf: Anzeige aller angeschlossenen multi 0108, der Haupt- und Unterstationen (US), der Gruppeneingänge (GE) und der geschalteten Endstromkreise (GEK) mit zugehörigen Leuchtmitteln. Weiterhin können alle Eigenschaften des multi 0108 angezeigt werden. Um die serielle Schnittstelle und die Passwörter zu konfigurieren ließt bzw. schreibt die Klasse Konfig die entsprechenden Daten in die Konfigurationsdatei Multirem.ini. Das multi 0108 sendet mit 9600 Baud und jeder Datenblock besteht aus 8 Datenbits, 1 Stopbit und besitzt kein Paritätsbit.

Ereignisse (Events) Windows ist ein dynamisches System, das bedeutet, daß die Methode des linearen sequentiellen Programmablaufes transformiert und wesentlich verbessert wurde . Es wird auf ein bestimmtes Ereignis gewartet und dieses wird von einem Programm ausgewertet. Diese Programmiermethode mindert die Rechnerauslastung und ermöglicht das Multitasking. Multitasking heißt, daß mehrere Programme parallel ablaufen können.  EVENTHANDLER Programm beenden sende disconnect schließe Schnittstelle Bestätigungsdialog Bestätigungsdialog Tagestest auslösen sende Befehl Mitteilungsdialog Jahrestest auslösen sende Befehl Mitteilungsdialog Bestätigungsdialog Eigenschaften des HVT Werte übertragen Dialog anzeigen nächste Ebene anzeigen erhöhe aktuelle_Ebene Ebene zeichnen vorherige Ebene anzeigen erniedrige aktuelle_Ebene Ebene zeichnen Starte Programm Öffne serielle Schnittstelle Konfiguration Dialog anzeigen Werte übertragen Passwort Eingabe Passwort Überprüfen: Passwort-Dialog neues Passwort Passwort 2x eingeben neu Passwort-Dialog Hilfe Hilfedatei aufrufen Worte Überprüfen Felder freischalten Namen ändern EditDialog anzeigen Bestätigen SystemFehler anzeigen Alarmwerte übergeben Dialog anzeigen starte Timer Timeraufruf jede 250ms Wenn alle Werte eingelesen Alarme überwachen Antwortmodus einstellen Fragmentlänge senden Versionsnummer auslesen Konfiguration auslesen 1.Netzwerkstruktur auslesen 2.

Netzwerkstruktur auslesen 3.Netzwerkstruktur auslesen Hauptebene darstellen Connect-Bitmap zeichnen nein ja lade Konfiguration Abbildung 3 Eventbehandlung Methoden und Daten der Klasse TKonfiguration Die Klasse TKonfiguration arbeitet mit der Konfiguration des Programmes, Passwörtern und der seriellen Schnittstelle.   Daten dieser Klasse: KonfigIO TKonfigIO; Konfigurationsstruktur PasswortRichtig Byte Status des Benutzers; 0-Beobachter; 1 - User; 2- Master; 3- Servicetechniker comport integer; Nummer der geöffneten COM-Schnittstelle   Konstruktor dieser Klasse: Create   Konfiguration: lade Lade die letzten Einstellung aus multirem.ini speicher; speichere die aktuelle Einstellung setzeKonfiguration Setze die aktuelle Einstellung   Die Arbeit mit Passwörtern: PasswortTesten (passwort:String) eingegebenes Passwort überprüfen und Variable PasswortRichtig setzen PasswortErstellung neues Passwort eingeben   serielle Schnittstelle öffnen: VerbindungAufnehmen:integer serielle Schnittstelle öffnen, gibt den Fehlerstatus zum Hauptprogramm zurück Methoden und Daten der Klasse TAnlage: Die Klasse TAnlage kapselt die Methoden und Daten für die Kommunikation mit einer Anlage. So können mehrere Anlagen sinnvoll verwaltet werden. Jeder multi 0108 wird ein instanziertes Objekt zugewiesen.

Ein Timer ruft alle 250 ms die Methode “Kommunikation” auf, um die Initialisierung der Datenstruktur und die Überwachung der Sicherheitsbeleuchtungsanlage durchzuführen.   Status der Kommunikationfortschrittes: (boolean) Verbunden besteht eine Verbindung ? send_framesize Wurde Fragmentgröße Bestätigt send_version Wurde die Versionsnummer bestätigt ? send_generalKonfig Wurde Konfiguration zurückgeschickt ? send_NetzWS1 Wurde die 1. Netzwerkstruktur eingelesen send_NetzWS2 Wurde die 2. Netzwerkstruktur eingelesen send_NetzWS3 Wurde die 3. Netzwerkstruktur eingelesen abgeschickt Wurde der jeweilige Befehl abgeschickt warteAufAntwort Befehl wurde abgeschickt, warte nun auf Antwort   Variablen für die Übertragung HVT byte Nummer des Hauptverteilers Infobyte byte Sende und Empfangsfolgenummer; Infobyte = rrr1sss0 SBlockbyte byte Supervisor-layer beinhaltet Empfangsfolgenummer RR boolean Anlage bereit oder nicht bereit count Integer empfangene Daten ohne Start und Endblock Fragmentfeld TFragmentfeld ein Fragment; Länge 200 bytes nextFragment byte Nummer des Fragments   Daten von multi 0108: AnzahlHVT byte aktuelle Anzahl der Hauptverteiler general Tgeneral generelle Konfigurationsdaten MeldespeicherGroesse word die Größe des Meldespeichers versionsnummer word aktuelle Firmware-Versionsnummer   Konstruktor dieser Klasse: Create(HVT:byte) initialisiere Daten für einen bestimmten HVT   Hier ist das Herzstück der Kommunikation: Kommunikation Strukturen einlesen u. Anlage überprüfen   Überprüft den Empfangsbuffer nach eingegangenen Nachrichten: Rueckantwort:byte kontrolliert den Empfangsbuffer   Kommandos die zur Anlage geschickt werden: sendePing schaltet Anlage in den normalen Antwortmodus sendDisconnect beendet die Verbindung mit der Anlage ReseiveReady sendet der Anlage : zum Empfang bereit ReseiveNotReady sendet der Anlage: zum Empfang nicht bereit sendeFragmentlen sendet Fragmentlänge zur Anlage Softwareversion_auslesen fordert die Softwareversion an generalKonfig_auslesen fordert die Konfiguartion der Anlage an sendeNetzWS1 Fordert die 1.

Netzwerkstruktur an starteTagestest startet den Tagestest   zurückgesendete Antworten: lese_generalKonfig ließt die Konfiguration ein und setzt Variable general lese_1Netzwerkstruktur ließt 1. Netzwerkstruktur ein und setzt Variable NetzWS1 lese_2Netzwerkstruktur ließt 2. Netzwerkstruktur ein und setzt Variable NetzWS2 lese_3Netzwerkstruktur ließt 3. Netzwerkstruktur ein und setzt Variable NetzWS3 lese_alarmKonfig ließt Alarmkonfiguration ein lese_alarmGruppenKonfig ließt Alarmgruppen Konfiguration ein lese_BenutzerdefiniertenAlarm ließt den benutzerdefinierten Alarm ein lese_TagestestWerte ließt die Tagestestwerte ein lese_Meldespeicher ließt den die Texte aus dem Meldespeicher lese_Version lese Firmware-Version aus lese_messwerte lese Messwete der Anlage aus lese_GEKStromKreisTest lese Werte der GEK’s aus lese_Leuchtentexte lese Leuchtentexte aus lese_2Netzwerkstruktur lese 2. Netzwerkstruktur aus lese_Betriebsstatus lese Betriebsstatus aus lese_3Netzwerkstruktur lese 3. Netzwerkstruktur   Prozeduren für das Bytebus-Protokoll: LeseDaten (len:word) Lese komplettes Frame von der serielle Schnittstelle DatenAuswertung auswertung des User-frames schreibeDaten (P: Pointer; len:longint; Kontrollbyte:byte; Fragment:byte) schreibt komplettes Frame zur seriellen Schnittstelle FragmentiereDaten (P:Pointer;len:longint) bei einem Userframe müssen die Daten vorher fragmentiert werden Infoframe (zugriff:boolean) : byte erhöht die Sende- (zugriff=true) oder Empfangsfolgenummer (zugriff=false) crcheck (p:pointer;len:longint; var crc1,crc2:byte) berechnet die Kontrollbytes aus Daten Bytestuffing (P:pointer;len:word;var newp:pointer;var newlen:word) Nach einen Daten DLE wird noch ein DLE angehangen = “bytestuffing” Befehlsbestaetigung (zeichenkette:string) Status der der Übertragung   Lade und speichere Konfiguration der Anlage: LadeEinstellung (Name:String) stelle Konfiguartion einer Anlage wieder her SpeicherEinstellung (Name:String) rette Konfiguration einer Anlage Methoden und Daten der Klasse TFenster Die Klasse Fenster stellt die interne Datenstruktur graphisch dar.

Vier Ebenen ermöglichen eine Übersichtliche Darstellung aller HVT’s, US, GE’s und GEK’s mit allen Leuchtmitteln. Darüber hinaus werden die Systemeigenschaften eines Hauptgerätes angezeigt.   Daten dieser Klasse: aktuelle_Ebene Byte Nummer der aktuellen Ebene aktHVT, aktUS, aktGE, aktGEK Integer ausgewählter HVT, US, GE, GEK mausX, mausY, MausTaste Integer Mausstatus   Konstruktor dieser Klasse: Create   Zeige die Eigenschaften eines Hauptverteilers an: EigenschaftHVT(NummerHVT :Byte) Eigenschaftsdialog eines Hauptverteilers anzeigen   Zeichne und ermittle Komponenten in der aktuellen Ebene: zeichneEbene zeichne die aktuelle Ebene mit allen Komponenten KomponenteErmitteln:Integer Ermittle die angewählte Komponente   Zeichne jeweilige Komponente zeichneHVT (nummer:integer; name:string; bezeichner1, bezeichner2:string; status:boolean; fehler:boolean) zeichnet ein Hauptverteiler-Zeichenobjekt zeichneUS (nummer:integer; name:string; bezeichner1, bezeichner2:string; status:boolean; fehler:boolean) zeichnet ein Unterstation - Zeichenobjekt zeichneGE (nummer:integer; name:string; bezeichner1, bezeichner2:string; status:boolean; fehler:boolean) zeichnet ein Gruppeneingang - Zeichenobjekt zeichneGEK (nummer:integer; name:string; bezeichner:string; feld:T_Leuchten; kreis1,kreis2:byte) zeichnet ein Geschalteter-Endstromkreis-Zeichenobjekt zeichneKomponente (x,y,nummer:integer; name:string; bezeichner1, bezeichner2:string; status:boolean; fehler:boolean) Zeichnet eine Komponente für einen HVT, US oder GE mitte (s:String;max:integer):integer zentriert einen Schriftzug     Abschließende Beurteilung des Projektes  Die Arbeit am Projekt teilte sich in den Teil Lasten- und Pflichtenheft-Erstellung und in den Teil der Programmerstellung. Nach zwei Wochen kristallisierten sich die Ansprüche der Auftraggebers heraus. In der dritten Woche erhielt die Gruppe die Dokumentation über das Bytebusprotokoll. So stand nur ein effektiver Zeitraum von 3 Wochen zur Programmierung des Programmes zur Verfügung.

Das Projekt kann in diesem Umfang nicht von einem Programmierer allein bewältigt werden. In dem Zeitraum von 5 Wochen konnten alle wichtigen Bibliotheken für die Kommunikation mit der Anlage, zur Darstellung der Zeichenkomponenten und der Konfiguration des Programmes erstellt werden. Aufgabe für das nächste Programmiererteam ist unter anderem die Anpassung des Programms an die nachfolgenden Firmware-Versionen. Diese Versionen werden der Anlage ermöglichen, die Daten über ein Modem oder einer RS 422- Schnittstelle zu senden. Weiterhin konnte aus den oben genannten Zeitgründen das Pflichtenheft nicht vollständig erfüllt werden. Alle Masken und Dialoge konnten jedoch fertiggestellt werden.

Zur Weiterführung dieses Softwareprojektes werden zwei erfahrene Delphi-Programmierer und ein Zeitraum von 2 bis 3 Monaten empfohlen. In vier Wochen Projektarbeit, abzüglich Einarbeitungszeit, müssen die Dialoge den vollständigen Funktionsumfang des Pflichtenheftes enthalten. Die Unterstützung der neuen Firmware wird voraussichtlich etwa einen Monat in Anspruch nehmen. Das Produkt überwacht multi 0108 Geräte, die in sensiblen Bereichen eingesetzt werden. Deshalb ist es sehr wichtig das Programm multirem unter Praxisbedingungen ausgiebig zu testen. Diese Testphase kann einen Zeitumfang von bis zu einen Monat annehmen.

  Begriffserklärung    API Das “Applikation Interface” ist eine Schnittstelle zwischen Anwendungsprogramm und Windowsfunktionen. Bytestuffing Prinzip: Enthält die Linkschicht ein DLE wird nochmals ein DLE versendet, um Verwechslungen mit der Frameschicht zu vermeiden. Bytebusprotokoll Vier-Schichten-Kommunikations-Modell der Firma Hedon. CRC Der “Cyclic Redundancy Check” berechnet nach einem vorgegebenen Algorithmus zwei Prüfbytes aus den Daten der Linkschicht. Delphi Objektorientierte graphische Entwicklungsumgebung DLE Zusammen mit dem nächsten Zeichen kennzeichnet DLE den Blockanfang (STX), das Blockende (ETX) oder Daten (DLE) ETX Im Zusammenhang mit dem Zeichen DLE markiert ETX das Ende eines Übertragungsblockes. Event Anwendung wartet auf ein vorher definiertes Ereignis.

Firmware Die Versionsnummer der Software in der Notbeleuchtungsanlage. Fragment Große Datenmengen werden in kleinere Datenblöcke geteilt. GE In einem Gruppeneingang sind mehrere GEK’s zusammengeschlossen. GEK Der geschaltete Endstromkreis beschreibt die zwei elektrisch unabhängige Stromkreise an dem mehrere Leuchtmittel angeschlossen sind. I-Block Der Informationsblock besteht aus einem Byte, welches die Sende-, Empfangsfolgenummer und den Anfang der Userschicht kennzeichnen. HDLC “Hide Data Link Control” ist ein bitorientiertes Steuerungsverfahren zur Datenübermittlung nach DIN ISO 3309.

Es wird in Schicht 2 und 3 des Bytebusprotokolls und Schicht 2 des OSI-Referenzmodells benutzt. Hedon Niederländische Softwarefirma, welche multipro entwickelt. HVT Der Hauptverteiler ist das Hauptmodul in der Notbeleuchtungsanlage. Master Steuert die Kommunikation zu anderen Geräten (Slaves). multi 0108 Sicherheitsstromversorgungssystem nach DIN VLE Norm 0108. Multirem Programmname dieses Projektes - “Multi Remote”.

Multipro Programm der Firma Hedon - “Multi programing”. OSI-Referenzmodell Gedankenmodell, welches die Kommunikation in aufgabenbezogene (funktionale) Schichten teilt. (Wird beim ISDN-Datenprotokoll verwendet) RS-232 Serielle Schnittstellennorm, die zwei Teilnehmer miteinander verbindet. RS-422 Serielle Schnittstellennorm, die beliebig viele Teilnehmer miteinander verbindet. Saft Nife alter Name des Auftraggebers, neuer Firmenname ist SiLiBat. SiLiBat Name des Auftraggebers, alter Firmenname ist Saft Nife S-Block Der Supervisory Block besteht aus einen Byte, welches den Status des Senders bzw.

Empfängers darstellt. SE Schalteingänge sind meist extern angebrachter Schalter. Slave Antwortet auf Kommandos des Masters. STX Im Zusammenhang mit dem Zeichen DLE markiert das ETX den Anfang eines Übertragungsblocks. Timer Das Hauptprogramm wird in Intervallen unterbrochen und ein Unterprogramm gestartet. U-Block Der unnumerierte Block transportiert Steuerzeichen, welche den Empfangsstatus und die Empfangsfolgenummer beinhalten UART Steuert den I/O Kontroller, der die Kommunikation mit anderen Geräten über die serielle Schnittstelle ermöglicht.

US Jede Unterstation ist einem Knoten zugeordnet. Jeder Knoten hat festgelegte Gruppeneingänge.             Quellennachweis:       Borland Delphi 2 Doberenz/ Kowalski Hanser Verlag ISBN 3-446-18670-0 Delphi 2 in 21 Tagen Dan Osier SAMS ISBN 3-87791-869-7 Delphi 2 Dirk Louis Markt & Technik ISBN 3-8272-5107-9 Windows intern Honekamp, Wilken Data Becker ISBN 3-89011-284-6 Delphi, die Referenz Michael Starke TEWI Verlag ISBN 3-89011-284-6     HEDON electronic developments documention:   Bytebus message specification (1998) Bytebus protocol specification (1991) Functional specification (1998) Fragmented frame specification (1996) Configuration file (1997)   Borland C++ Quellcode des Programmes multipro version 2.04.     Lasten und Pflichtenheft Autor: Jan Hohndorf  

Suchen artikel im kategorien
Schlüsselwort
  
Kategorien
  
  
   Zusammenfassung Der Vorleser

   sachtextanalyse

   interpretation zwist

   Fabel interpretation

   literarische charakteristik

   interpretation bender heimkehr

   felix lateinbuch

   interpretation der taucher von schiller

   textbeschreibung

   charakterisierung eduard selicke
Anmerkungen:

* Name:

* Email:

URL:


* Diskussion: (NO HTML)




| impressum | datenschutz

© Copyright Artikelpedia.com