Doku_automatisierte Waage

Werbung
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Projekt
Automatisierte Waage
Team:
Nikola Batarilo, Gianina Feraru, Fiedler Michael, Gerassimoff Christoph, Harald
Heine, Bernhard Hochrainer, Lucas Kavka, Werner Lueger, Manuel Meißner, Damir
Popovic
Projektbetreuerin:
Prof. Mag. Ursula Zahalka
Kurzbeschreibung:
Über eine Rezeptdatenbank können verschiedene Rezepte ausgewählt werden. Die
Zutatenmengen können für unterschiedliche Portionenanzahlen berechnet werden
und danach entweder auf einer simulierten Waage oder auf einer echten Waage, die
an die serielle Schnittstelle des Computers angeschlossen wird, abgewogen werden.
Das gesamte Projekt ist über das Internet abrufbar und auch steuerbar.
Wir haben uns eingehend mit der technischen Funktionsweise der seriellen
Schnittstelle beschäftigt und zusätzlich ein Visual Basic-Programm zum
Schnittstellentest programmiert.
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Inhaltsverzeichnis
Projektidee
Projektziel
Umsetzung
Rezeptdatenbank
Aufbau der Waage
Wägezelle
Schnittstellenparameter
Allgemeines über die serielle Schnittstelle
Technik der seriellen Schnittstelle
Serielle Datenübertragung
Bits und Bytes
Visual Basic Programm zum Testen der seriellen Schnittstelle
Projektteam
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Projektidee
Wir hatten im Elektrotechnikunterricht die Idee, eine Waage mit einem Computer zu
verbinden und über den PC anzusteuern. Deswegen haben wir einen Lehrausgang
zur Firma BIZERBA, die Waagen herstellt, gemacht. Diese Firma war so freundlich,
uns eine Waage, eine digitale Anzeige, Software und andere Informationen zur
Verfügung zu stellen. Durch diese Ereignisse kamen wir dann zu dem Entschluss,
dass wir ein Projekt planen wollen, das wir langfristig auch zu unserem
Maturaprojekt machen werden.
Projektziel
Unser Ziel für die Projektwoche in diesem Jahr waren vorbereitende Arbeiten zur
Umsetzung einer automatisierten Wiegeeinrichtung. Wir wollten uns über die
Schnittstellenprogrammierung informieren, die Verbindung zur seriellen Schnittstelle
testen und uns die Grundlagen für die weitere Programmierung einer automatisierten
Waage aneignen. Zusätzlich hatten wir die Idee, dass wir auch eine Rezeptdatenbank
in Zusammenhang mit der Waage (oder zunächst einmal mit einer simulierten
Waage) anlegen könnten.
Umsetzung
Folgende Liste soll einen Überblick über die von uns eingesetzten Programme und die
verwendete Hardware geben. Im Laufe der Woche sind wir alle zu echten
Spezialisten in der Schnittstellen-Programmierung, Bildbearbeitung, HtmlProgrammierung und vielem mehr geworden.
Verwendete Software
•
•
•
•
•
•
•
VB 6.0 (Schnittstellenkommunikation)
Microsoft Word (Textverarbeitung)
Front Page (HTM-Programmierung)
Image Composer (Bildbearbeitung)
MySQL-DB (Rezepteingabe)
PHP (für Datenbankabfragen)
DHTML (dynamische HTML-Seiten)
Verwendete Hardware
•
•
•
•
Waage
Digitales Auswertegerät
Digitalkamera
PC und ein Modem (für Schnittstellentests)
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Rezeptdatenbank
Wir haben eine Rezeptdatenbank angelegt, in die wir die Rezepte gespeichert haben.
Die Rezepte sind in Kategorien unterteilt und zu jedem Rezept kann ein passendes
Bild angezeigt werden. Weiters kann man die Portionenanzahl selbst einstellen, und
die Zutatenmengen werden danach berechnet. Die jeweilige Menge kann
anschließend mit einer simulierten Waage oder mit der echten Waage, die wir an die
serielle Schnittstelle angeschlossen haben, abgewogen werden. Das Wiegeergebnis
wird am PC über eine html-Seite angezeigt.
Aufbau der Waage
Technische Daten
Umgebungstemperatur -10°C bis +40°C 3m Netzkabel mit Stecknetzteil,
Eingangsspannung 230 V~, ±10%
Anzeige
6-stellige LCD Gewichtanzeige, Ziffernhöhe ca.18 mm, Ablesung einseitig,
Hintergrundsbeleuchtung, LED Tarafunktionsanzeige
Gehäuse
Abmessung 245 x 135 (mit Standbügel 150) x 68mm, ABS-Kunststoff schwarzgrau,
Eigengewicht ca. 1,3 kg, Schutzart IP 54
Wägebereich
von 0,3 kg bis 60 t, Auflösung 3000 d Anschließbar an Lastaufnehmer mit 1 – 4 DMS
Wägezellen
Funktionstasten
Nullstellung Tara; subtraktive Tara über ganzen Wägebereich Ein/Aus Funktion nur in
Kombination mit Akku aktiv
Zusammenausstattung
doppelseitige Ablesung, 1x Datenausgang V24 / RS232C für EDV, 1x Datenausgang
V24 / RS232C für Drucker, Wandhalterung, Akku: Funktionsanzeige durch LED,
Akkupufferung: Power-supply Incl. Batterieladeabschaltung
EG-Einzulassung Nr.:
A 40521/97
Wägezelle
HLC3-550 kg....C3, D1 Genauigkeitsklasse
CLASS&DIV: C3000
Vmin: 0.055kg
Charakteristische Merkmale
•
•
•
•
•
•
Hermetisch gekapselt (IP68)
Nichtrostende Materialien
Geringe Bauhöhe
Erfüllt die EMV-Anforderungen entsprechend EN 45 501
Eichfähig nach OIML R60 bis 3000 Teile
Ex-Schutz-Ausführungen nach ATEX95 (für HLC_C3) möglich
Technische Spezifikation
2 HTA
•
•
•
•
•
•
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Hermetisch gekapselt (IP68)
Nichtrostende Materialien
Geringe Bauhöhe
Erfüllt die EMV-Anforderungen entsprechend EN 45 501
Eichfähig nach OIML R60 bis 3000 Teile
Ex-Schutz-Ausführungen nach ATEX95 (für HLC_C3) möglich
Nennlast 200 kg / 550 kg / 1,1 t / 1,76 t / 2,2 t / 4,4 t Genauigkeitsklasse D1, C3
Zulassungen OIML, NTEP, Ex, GOS Schutzart IP 68 Material nichtrostender Stahl
Bemerkungen EMV-geprüft.
Schnittstellenparameter
Serielle Verbindung, asynkrom vollduplex, V24, RS232C Schnittstellenparameter :
9600 Baud,8 Bit ASCII-Protokol, keine Parität, 2 Stop-bit, fixe Datensatzlänge mit 11
Zeichen. Die Wertausgabe erfolgt nach Erhalten des Funktionsbefehls g(HEX:1B 67)
von der EDV-Seite bei stillstand der Waage. Während der Einschaltroutine oder bei
Fehlanzeigen erfolgt keine Wertausgabe. Datenausgabe erfolgt parallel auf beide
Schnittstellen, wodurch das Protokollieren der ausgegebenen Gewichtsdaten auf
einem Drucker ermöglicht wird.
Satzaufbau
Byte
1
ASCII +/-
2
3
4
5
6
8
9
10 11
5 Byte Gewicht und 1 Byte Kommapunkt k
g
CR LF
Vorzeichen Gewichtswert mit Kommapunkt
7
Einheit kg
Allgemeines über die serielle Schnittstelle
Normen und elektrische Pegel
Die serielle Schnittstelle eines Computers überträgt die Daten bitweise und ist
durch die RS232-Norm (auch V.24 genannt) festgelegt.
Daher müssen das Protokoll der Datenübertragung, die Verkabelung, die elektrischen
Signale und die Stecker auf einer RS-232- Verbindung basieren.
Jeder PC besitzt mindestens zwei serielle Schnittstellen, die auch COM-Ports
genannt werden (COM1 und COM2). COM-Port steht für Communication Port.
An diesen Anschlüsse werden in der Regel die Maus, ein Nullmodem-Kabel, und /
oder das Modem angeschlossen.
Die Serielle Schnittstelle ist an modernen PC eine 9-Poliger Sub-D Stecker. An
älteren Modellen findet man auch 25-Polige Sub-D Stecker. Für die Steuerung der
Waage wird die 9-polige Schnittstelle verwendet.
Für eine serielle Schnittstelle gelten nachstehende technische Daten:
Ausgänge:
• Low-Pegel = + 12V
• High-Pegel = - 12V
• Ausgangsstrom: bis zu 10mA
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Eingänge:
• Low-Pegel bis ca. +1V
• High-Pegel ab ca. +1,25V
• Eingangswiderstand = 10kOhm
Daraus ergeben sich einige Vorteile: Die serielle Schnittstelle kann wegen des hohen
Eingangswiderstandes fast nicht zerstört werden. TTL-Pegel (0V/5V) werden an den
Eingängen i.d.R richtig erkannt.
Die Geräte an der seriellen Schnittstelle können bei laufendem PC angeschlossen
werden. Weiterhin können kleinere Schaltungen und Gräte direkt über die Serielle
Schnittstelle mit Strom versorgt werden.
ACHTUNG: Nicht alle Gerätehersteller halten sich an die RS232-Norm.
So haben z.B. Notebooks oft nur Pegel von +/- 7.5V oder noch weniger. Viele Geräte
setzen auch eine serielle Datenübertragung mit TTL-Pegel um. Bei solchen Geräten
ist darauf zu achten, ob die PC-Ausgangsleitungen direkt auf die Eingänge gelegt
werden dürfen oder ob eine Pegelwandlung vorgeschaltet werden muss!
Technik der Seriellen Schnittstellen
Bei einem seriellen, asynchronen Datentransfer werden die einzelnen Bits, aus
denen jedes Datenbyte besteht, in folgendem Datenformat nacheinander über eine
Leitung übertragen.
Für eine serielle Schnittstelle gelten nachstehende technische Daten:
Zeichen "A" = 01000001
Der Ruhezustand der Übertragungsleitung, der auch mit "Mark" bezeichnet wird,
entspricht dem Pegel einer logischen "1". Die zur Übertragung verwendeten
Spannungs- bzw. Strompegel können Sie der Beschreibung der einzelnen
Schnittstellen entnehmen.
Die Übertragung eines Bytes beginnt mit einem vorangestellten Startbit, das als
logische "0" gesendet wird. Anschließend werden nacheinander 5 bis 8 Datenbit,
beginnend mit dem niederwertigsten (LSB) Bit, ausgegeben.
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Dem letzten Datenbit kann ein Paritätsbit folgen, das zur Erkennung von
Übertragungsfehlern dient. Das Paritätsbit bewirkt, dass bei gerader ("EVEN") Parität
immer eine gerade bzw. bei ungerader ("ODD") Parität eine ungerade Anzahl von
"1"-Bits übertragen wird. Das Ende des Zeichens wird wahlweise durch 1 oder 2
Stopbits gebildet.
Alle Bits werden sequentiell mit Geschwindigkeiten von 50..115200 Baud gesendet.
Zur Vermeidung von Datenverlusten muss der Empfänger die Datenübertragung
anhalten können, wenn keine weiteren Daten mehr verarbeitet werden können.
Dieses sogenannte Handshake kann auf zwei Arten realisiert werden:
Hardware-Handshake:
Der Empfänger steuert über Steuer-Leitungen die Handshake-Eingänge CTS
und/oder DSR des Senders mit seinem Handshake-Ausgang DTR oder RTS.
Software-Handshake:
Der Empfänger sendet zur Steuerung des Datenflusses spezielle Zeichen an den
Sender (z.B. XON/XOFF).
RS232
Die Norm RS232 beschreibt die serielle Verbindung zwischen einem
Datenendgerät (DTE) und einer Daten-Übertragungseinrichtung (DCE) mit
ihren elektrischen und mechanischen Eigenschaften. Obwohl die Norm lediglich
diesen Verbindungstyp definiert, hat sich die RS232-Schnittstelle als genereller
Standard für serielle Datenübertragungen über kurze Distanzen etabliert. DTE und
DCE unterscheiden sich grundsätzlich in der Belegung ihrer Steckverbinder. PCs,
Drucker, Plotter oder der Main Port eines Terminals sind mit einer DTE-Belegung
ausgestattet, während Modems und Drucker-Ports von Terminals DCE-Belegungen
aufweisen. Eine Sonderstellung nehmen einige Plottertypen ein, die sowohl mit einer
DCE- als auch mit einer DTE-Schnittstelle ausgerüstet sind.
Bei der RS232-Schnittstelle werden die einzelnen Datenbit eines Zeichens
nacheinander als Spannungszustände über eine Sende- bzw. Empfangsleitung
übertragen. Einer logischen "1" entspricht dabei ein negativer Spannungspegel von 15..-3V, einer logischen "0" dagegen ein positiver Spannungspegel von +3..+15V
bezogen auf die gemeinsame Signalmasse. Der Datensender muss unter Last einen
Mindestpegel von +/- 5 Volt erzeugen, während der Empfänger Pegel von +/-3 Volt
noch als gültiges Signal erkennt.
Die zulässige ohmsche Last muss größer als 3KOhm sein, die durch die
Übertragungsleitung verursachte kapazitive Last ist auf 2500 pF beschränkt. Die
erzielbare Entfernung zwischen zwei RS232-Geräten ist wie bei allen seriellen
Übertragungsverfahren vom verwendeten Kabel und der Baudrate abhängig. Als
Richtmaß sollte bei einer Übertragungsrate von 9600 Baud eine Distanz von 15 bis
30 Metern nicht überschritten werden.
RS232-Schnittstellen besitzen eine Vielzahl von Handshake-Leitungen, die jedoch in
Ihrer Gesamtheit lediglich zur Verbindung eines Modems mit einem Datenendgerät
benötigt werden. Der weitaus häufigere Fall der Verbindung zweier Datenendgeräte
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
miteinander lässt sich in der Regel mit einer reduzierten Anzahl von HandshakeLeitungen ohne Probleme realisieren. Nicht benötigte Handshake-Eingänge werden
einfach durch Verbindung mit den eigenen Handshake-Ausgängen auf Freigabepegel
gelegt.
Serielle Datenübertragung
Bei der seriellen Datenübertragung werden auf einer Leitung die Informationen (Bits)
nacheinander übertragen. Das setzt voraus, daß sich die beiden an der Übertragung
beteiligten Partner darüber einig sind, wann oder wie lange ein Bit auf der
Übertragungsleitung anliegt (=gültig ist).
Man kann hierzu prinzipiell zwei Verfahren unterscheiden:
• synchrone serielle Datenübertragung
• asynchrone serielle Datenübertragung
Synchrone Datenübertragung
Für die synchrone Datenübertragung ist eine Taktleitung notwendig. Dieser Takt,
der entweder vom Sender oder Empfänger erzeugt wird, bestimmt, wann die Bits
gültig sind.
Angenommen, in obigem Beispiel ist der Sender für
die Taktleitung verantwortlich. So signalisiert ein auf
high gesetzte Taktleitung dem Empfänger: "Jetzt liegt
auf der Datenleitung das Bit an. Du kannst es
auslesen!" Nach einer gewissen Zeit setzt der Sender
den Takt wieder auf Low und signalisiert damit dem
Empfänger: "Jetzt will ich ein neues Bit setzen. Jetzt
NICHT auslesen!" In obigem Beispiel wird also die
Bitfolge 101001102 = 101Dez übertragen. Mit diesem
Verfahren und der Low-Level-Programm der seriellen
Schnittstelle können z.B. Schieberegister beschrieben
oder ausgelesen werden.
Asynchrone Datenübertragung
Hier einigen sich vor der Übertragung Sender und
Empfänger auf eine Übertragungsgeschwindigkeit
(Baudrate), die Anzahl der in einem Datenwort
vorhandenen Bits und über Start-, Stop und
Paritätsbit.
Im Ruhezustand befindet sich die Übertragungsleitung auf High-Pegel. Will der
Sender ein Datenwort senden, so setzt er für die Zeitdauer eines Bits (gem. der
vereinbarten Baudrate) die Leitung auf Low-Pegel. Dieses erste Bit wird Startbit
genannt. Anschließend wird die vereinbarte Anzahl an Datenbits übertragen. Es folgt
ein Paritätsbit (nach Vereinbarung) zur Kontrolle der Übertragung. Zum Abschluß
werden die Stopbits (High-Pegel) gesendet. Es können 1, 1½ oder 2 Stopbits
vereinbart werden. Anschließend beginnt diese Prozedur von vorne.
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Bits und Bytes
Um Spannung auf einem Pin einer Schnittstelle zu bekommen oder den Status
eines Pin zu lesen, muss man einzelne Bits setzen, löschen oder lesen. Es gibt
für keine Programmiersprache Anweisungen wie „setze Bit 3 des Bytes auf 1“. Wie ist
ein Byte aufgebaut? Ein Byte hat 8 Bits. So kann man 256 verschiedene Zahlen
darstellen. Jedes Bit entspricht einem bestimmten Wert im Byte je nach seiner
Stellung. Die Stellung im Byte wird von 0 bis 7 gezählt.
In der Digitalelektronik bezeichnet man diese kleinste Informationseinheit als
Bit. Ein Bit wird dadurch realisiert, dass an einer Leitung - ein Spannungswert
überschritten wird. Man spricht dann von high (H oder 1) - ein Spannungswert
unterschritten wird. Man spricht dann von low (L oder 0)
Beispiel:
Eine Folge von 8 Bit kann man zu einer Einheit, einem Byte zusammenfassen.
Zum Beispiel kann das Byte LHHLHLHL die Dualzahl 01101010 repräsentieren. Mit
einem Byte kann man 256 verschiedene Zustände darstellen: 00000000,
00000001, 00000010, .........., 11111111. Pro zusätzlichem Bit verdoppelt sich die
Anzahl der darstellbaren Zustände.
Löschen einzelner Bits
Einzelne Bits löschen wir, indem wir das erste Byte (das wir wieder aus einem PortRegister ausgelesen haben) mit einem Vergleichsbyte per AND verknüpfen. Bei dem
Vergleichsbyte müssen die zu löschenden Bits auf 0 stehen, der Rest auf 1.
Wir nehmen diesmal die Bits 0, 1 und 2. In Basic schreiben wir: ByteGelesen% =
INP(Adresse%) ByteNeu% = ByteGelesen% AND 248 OUT Adresse%, ByteNeu%
oder ganz kurz:
OUT Adresse%, INP(Adresse%) AND 248
Bit »
7
6
5
4
3
2
1
0
Summe
(Byte)
Wert
128
64
32
16
8
4
2
1
255
vom Port
gelesen
0
1
0
1
0
1
0
1
85 (beliebig)
Lesen einzelner Bits
AD-Wandler teilen uns die Ergebnisse ihrer Wandlungen in Form von Spannungen
mit, die auf Anforderung gesetzt werden oder eben nicht. Die Spannungen werden
an einen Pin gesendet, der mit einem Port-Eingang verbunden ist. Das müssen wir
„lesen“ und einzelne Bits auswerten. Wir können die folgenden Abläufe auch dazu
verwenden, einen Schalter mit einem Schnittstelleneingang zu verbinden und dessen
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Stellung auswerten. Das permanente Abfragen von solchen Zuständen nennt man
"polling".
Visual Basic Programm zum Testen der seriellen
Schnittstelle
Dieses Programm wurde während der Projektwoche in VB 6.0 entwickelt und dient
zum Ansteuern und Testen der seriellen Schnittstelle
Programm und Funktion:
Das Programm selbst ist in Visual Basic 6.0 geschrieben und dient zur
Kommunikation mit einem COM-Port. Mit dem Programm ist es möglich Signale zu
senden und zu empfangen. Es wurde entwickelt, um mit der Waage eine
Kommunikationsverbindung herzustellen, aufrecht zu erhalten und ein akustisches
Signal an den Benutzer auszugeben.
Projektteam
Nikola Batarilo
Informationen über Bits und Bytes, Lesen einzelner Bits, Löschen einzelner Bits und
Schnittstellenparameter gesammelt. Bildbearbeitung mit dem ImageComposer.
Gearbeitet mit FrontPage.
Gianina Feraru
Startseite mitgestaltet, Projektziele geschrieben, Einträge in unser Weblog zur
Projektdokumentation, Startseitenlogo gestaltet, Fotogalerie mitgestaltet.
Fiedler Michael
COMPort Sniffer 1.3 entwickelt, Dokumentation zu dem Programm und seinen
Funktionen, befasst mit Schnittstellen und deren Ansteuerung und Kommunikation.
Gerassimoff Christoph
Plakatgestaltung, Eintrag über Ziel und Beschreibung unseres Projekts .
Harald Heine
Internetrecherche zur Rezeptsuche, Eingeben der Rezepte in die Datenbank,
Bildsuche, Hilfe bei der Projektdokumentation.
Bernhard Hochrainer
Recherche über die serielle Schnittstelle und über die Wägezelle. Gearbeitet mit
FrontPage.
Lucas Kavka
Startseite gestaltet, Fotogalerie und Text dazu geschrieben, Einträge in der
Projektdokumentation, bei Projektzielen geholfen von Gianina Feraru, Startseitenlogo
mitgestaltete.
Werner Lueger
Suche der Rezepte, Rezeptverarbeitung, Bildsuche,
2 HTA
Automatisierte Waage
Projektwoche vom
16.2.-21.2.2004
Manuel Meißner
Mit Kollegen ein Visual Basic-Programm zum Testen der COM-Ports geschrieben
und verbessert. Im Internet einige Programme zum Kommunizieren mit der Waage
gesucht. Die Waage angesprochen und bedient. Projektpräsentation ausgearbeitet.
Damir Popovic
Informationen und Zusammenfassung über die serielle Schnittstelle allgemein, über
die Funktionsweise und über die Datenübertragung. Das Auswertegerät der Waage
zusammengefaßt und mit Front Page gearbeitet.
Herunterladen