Ea Elektro Automatik EA Elektro-Automatik 33100212 EA-IF-U1 USB-Interface 33100212 用户手册

产品代码
33100212
下载
页码 86
3
© 008, Elektro-Automatik GmbH & Co. KG 
Irrtümer und Änderungen vorbehalten
DE
Programmierung
9. Kommunikation ohne Labview
9.1  Grundlegendes
Im  Folgenden  wird  auf  den Aufbau  der Telegramme,  die 
Abhängigkeiten  der  Kommunikation  vom  Zustand  des  zu 
steuernden Gerätes und Probleme mit der Kommunikation 
eingegangen, ohne detailliert zu erläutern, wie z. B. bei USB 
der USB-Treiber anzusprechen ist bzw. wie eine komplette 
CAN-Nachricht gebildet wird. Dies ist vom Anwender und 
abhängig von der Einsatzsituation unserer Geräte selbst in 
Erfahrung zu bringen.
9.1.1  Hinweis zum USB-Treiber
Auf der beiliegenden CD befindet sich im Ordner \manuals\
other\ftdi ein PDF, daß die Funktionen zum Ansprechen des 
Treibers beschreibt. Generell gilt, daß ein Gerät (in dem Fall 
die USB-Hardware) zuerst zu öffnen ist (FT_Open o.ä.), dann 
zu konfigurieren (FT_SetBaudRate, FT_SetDataCharacte-
ristics und eventuell noch andere) und dann geschrieben 
(FT_Write)  oder  gelesen  werden  (FT_GetQueueStatus, 
FT_Read) kann. Wird das Gerät nicht mehr benutzt, sollte es 
geschlossen werden (FT_Close). Die Funktionen FT_Write 
und FT_Read dienen zum Transport der Telegrammbytes der 
eigentlichen Kommunikation, die in den diesen Abschnitten 
beschrieben wird.
9.2  Erstellen von Telegrammen
Das Programmieren der unterschiedlichen Geräte, in denen 
die Schnittstellenkarten verwendet werden, erfolgt stets nach 
dem gleichen Schema, wenngleich sich Anzahl und Funk-
tion der Kommunikationsobjekte, die durch eine bestimmte 
Geräteserie unterstützt werden, unterscheiden.
Generell gilt:
-  Überwachung (Monitoring), also reine Abfrage von Istwer-
ten und Status, ist immer möglich. Die Geräte benötigen 
dazu keinen Remote-Modus
-  Setzen  von  Zuständen  und  Sollwerten  (Controlling) 
erfordert  die Aktivierung  des  Remote-Modus  (remote  = 
ferngesteuert durch eine digitale Schnittstelle)
-  der Remote-Modus kann durch bestimmte Umstände blok-
kiert werden, z. B. expliziter Lokalbetrieb (nur PSI9000) 
oder wenn sich ein Gerät in einer Betriebsart befindet, die 
keinen Remote-Modus zuläßt bzw. eine derartige Anfrage 
ignoriert. Näheres dazu entnehmen Sie bitte der Bedie-
nungsanleitung Ihres Gerätes.
Um  ein  Gerät  zu  steuern,  sprich  z.  B.  einen  Sollwert  zu 
senden und zu setzen, müssen Sie
1. den Remote-Modus aktivieren (Objekt 54)
2. den Sollwert senden
3. den Eingang/Ausgang einschalten (wenn nicht bereits)
Der Remote-Modus sollte verlassen werden, wenn er nicht 
mehr benötigt wird. Solange er aber aktiviert ist, kann das 
Gerät nicht oder nur bedingt manuell bedient werden. Der 
Modus wird in der Anzeige des Gerätes angezeigt.
Beispiel 1: Remote-Modus aktivieren über IF-R1/IF-U1
Nach der Vorgabe des Telegrammformats (siehe auch 7.5) 
ist das erste Byte der Startdelimiter, der von der Richtung 
des  Telegramms  und  dem Anfragetyp  abhängig  ist.  Für 
dieses Beispiel ergibt sich ein SD von 0xD1, in Bits zerlegt 
sieht das so aus:
11 01 00 01
         
Bits 0...3: 1 = es werden  Bytes gesendet
         
Bit 4: 1 = vom PC gesendet
         
Bit 5: 0 = Singlecast
         
Bit 6+7: 11 = Daten senden
Alternativ zum bitweisen Zusammensetzen kann man sich 
das vereinfachen, indem man Hexwerte addiert. Ausgehend 
von Bit 6+7 ergibt sich folgendes: 
SD = Sendungstyp + Castform + Richtung + Datenlänge
wobei Sendungstyp entweder
0xC0    Daten senden oder 
0x40    Anfrage
und Castform entweder
0x00    Singlecast oder 
0x20    Broadcast
und Richtung entweder
0x10    vom PC ans Gerät oder 
0x00    vom Gerät an den PC
und die Datenlänge - 1 von
0x00...0x0F  bis  zu  16  Bytes  am  Stück  (bei  CAN  siehe 
„7.6.1 Geteilte Telegramme“).
Die  Datenlänge  entspricht  der Anzahl  der  gesendeten 
Bytes -1!! Immer beachten!! 
Die Geräteadresse des anzusprechenden Gerätes ist bei-
spielsweise 5, das zu benutzende Objekt 54 (als Hexwert 
0x36), die Maske für den Remote-Modus (siehe auch Tabelle 
in 9.3) ist 0x10 und das Steuerbyte für Remote auch 0x10. 
Somit ergibt sich dieses Telegramm:
D1 05 36 10 10 01 2C
Zum Umkehren des Ganzen, also der Deaktivierung, ist dann 
D1 05 36 10 00 01 1C
 zu senden. Die Maske bleibt natürlich 
gleich, nur das Steuerbyte ändert sich.
Beispiel 2: Istwerte abfragen über CAN
Bei CAN entfallen der Startdelimiter SD und die Checksum-
me CS, somit benötigen wir nur das Objekt, laut Tabelle 71 
(hex = 0x47), den Identifier ID (Berechnungsbeispiel siehe 
Abschnitt 7.6) und die Länge der zu sendenden Bytes. Bei 
der CAN-Nachricht zählt das Objekt zur Datenlänge, daher 
ergibt sich hier eine Datenlänge von 1, weil hier nur das 
Objekt zur Anfrage der Istwerte gesendet wird. 
Weiter nächste Seite...