LabVIEW: Messdatenquellen per LAN integrieren

Werbung
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
LabVIEW: Messdatenquellen per LAN integrieren
Der PC verdrängt in der Labor- und Prozessmesstechnik mehr und mehr das
klassische Messinstrument. PC-basierte Instrumente ermöglichen die Datenerfassung, Datenpräsentation und Auswertung auf Basis bekannter Benutzeroberflächen.
Typische Beispiele sind Messtechnikanwendungen für Windows-PCs wie
LabVIEW, VEE oder DASYLab. Diese Softwarepakete beinhalten umfangreiche
Funktionen für die PC-basierte Datenerfassung, -analyse und Datenpräsentation.
In der Regel gehört auch eine Entwicklungsumgebung zum Lieferumfang. Sie gestattet dem Anwender u.a. die Konstruktion eigener Instrumente auf Basis der
vorgefertigten Module.
Für die Anbindung der erforderlichen Messdatenquellen werden in erster Linie die
RS232- und USB-Schnittstellen eines PC genutzt. Teilweise werden auch sehr
spezielle Erweiterungs-Bussysteme als Datenquellen unterstützt. Zwei typische
Beispiele sind VXI (VME Bus for Instrumentation) und PXI (PCI Extensions for
Instrumentation). Sie ermöglichen die Integration sehr schneller Datenquellen.
Die Messdatenquellen müssen sich in der Regel in unmittelbarer Nähe des PCs
SSV EMBEDDED SYSTEMS
1
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
befinden, da die zuvor angesprochenen Schnittstellen primär für die Datenübertragung über kurze Distanzen geeignet sind.
Derzeit noch unzureichend genutzt wird die Ethernet-LAN-Schnittstelle eines
PCs. Dabei bietet gerade dieses Interface besonders vielfältige Möglichkeiten im
Hinblick auf dezentrale Messtechnikanwendungen mit PC-basierten Instrumenten.
Diese Applikationsschrift zu den beiden Linux Device Servern IGW/800 und
IGW/900 liefert zunächst einmal einen kurzen Überblick zu den Grundgedanken
der PC-basierten Messtechnik per LabVIEW – einer weit verbreiteten MSRSoftware der Firma National Instruments. Dann werden die wichtigsten Aspekte
eines Ethernet-LANs aus MSR-Sicht erläutert. Dabei kommt auch das von Haus
aus nicht vorhandene Ethernet-Echtzeitverhalten zur Sprache. In diesem Zusammenhang werden weiter hinten auch aktuelle Entwicklungen aus dem
Echtzeit-Ethernet-Bereich und die daraus resultierenden Probleme angesprochen.
Danach wird an Hand eines konkreten Beispiels eine dezentrale Temperaturmessung vorgestellt. Das PC-basierte Instrument und die Messdatenquelle sind
per Ethernet miteinander verbunden. Dieser Beitrag beschreibt auch den
Zusatznutzen einer solchen Lösung: durch die Eigenintelligenz eines netzwerkfähigen Temperatursensor-Subsystems werden nicht nur Messdaten an einen PC
geliefert. Es können auch Temperaturen hinsichtlich vorgegebener Grenzwerte
überwacht werden. Wird ein solcher Grenzwert überschritten, erfolgt der
automatische Versand einer E-Mail als Alarmmeldung.
LabVIEW für die PC-basierte Instrumentierung
National Instruments LabVIEW wird sowohl in klassischen MSR-Anwendungen
als auch für sehr komplexe Aufgaben im Bereich der Prozess- und Fertigungsautomatisierung eingesetzt.
LabVIEW ist eine relativ offene Software-Plattform. Es stehen von Haus aus zahlreiche Softwarekomponenten zur Unterstützung der in der Messtechnik geläufigen
I/O-Schnittstellen zur Verfügung. Besonders für RS232/RS422/RS485, VXI und
PXI werden leistungsfähige Integrationshilfen angeboten. Aber auch serielle Verbindungen zu Feldbussystemen wie CAN, Profibus, Interbus u.a. sind mittels
LabVIEW möglich.
LabVIEW ermöglicht die PC-basierte virtuelle Instrumentierung. Sie gestattet den
Ersatz konventioneller Messgeräte durch PC-zentrierte Lösungen. Dieser Wandel
vom herstellerdefinierten zum anwenderdefinierten Messsystem hat sich in den
letzten Jahren in verschiedenen Anwendungsbereichen mit einer beachtlichen
Geschwindigkeit verbreitet. Von großer Bedeutung für den Praxiseinsatz ist, dass
über die Benutzeroberfläche (MMI = Mensch-Maschine-Interface) einer PCMSR-Software auch sehr komplexe Anwendungen mit vielen einzelnen Messkomponenten als ein in sich geschlossenes Gesamtsystem erscheinen. Das
vereinfacht den Einsatz und die Handhabung sehr anspruchsvoller Ausgaben.
Der elementare LabVIEW-Grundbaustein ist das VI (virtuelles Instrument). Es
bildet aus der Sicht des Anwenders in erster Linie die Benutzerschnittstelle. Unter
SSV EMBEDDED SYSTEMS
2
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
der Oberfläche beinhaltet ein solches VI aber auch ein (mehr oder weniger
komplexes) ausführbares Programm, welches die eigentliche MSR-Anwendung
implementiert.
Ein typisches virtuelles Instrument (VI) erfüllt unter LabVIEW drei Teilaufgaben:
1. Datenerfassung, 2. Datenanalyse und 3. Datenpräsentation. Abbildung 1
liefert ein Beispiel für ein typisches LabVIEW-VI unter Microsoft-Windows.
Abbildung 1: Oberfläche eines LabVIEW-VI unter Microsoft-Windows
Die Datenerfassung sorgt dafür, dass die Rohdaten auf dem PC in digitalisierter
Form zur Verfügung stehen. Da es sich bei diesen Rohdaten häufig um analoge
Spannungen und Ströme sowie andere – nicht elektrische Größen (Sensordaten) in
analoger Form – handelt, sind in einem PC für den LabVIEW-Einsatz spezielle
A/D-Wandler-Karten erforderlich.
Die LabVIEW-Datenanalyse folgt in der Regel auf eine Datenerfassung. Sie
beinhaltet die Formatierung, Skalierung, Statistik sowie weitere anspruchsvolle
mathematische Analysealgorithmen. Aber auch eine eventuell erforderlich Signalverarbeitung ist im Rahmen der Datenanalyse möglich.
Die Datenpräsentation erfolgt in erster Linie durch die Benutzeroberfläche des
VIs. Das virtuelle Instrument selbst besteht bei detaillierter Betrachtung wiederum
aus einem Frontpanel als sichtbarem Anteil, sowie aus den – im normalen
Betrieb – unsichtbaren Bestandteilen Blockdiagramm und Anschlussblock.
Das VI-Frontpanel bildet die interaktive Benutzerschnittstelle (MMI) zwischen
der eigentlichen Anwendung und dem Bediener. Es besteht aus verschiedenen
grafischen Steuer- und Bedienelementen (Frontpanelobjekte) wie zum Beispiel
SSV EMBEDDED SYSTEMS
3
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
Drehknöpfen, unterschiedlichen Schaltern, Drucktasten, Eingabefeldern u.v.a.
Weitere wichtige Frontpanelobjekte sind Anzeigen (Graphen, LEDs usw.). Über
sie erfolgt die eigentliche Datenpräsentation auf der Benutzeroberfläche.
Ein LabVIEW-Blockdiagramm bildet das tatsächlich ausführbare (Steuer-) Programm hinter dem VI-Frontpanel. Blockdiagramme werden im Rahmen der
LabVIEW-Programmierung in einer speziellen grafischen Programmiersprache
erstellt. Die Art und Weise der symbolbasierten strukturierten LabVIEW-VIBlockdiagrammprogrammierung ermöglicht eine recht hohe Abstraktionsebene
mit großer Nähe zur eigentlichen MSR-Anwendung. Vereinfacht dargestellt
erfolgt das Erstellen bzw. Programmieren eines LabVIEW-Blockdiagramms per
interaktiver visueller Verdrahtung vorgefertigter Symbole. Durch die virtuellen
Drähte zwischen den einzelnen Blockdiagrammsymbolen fließen bei der
Ausführung des VIs die (Mess-) Daten, repräsentiert durch bestimmte Zahlenwerte. Die primären Bestandteile eines Blockdiagramms sind vordefinierte
Funktionen, Konstanten sowie unterschiedliche Ablaufstrukturen (Verzweigungen, Fallunterscheidungen, Schleifen). Auch andere untergeordnete VIs
können in ein Blockdiagramm eingefügt werden. Die Frontpanelobjekte besitzen
innerhalb eines Blockdiagramms korrespondierende Anschlüsse. Über diese
werden sie mit anderen Blockdiagramm-Bestandteilen verbunden. Die Ausführung eines LabVIEW-Blockdiagramms erfolgt Flow Driven, also nach den
Regeln der Datenflusstheorie.
Der Anschlussblock eines LabVIEW-VIs ermöglicht die Integration des VIs als
untergeordnete Funktion in das Blockdiagramm eines anderen VIs. Man spricht in
diesem Zusammenhang von einem SubVI, funktional vergleichbar mit dem
Unterprogramm in einer prozeduralen Programmiersprache. Jedem Anschlussblock ist in der Regel auch ein Symbol zugeordnet. Der VI-Anschlussblock
beschreibt weiterhin, wie die Daten aus anderen Blockdiagrammen eingespeist,
bzw. an andere VIs weitergeleitet werden.
LabVIEW gilt insgesamt als hochentwickelte 4GL (Fourth Generation Language),
also als Programmiersprache der vierten Generation. Solche Sprachen bieten eine
sehr hohe Abstraktionsebene für die Problemlösung. Sie ermöglichen weiterhin
eine sehr schnelle Anwendungsentwicklung.
Ethernet als Basis der dezentralen Messtechnik
Für die erforderlichen Verbindungen zu den I/O-Schnittstellen einer Messtechnikanwendung werden in erster Linie USB, RS232/RS422/RS485, VXI und PXI
benutzt. Dadurch entstehen MSR-Applikationen, in welchen der LabVIEW-PC
und die MSR-Datenquellen in unmittelbarer Nähe zueinander angeordnet sind.
Grundsätzlich unterstützt LabVIEW aber auch Feldbussysteme mit mittlerer
Ausdehnung sowie LAN-Integrationen. Über die fortschreitende unternehmensweite, durchgängige Vernetzung auf Basis von Ethernet und TCP/IP eröffnen sich
aber auch für den LabVIEW-Einsatz vielfältige neue Anwendungsmöglichkeiten
mit vollständig dezentraler Struktur. Leider erfordern solche MSR-Applikationen
ein umfangreiches Detailwissen über Netzwerk- und Protokolltechnologien.
SSV EMBEDDED SYSTEMS
4
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
Weiterhin reicht die 4GL-Programmierung für LabVIEW alleine nicht aus, um
eine dezentrale Anwendung per Ethernet und TCP/IP zu erstellen. Diese Lücke
versucht der LabVIEW Integration Kit LAN (LIK-LAN) für die beiden Linux
Device Server IGW/800 und IGW/900 zu schließen.
Ethernet wurde ursprünglich für lokale Netzwerke (LANs = Local Area
Networks) in der Büroumgebung entwickelt. Die Idee für diese Form der
Vernetzung über ein gemeinsam benutztes Übertragungsmedium hatte im Jahre
1973 Dr. Robert Metcalfe, damals ein Mitarbeiter der US-Firma XEROX.
Abbildung 2 zeigt die ursprüngliche Ideenskizze von Dr. Metcalfe. Bereits 1976
veröffentlicht Dr. Metcalfe die erste Beschreibung zu Ethernet. Der Name
Ethernet basiert im Übrigen auf der völlig falschen Annahme der Physiker von
1887, dass der gesamte Weltraum mit einem „Lichtäther“ gefüllt sei, in welchem
sich elektromagnetische Wellen problemlos ausbreiten können.
Abbildung 2: Ethernet-Ideenskizze von Dr. Metcalfe
Die innovative Idee von Dr. Metcalfe wurde von den Firmen DEC, Intel und
XEROX aufgegriffen und zu einem vermarktungsfähigen Produktkonzept weiterentwickelt. Die Arbeitsgemeinschaft aus diesen drei Firmen nannte sich DIX
(DEC, Intel, XEROX). 1980 wurden die ersten DIX-Ethernet-Spezifikationen
veröffentlicht. Kurz danach kamen in den USA die ersten IBM-PCs auf den
Markt. Der Rest der Geschichte ist bekannt. Heute kann man praktisch keinen PC
mehr kaufen, der nicht bereits ab Werk mit einem Ethernet-LAN-Interface
ausgestattet ist. Ethernet wurde durch den PC zu einem etablierten Standard.
In der Zwischenzeit hat das US-Standardinstitute IEEE (Institute of Electrical and
Electronics Engineers) die Pflege und Weiterentwicklung der gesamten EthernetSpezifikationen übernommen. Aus den DIX-Arbeiten ist der Standard IEEE 802.3
geworden. Diese Ursprungsform des Ethernet-Standards war für lokale Netzwerke
(LANs) mit 10 Mbps gedacht. Zahlreiche weitere Arbeiten, wie IEEE 802.3u für
das 100-Mbps-Fast-Ethernet, 802.3z/802.3ab für 1.000-Mbps-Gigabit-Ethernet
und 802.3ae für zukünftige 10-Gigabit-Ethernet-Netzwerke dokumentieren die
kontinuierliche Weiterentwicklung [1].
Ethernet ist von Haus aus ein logischer Bus. Die Daten des jeweils sendenden
Rechners in einem Netzwerk werden von allen anderen Rechnern gleichzeitig
SSV EMBEDDED SYSTEMS
5
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
empfangen. Der logische Bus war in der Urform des Ethernets auch als
physikalischer Bus implementiert. Dabei wurde ein Koaxialkabel an allen
Rechnern vorbeigeführt. Über ein spezielles Verbindungsstück (zum Beispiel das
BNC-T-Stück bei der 10Base2-Verkabelung) war der jeweilige Rechner mit dem
Koaxialkabel verbunden.
Abbildung 3: Sternförmige Vernetzung in einem Ethernet-LAN
Das busförmige Kabel diente als gemeinsam benutztes Übertragungsmedium
gemäß der Idee von Dr. Metcalfe. Um den gleichzeitigen Zugriff mehrerer
Rechner auf das Medium zu koordinieren, ist ein Verfahren zur Zugriffssteuerung
notwendig (siehe hierzu: CSMA/CD-Zugriffsverfahren). Dieses muss auch die
Bandbreite unter den einzelnen Teilnehmern eines Netzwerks aufteilen.
Die Vorteile der busförmigen Verkabelung waren die geringen Kosten und die
einfache Erweiterbarkeit. Die Nachteile waren die sehr große Fehleranfälligkeit
(zum Beispiel wegen fehlender Abschlusswiderstände bei der Koaxialverkabelung) und die kaum mögliche Fehlerdiagnose im Problemfall. Auf Grund
der Nachteile hat die busförmige Ethernet-Verkabelung mittlerweile ausgedient
und wird für neue Installationen kaum noch verwendet. Gängig sind inzwischen
sternförmige Topologien wie in der Abbildung 3.
Der Stern ist eine Punkt-zu-Punkt-Verbindung zwischen einem Rechner (R) und
einem speziellen Sternkoppler bzw. Sternverteiler (S). Somit steht praktisch
jedem Rechner die volle Bandbreite zum Sternkoppler zur Verfügung. Sogar die
Vollduplexübertragung ist bei sternförmiger Vernetzung mit einem Sternkoppler
grundsätzlich möglich, wenn – wie beim 10- und 100-Mbps-Ethernet – zwei
Adernpaare benutzt werden. Alle Rechner können in einem solchen Netzwerk
praktisch gleichzeitig senden. Lediglich die Übertragung von Echtzeitdaten ist auf
Grund des Ethernet-Übertragungsverfahrens von Haus aus nicht möglich.
TCP/IP für den Messdatentransport im Ethernet-LAN
Für die reibungslose Kommunikation und den betriebssystemunabhängigen
Datenaustausch zwischen verschiedenen Rechnersystemen in einem EthernetSSV EMBEDDED SYSTEMS
6
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
LAN werden sehr präzise Spezifikationen benötigt. Solche Regelwerke werden in
der Datenkommunikation als Protokolle bezeichnet. Eine Sammlung bestimmter
Protokolle wird als Protokollstack betitelt. Kennen zwei Rechner in einem
Netzwerk die gleichen Protokollregeln, so ist es sehr wahrscheinlich, dass auch
der Datenaustausch zwischen beiden möglich ist. Der Begriff Protokoll ist
eigentlich in der Diplomatie zu Hause. Dort legt ein Protokoll bei einem
Zusammentreffen von Personen aus völlig unterschiedlichen Kulturkreisen fest,
welche Handlungen in welcher Reihenfolge (wie) vorgenommen werden. Die
Beschreibung ist sinngemäß auf die Datenkommunikation übertragbar. Dort regelt
ein Kommunikationsprotokoll den Ablauf und die Details der „Handlungen“
zwischen den Kommunikationspartnern.
Insgesamt spezifiziert ein Protokoll in der Datenkommunikation bis ins letzte
Detail, wie die Daten übertragen werden (Datenformate, Zeichensätze usw.).
Dazu gehören auch die Steuerung des Verbindungsauf- und –abbaus, die
Flusskontrolle der gesamten Datenübertragung sowie die Fehlererkennung und
Fehlerkorrektur. In Netzwerken wird auch die Adressierung der Kommunikationspartner durch ein Protokoll geregelt.
Abbildung 4: IP transportiert TCP- oder UDP-Pakete im Ethernet-LAN
Jedes Protokoll definiert in der Regel auch ein Datenpaket mit einem bestimmten
Format. Solche Pakete bestehen im Allgemeinen aus einem Nutzdaten- und einem
Kopfdatenbereich (Header). Im Header werden die erforderlichen Steuer- und
Adressinformationen des jeweiligen Protokolls übertragen [2].
Ein TCP/IP-Protokollstack ist eine Sammlung ganz bestimmter Kommunikationsprotokolle. Im Grossen und Ganzen besteht dieser Stack aus drei Transportprotokollen, einigen Hilfsprotokollen sowie einer inzwischen nahezu unübersichtlichen Vielfalt von Anwendungsprotokollen. Zwei Protokolle (TCP und IP) bilden
die Basis für den Namen des gesamten Protokollstacks. Die Protokolle TCP
(Transmission Control Protocol), UDP (User Datagram Protocol) sowie IP
(Internet Protocol) können im Zusammenhang mit LabVIEW für die
Kommunikation zwischen PC-basierten Instrumenten und weit entfernten
dezentralen MSR-Datenquellen über ein Ethernet-LAN eingesetzt werden.
Abbildung 4 illustriert das Zusammenspiel der Protokolle TCP, UDP und IP per
Ethernet. Die eigentlichen MSR-Daten werden in ein TCP- oder UDP-Paket
eingebettet. Dieses wiederum wird im Nutzdatenbereich eines IP-Pakets abgelegt.
SSV EMBEDDED SYSTEMS
7
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
Die tatsächliche physikalische Datenübertragung über ein Ethernet-LAN-Kabel
erfolgt allerdings durch das Ethernet-Paket selbst.
Funktion
Aufgabe
accept
Nimmt eine neue Verbindung auf der Serverseite entgegen.
Verknüpft einen Socket mit einer IP-Adresse und einer
bind
Portnummer.
close
Schließt einen Socket.
connect
Erzeugt eine Verbindung zwischen zwei Sockets.
Name für einen Rechner ermitteln, von dem die IP-Adresse
gethostbyaddr
vorliegt.
IP-Adresse für einen Rechner ermitteln, von dem der Name
gethostbyname
vorliegt.
getservbyname Portnummer für einen bestimmten Dienst ermitteln.
Konvertiere 32-Bit-Wert (Long) von Host to Network Byte
htonl
Order.
Konvertiere 16-Bit-Wert (Short) von Host to Network Byte
htons
Order.
inet_addr
Konvertiere IP-Adresse von Zeichenfolge nach 32-Bit-Wert.
inet_ntoa
Konvertiere IP-Adresse von 32-Bit-Wert nach Zeichenfolge.
listen
Warte auf einen Verbindungsaufbau.
Konvertiere 32-Bit-Wert (Long) von Network to Host Byte
ntohl
Order.
Konvertiere 16-Bit-Wert (Short) von Network to Host Byte
ntohs
Order.
recv
Daten über eine bestehende Verbindung empfangen.
recvfrom
Daten von einer bestimmten IP-Adresse empfangen.
select
Statusprüfung.
send
Daten über eine bestehende Verbindung senden.
sendto
Daten an eine bestimmte IP-Adresse senden.
shutdown
Verbindung zum Kommunikationspartner beenden.
socket
Erzeugt einen neuen Socket.
Tabelle 1: Übersicht der wichtigsten Funktionen des Socketinterface
TCP/IP-Protokollstacks besitzen eine mehr oder weniger komplexe Programmierschnittstelle. Diese Schnittstelle wird als Socketinterface bezeichnet. Tabelle 1
liefert eine Übersicht der wichtigsten Funktionen. Das Socketinterface ermöglicht
den direkten Zugriff auf die Protokolle TCP und UDP. Bei einigen TCP/IPImplementierungen kann auch direkt auf IP zugegriffen werden. Über das
Socketinterface können beliebige Daten zwischen zwei Kommunikationspartnern
per Ethernet und TCP/IP übertragen werden. Dabei ist allerdings zu beachten,
dass die einzelnen Funktionen des Socketinterface ein Client/Server-Verhalten
voraussetzen. Das bedeutet, ein Kommunikationspartner arbeitet als Server, der
SSV EMBEDDED SYSTEMS
8
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
andere als Client. Der Server ist in der Regel der passive Partner in einer
Beziehung. Er wartet auf den Verbindungsaufbau durch einen Client, um dann
den Datenübertragungswünschen des Clients zu entsprechen.
Innerhalb eines LabVIEW-Blockdiagramms besteht die Möglichkeit auf das
Socketinterface des PC-Betriebssystems zuzugreifen. Dadurch können Daten aus
einem TCP- oder UDP-Paket in das jeweilige VI importiert werden. Das Ausnutzen dieser LabVIEW-Eigenschaft gestattet verteilte MSR-Anwendungen auf
Basis von Ethernet und TCP/IP.
Temperaturmessung per Ethernet und TCP/IP
Der LabVIEW Integration Kit LAN (LIK-LAN) überträgt die Möglichkeiten von
Ethernet, TCP/IP und dem zuvor vorgestellten Socketinterface, auf eine in der
Praxis einsetzbare LabVIEW-Anwendung. In dieser dezentralen MSR-Anwendung ist ein Linux Device Server IGW/800 oder IGW/900 [3] mit bis zu vier
verschiedenen Temperatursensoren verbunden. Die Sensordaten werden vom
Linux Device Server per Ethernet periodisch an ein VI weitergeleitet und dort
grafisch dargestellt. Die Abbildung 5 illustriert den Zusammenhang.
Abbildung 5: Kopplung einer Messdatenquelle mit einem VI
LabVIEW arbeitet in diesem Beispiel als TCP-Client, der Linux Device Server
IGW/800 oder IGW/900 mit dem Temperatursensor als TCP-Server. Nach dem
Start des VIs erzeugt dieses über das PC-Socketinterface eine TCP-Verbindung
zum Linux Device Server. Dieser liefert dann die aktuellen Temperaturwerte an
das VI auf dem PC.
Der rechte Teil in der Abbildung 6 illustriert das Kommunikationsverhalten des
TCP-Serverprogramms auf dem Linux Device Server. Sofort nach dem Anlegen
der IGW/800- bzw. IGW/900-Versorgungsspannung wird mit Hilfe der Socketfunktionen socket, bind und listen (siehe Tabelle 1) ein TCP-Serversocket erzeugt.
Das LabVIEW-VI benutzt für den eigentlichen Verbindungsaufbau die Socketfunktion connect (linker Teil der Abbildung 6). Der Server bestätigt die Verbindung mittels accept. Danach besteht eine vollständig transparente Übertragungsstrecke zwischen TCP-Server (Linux Device Server IGW/800 oder
SSV EMBEDDED SYSTEMS
9
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
IGW/900) und TCP-Client (LabVIEW-VI auf dem PC). Über diese können beide
Kommunikationspartner mit Hilfe der Funktionen send und recv beliebige Daten
übertragen. Wird das VI beendet, kann es über die Funktion close die Verbindung
beenden.
Abbildung 6: Client/Server-Kommunikation per TCP und Socketinterface
Beim praktischen Einsatz dieser Lösung in einem Firmennetzwerk ist zu
beachten, dass für die Datenübertragung per TCP eine bestimmte Portnummer
(Adresselement der TCP- und UDP-Protokolle eines TCP/IP-Protokollstacks)
benutzt wird. Typischerweise findet man in einem Firmen-LAN verschiedene
Firewalls, die den gesamten Datenverkehr filtern und überwachen. Sämtlichen
Ethernet-LAN-Firewalls zwischen PC mit dem LabVIEW-VI und Linux Device
Server muss die zum Einsatz kommende TCP-Portnummer bekannt sein. Die zu
benutzende Portnummer kann für das VI und den TCP-Server innerhalb
bestimmter Grenzen nach Bedarf konfiguriert werden. Unter Umständen muss der
zuständige LAN-Administrator kontaktiert werden.
Dezentrale Datenquellen automatisch überwachen
Der Rechnerkern der Linux Device Server IGW/800 und IGW/900 wird durch
einen Freescale (früher Motorola) 32-bit-MCF5282 gebildet. Diese MCU
(MicroController Unit) basiert auf einem ColdFire-CPU-Core der Version 2 (V2),
der im Laufe der Jahre über verschiedene Zwischenschritte aus der M68000Architektur desselben Herstellers entstanden. Der ColdFire-V2-CPU-Core des
MCF5282 wird in den IGW/800 und IGW/900 mit einem Prozessortakt von 66
MHz betrieben. Dabei ergibt sich eine Rechenleistung von ungefähr 63 Dhrystone
2.1 MIPS – also im Idealfall bis zu 63 Millionen Befehle je Sekunde. Der CPUSSV EMBEDDED SYSTEMS
10
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
Core (Prozessorkern) des MCF5282 verfügt über einen internen 2K-Cache für
Befehle (I-Cache) und Daten (D-Cache) zur Leistungssteigerung. Die Aufteilung
der Speichertiefe von insgesamt 2K in die I- und D-Cache-Bereiche ist über
spezielle Register konfigurierbar.
Um ein Linux als Betriebssystem ablaufen zu lassen, ist neben dem 32-bitMikrocontroller auch der entsprechende Speicher erforderlich. Dieser wird im
IGW/800 und IGW/900 durch zwei hochintegrierte Schaltkreise gebildet. Einer
davon ist ein 16-MByte-SDRAM (Synchrones Dynamisches RAM =
Speicherbaustein, der laufend aufgefrischt werden muss, damit die gespeicherten
Informationen nicht verloren gehen). Er dient als Arbeitsspeicher. Der andere
Baustein ist ein sogenannter Flash, also ein nichtflüchtiger Halbleiterspeicher, der
sektorweise gelöscht und neu programmiert werden kann – vergleichbar mit der
Speicherkarte einer digitalen Kamera. Dieser Flash besitzt eine Speicherkapazität
von 8 MBytes.
Im Flash-Speicherbaustein eines IGW/800 und IGW/900 Linux Device Server ist
der Hardware-Initialisierungscode, ein Linux-Bootloader zum Start des
Betriebssystems, der Linux-Kernel (Betriebssystemkern) selbst, sowie das für
Linux obligatorische Root-Dateisystem abgelegt. Weiterhin ist noch ein
sogenannter Flash-Loader vorhanden, der den Austausch des Bootloaders, des
Linux-Kernels und des Root-Dateisystems über eine serielle RS232-Schnittstelle
oder per Ethernet ermöglicht. Insgesamt werden im Flash noch nicht einmal 2
MByte Speicherkapazität vom Betriebssystem nebst Zubehör benötigt. Linux ist
sehr kompakt, ursächlich dafür ist seine Skalierbarkeit. Der restliche FlashSpeicherplatz steht zur Laufzeit als nicht flüchtiges Schreib/Lese-Laufwerk (SSD
= Solid-State Disk) zur Verfügung. Das SDRAM dient als Arbeitsspeicher und als
RAM-Disk für das Root-Dateisystem.
Durch den leistungsfähigen 32-bit-Mikrocontroller und das Linux-Betriebssystem
kann ein IGW/800 bzw. IGW/900 Linux Device Server deutlich mehr Aufgaben
übernehmen, als die Daten aus einem Temperatursensor auszulesen und per
Ethernet-basierter TCP/IP-Verbindung an ein LabVIEW-VI zu liefern. So kann –
neben dem TCP-Server für die LabVIEW-Kommunikation – zusätzlich auch noch
ein SMTP-Client laufen. Linux ist schließlich ein Multitasking-Betriebssystem.
Über SMTP (Simple Mail Transfer Protocol = TCP/IP-Protokoll für den E-MailVersand) ist dann der automatische E-Mail-Versand möglich. Erreicht zum
Beispiel die Temperatur einen gewissen Grenzwert, könnte über diese Eigenschaft
ein Systembetreuer alarmiert werden.
Selbstverständlich ist auch eine Langzeit-Datenaufzeichnung (Data Logging)
möglich. Diese Daten können auf Wunsch als E-Mail-Anhang ebenfalls mit Hilfe
der TCP/IP-Protokolle verschickt werden.
Ausblick auf weitere Einsatzmöglichkeiten
Ein großes Handikap für den Ethernet-Einsatz in LabVIEW-basierten MSRAnwendungen ist zur Zeit sicherlich die fehlende Echtzeitfähigkeit. Zahlreiche
Aufgabenstellungen in der MSR-Welt erfordern aber ein echtzeitfähiges VerSSV EMBEDDED SYSTEMS
11
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
halten. Aus diesem Grund ist Ethernet als Übertragungsmedium zur Lösung vieler
MSR-Probleme gegenwärtig nur bedingt geeignet. Die Ursache hierfür ist das
Ethernet-CSMA/CD-Zugriffsverfahren (CSMA/CD = Carrier Sense Multiple
Access / Collision Detection). Bei diesem Verfahren sind alle Teilnehmer in
einem Ethernet-LAN gleichberechtigt. Es gibt keinen Bus-Master, der den
anderen Teilnehmern eine Zugriffserlaubnis für die Datenübertragung erteilt und
so den Zugriff auf das gemeinsame Medium kontrolliert. Hat ein LANTeilnehmer Daten die er versenden möchte, so prüft er zunächst, ob das
Übertragungsmedium (das Ethernet-LAN-Kabel) frei ist (Carrier Sense-Phase). Ist
das nicht der Fall, wird gewartet, bis der andere Teilnehmer seine
Datenübertragung abgeschlossen hat. Erkennt der prüfende – und ggf. wartende –
Teilnehmer das unbenutzte Übertragungsmedium, beginnt er die jeweiligen Daten
zu versenden. Dabei wird sofort nach dem Sendebeginn für eine bestimmte Zeit
(Collision Window) überprüft, ob es zu einer Kollision kommt, weil gleichzeitig
eine weitere Station mit der Datenübertragung begonnen hat. Im Fall einer
solchen Kollision wird die Übertragung sofort abgebrochen, um eine zufällige
Wartezeit verstreichen zu lassen. Dann wiederholt sich der Übertragungsvorgang
mit dem Einleiten einer neuen Carrier Sense-Phase.
Abbildung 7: Deterministisches Zeitverhalten
Durch den CSMA/CD-Buszugriff ist nicht vorhersehbar, wann genau ein
Ethernet-Datenpaket verschickt wird. Ethernet besitzt durch das standardmäßige
CSMA/CD-Buszugriffsverfahren kein deterministisches Zeitverhalten, wie es
aber für viele dezentrale MSR-Aufgaben unbedingt erforderlich wäre. Die
Abbildung 7 illustriert die Zusammenhänge bezüglich eines deterministischen
Zeitverhaltens: wenn zum Zeitpunkt t1 ein Ereignis eintritt, muss unter allen
Umständen nach dem Verstreichen einer Latenzzeit spätestens zum Zeitpunkt t2
die Reaktion erfolgen. Die Latenzzeit eines echtzeitfähigen Systems ist stets eine
bekannte Größe. Sie wird in jedem Fall – unabhängig von der Systemauslastung –
eingehalten. In der Praxis ist jedoch jede Latenzzeit mit einem Jitter (Varianz)
behaftet. Je geringer ein solcher Jitter ist, desto hochwertiger ist ein
Echtzeitsystem.
Es gibt in der MSR-Welt in der letzten Zeit zahlreiche Bestrebungen, das Ethernet
als Ersatz für echtzeitfähige Feldbussysteme zu benutzen. Die Ursachen hierfür
sind die relativ geringen Übertragungsgeschwindigkeiten der vorhandenen
Feldbusse – im Vergleich zum 100 Mbps-Ethernet – und die Tatsache, dass
Ethernet-Verkabelung in vielen industriellen Umgebungen bereits vorhanden ist
(ein Kabel für verschiedene Aufgaben). Das einzige zu lösende Problem ist das
fehlende Echtzeitverhalten in Ethernet-LANs. Verschiedene Anbieter und
Forschungseinrichtungen haben zwei völlig unterschiedliche Ansätze als Lösung
SSV EMBEDDED SYSTEMS
12
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
erarbeitet: 1. die Uhrensynchronisation für Zeitstempel im Zusammenhang mit der
Priorisierung bei der Übertragung von Ethernet-Datenpakten und 2. den Ersatz
des klassischen CSMA/CD-Buszugriffsverfahren durch ein Zeitschlitzverfahren
(TDMA). Beide Verfahren werden in Zukunft sicherlich sogar die Integration von
Echtzeitdatenquellen in LabVIEW-VIs per Ethernet und TCP/IP ermöglichen.
Fazit
Die direkte Übernahme von TCP/IP-Daten in ein LabVIEW-VI-Blockdiagramm
ermöglicht verteilte MSR-Anwendung mit großer räumlicher Ausdehnung. Die
für den Datentransport benutzten TCP/IP-Protokolle sind grundsätzlich nicht an
das Ethernet gebunden. Sie kommen auch im weltweiten Internet zum Einsatz.
Dadurch ist die hier beschriebene Lösung nicht nur in einem lokalen EthernetLAN, sondern – ohne jede Änderung – auch im weltweiten Internet einsetzbar.
Der LabVIEW Integration Kit LAN (LIK-LAN) benutzt als Messgröße die Umgebungstemperatur. Die Bausteine dieses Kits lassen sich aber sehr leicht an
andere elektrische oder nicht elektrische Größen (Sensordaten) anpassen. Die
Kommunikation per TCP/IP bleibt dabei unverändert.
Die TCP/IP-Kommunikations- und Multitaskingfähigkeit des IGW/800- bzw.
IGW/900-Linux-Betriebssystems eröffnet zahlreiche weitere Anwendungsmöglichkeiten. Über die Grenzwertüberwachung mit E-Mail-Alarmierung sowie ein
optionales Data Logging wurden zwei Beispiele vorgestellt.
SSV EMBEDDED SYSTEMS
13
Linux Device Server IGW/800 und IGW/900: Anwendungshinweise
Abbildungen
Abbildung 1: Oberfläche eines LabVIEW-VI unter Microsoft-Windows
Abbildung 2: Ethernet-Ideenskizze von Dr. Metcalfe
Abbildung 3: Sternförmige Vernetzung in einem Ethernet-LAN
Abbildung 4: IP transportiert TCP- oder UDP-Pakete im Ethernet-LAN
Abbildung 5: Kopplung einer Messdatenquelle mit einem VI
Abbildung 6: Client/Server-Kommunikation per TCP und Socketinterface
Abbildung 7: Deterministisches Zeitverhalten
Quellenangaben
[1] Walter: MSR mit ARM- Mikrocontrollern. Franzis-Verlag 2004.
[2] Walter: Embedded Internet in der Industrieautomation. Hüthig-Verlag 2004.
[3] Website zu den Linux Device Servern: www.ssv-comm.de
Kontakt
SSV Embedded Systems
Heisterbergallee 72
D-30453 Hannover
Tel. +49-(0)511-40000-0
Fax. +49-(0)511-40000-40
Email: [email protected]
Web: www.ssv-embedded.de
Web: www.ssv-comm.de
Web: www.dilnetpc.com
Hinweise zu diesem Dokument (LabVIEW-AN1.Doc)
Revision
Date
1.00
28.01.2005
Name
Erste Version erstellt
KDW
Dieses Dokument ist nur für die interne Verwendung bestimmt. Der Inhalt
dieses Dokuments kann sich jederzeit ohne Ankündigung ändern. Es wird
keine Garantie für die Richtigkeit der Angaben übernommen. Copyright ©
SSV EMBEDDED SYSTEMS 2005. Alle Rechte vorbehalten.
Einige in der dieser Beschreibung erwähnte Produkt- und Firmennamen
sind möglicherweise die Warenzeichen der jeweiligen Besitzer.
SSV EMBEDDED SYSTEMS
14
Herunterladen