SBC Serial communication Bedienungsanleitung

Typ
Bedienungsanleitung
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
Serielle Kommunikation
&
Protokolle
PCD Serie xx7
ASCII
DK3964 (R)
RK512 (R)
Treiber im Transparent Modus
26_794-1_2-Serielle Kom-Dxx7 D2 © SAIA-Burgess Controls AG
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
© SAIA-Burgess Controls AG (v1.01) 26_794-1_2-Serielle Kom-Dxx7
Inhalt
1 Produktbeschreibung
2 Serielle Kommunikations-Schnittstellen
3 ASCII
4 DK3964 (R)
5 RK 512 (R)
6 RK512 (R) Multi-Point nur zwischen PCD
7 Transparent Modus (SAIA SFC & SFB )
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
26_794-1_2-Serielle Kom-Dxx7 D2 © SAIA-Burgess Controls AG
1 Produktbeschreibung
1.1 Einführung
Die implementierten Protokolle (ASCII, DK3964, RK512 und Transparent-
Modus) erlauben es, Daten im Punkt-zu-Punkt Modus zwischen PCDs, Termi-
nals und Computern auszutauschen. Weiterhin besteht die Möglichkeit, das
RK512 Protokoll im Multi-Point Modus zu betreiben. Dies aber nur und mit
RS485. Schnittstellen zwischen PCDs der Serie xx7
Weiterhin erlaubt der ASCII-Treiber, in einer einfachen Weise eigene Protokolle
zu erstellen.
Einsatz
Es können unterschiedliche Protokolle gleichzeitig auf unterschiedliche Ports
mit unterschiedlichen Schnittstellenmodulen benutzt werden. Es werden alle
Schnittstellenmodule unterstützt: RS232, RS422, RS485 und 20 mA Strom-
schleife.
1.2 Implementierung in der PCD Serie xx7
Diese Protokolle sind Standardfunktionalitäten. Sie sind auf allen Steuerungen
der Serie xx7 vorhanden. Von welcher Firmware Version an, ist der folgenden
Tabelle zu entnehmen:
Punkt zu Punkt
Multi-Point
PCD1.M137
V1.310
V1.400
PCD2.M1x7
V1.300
V1.316
PCD2.M487
Von Beginn an
Von Beginn an
PCD3.Mxxx7
Von Beginn an
nicht integriert
1.3 Ausführen
In all den unterschiedlichen Protokollen und Treibern werden Operationen mit
denselben Systemfunktionen ausgeführt. Natürlich haben dabei die Aufrufpara-
meter der Funktion, abhängig vom Protokoll und Treiber, unterschiedliche Be-
deutung.
Folgende Funktionen sind verfügbar:
Funktion Protokoll Beschreibung
SFC245 ASCII, DK3964,
RK512, Transpa-
rent.
Auswahl des gewünschten Protokolls, Kon-
figuration und Initialisierung der seriellen
Schnittstelle.
SFB12 ASCII, DK3964,
RK512, Transpa-
rent.
Daten senden.
SFB13 ASCII, DK3964,
Transparent.
Daten empfangen.
SFB14 RK512(R) Daten auslesen
Alle Funktionen werden für das jeweilige Protokoll detailliert in den entspre-
chenden Kapiteln beschrieben.
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
1.4 Funktion Status Maschine (State Machine)
Alle in Kapitel 1.3 beschrieben Funktionen, mit Ausnahme der SFC245, sind
Status Maschinen (State Machine). Das heisst, die Funktion wird in Schritten
ausgeführt, weil jedes Kommunikationsprotokoll (KP) bestimmten Regeln unter-
liegt und somit die Gesamtausführung der Funktion nicht in einem Zyklus erfol-
gen kann.
Der Status der Funktion kann, abhängig von Ereignissen, wechseln. Dabei gibt
es zwei mögliche Ursachen für den Statuswechsel. Eine Ursache ist das S7-
Programm, das den SFB mittels Kommandos aufruft, die andere Ursache kommt
intern aus der Funktion. Nachfolgend sind die Ereignisse beschrieben, die für je-
den möglichen Fall den Statuswechsel der Funktion verursachen.
1.4.1 Möglicher Status des SFB12
(SFB) Nicht initialisier
t
Untätig
Senden
Gesende
t
Abbruch
Fehle
r
K
P nicht initialisiert nach S
p
eisun
g
EIN
Von Status Nach Status Ereignis
Kein KP Nicht initia-
lisiert
Der Aufruf der SFC245 schaltet die KP-
Funktionalität ein und setzt den Status des SFBs
immer auf “Nicht initialisiert”
Nicht initiali-
siert
Untätig Durch das erstmalige Aufrufen des SFB12
Untätig Senden Positive Flanke am Eingang REQ des SFB12
Untätig Fehler Problem während der Kommunikation
Gesendet Operation wurde ausgeführt
Abbruch Positive Flanke am Eingang R, oder ein spezifi-
sches S7-Objekt existiert nicht
Senden
Fehler Problem während der Kommunikation
Gesendet Untätig Nächster Aufruf des SFB12
Fehler Untätig Nächster Aufruf des SFB12
© SAIA-Burgess Controls AG (v1.01) 26_794-1_2-Serielle Kom-Dxx7
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
1.4.2 Möglicher Status des SFB13
(SFB) Nicht initialisier
t
Ein (enabled)
Empfangen
Bekommen Abbruch
Fehle
r
Aus (disabled)
K
P nicht ini
t
ialisiert nach Speisung EIN
Von Status Nach Status Ereignis
Kein KP Nicht initiali-
siert
Der Aufruf der SFC245 schaltet die KP-
Funktionalität ein und setzt den Status des SFBs
immer in“ Nicht initialisiert”
Nicht initiali-
siert
Aus Durch das erstmalige Aufrufen des SFB13
Aus Ein Aufruf des SFB13 mit EN_R = 1
Ein Aus Aufruf des SFB13 mit EN_R = 0
Ein Empfangen Eingehendes Telegramm kommt
Empfangen Bekommen Das ganze Telegramm ist angekommen
Bekommen
Abbruch
Fehler
Ein Nächster Aufruf des SFB13
Empfangen Ein Aufruf des SFB13 mit EN_R = 0
Empfangen Abbruch Das spezifische S7-Objekt existiert nicht
Empfangen Fehler Fehler mit dem Empfangspuffer (Zu klein)
26_794-1_2-Serielle Kom-Dxx7 D2 © SAIA-Burgess Controls AG
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
1.4.3 Möglicher Status des SFB14
(SFB) nicht initialisiert
Warten
Prüfen
Daten angekommen
Fehler
Untätig
KP nicht initialisiert nach Speisung EIN
Von Status Nach Status Ereignis
Kein KP Nicht initiali-
siert
Der Aufruf der SFC245 schaltet die KP-
Funktionalität ein und setzt den Status des SFBs
immer in “Nicht initialisiert”
Nicht initiali-
siert
Untätig Durch das erstmalige Aufrufen des SFB14
Untätig Warten Positive Flanke am Eingang REQ des SFB12
Warten Prüfen Internes Ereignis
Prüfen Daten ange-
kommen
Die empfangenen Daten sind korrekt
Daten ange-
kommen
Untätig Nächster Aufruf des SFB14
Untätig
Warten
Prüfen
Have Data
Fehler Problem mit der Kommunikation ode rein S7-
spezifisches Objekt existiert nicht.
Error Untätig Nächster Aufruf des SFB14
© SAIA-Burgess Controls AG (v1.01) 26_794-1_2-Serielle Kom-Dxx7
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
2 Serielle Schnittstellenmodule
Detaillierte Beschreibungen zu den
Steckplätzen A, B, B1 und B2
Seriellen Schnittstellenmodulen
Anschlussbelegungen
Verdrahtung
können dem Kapitel 8 des Handbuchs 26/757 entnommen werden.
2.1 Unterstützte Schnittstellen und Baudraten
Aus der folgenden Tabelle können die unterstützen Schnittstellen und Baudraten
entnommen werden.
Slot Por
t
Baudraten
PCD1.M137
A
B
B
1
2
3
300,600,1200,2400,4800,9600,19200,38400
300,600,1200,2400,4800,9600,19200,38400
300,600,1200,2400,4800,9600,19200,38400
PCD2.M127/1
57
A
B
B
1
2
3
300,600,1200,2400,4800,9600,19200,38400
300,600,1200,2400,4800,9600,19200
1
,38400
1
300,600,1200,2400,4800,9600,19200
1
,38400
1
PCD2.M177
A
B1
B1
B2
B2
1
2
3
4
5
300,600,1200,2400,4800,9600,19200,38400
300,600,1200,2400,4800,9600,19200
1
,38400
1
300,600,1200,2400,4800,9600,19200
1
,38400
1
300,600,1200,2400,4800,9600,19200
1
,38400
1
300,600,1200,2400,4800,9600,19200
1
,38400
1
PCD2.M487
PGU
A
B1
B1
B2
B2
(27-29)
0
1
2
3
4
5
6
1200,2400,4800,9600,19200,38400,57600,115200
1200,2400,4800,9600,19200,38400,57600,115200
1200,2400,4800,9600,19200
1
,38400
1
1200,2400,4800,9600,19200
1
,38400
1
1200,2400,4800,9600,19200
1
,38400
1
1200,2400,4800,9600,19200
1
,38400
1
1200,2400,4800,9600,19200,38400,57600,115200
PCD3.Mxxx7
PGU
0
onboard
0
1
2
wie PCD2.M487
Hinweis:
1
Die maximale Baudrate von 19200, bzw. 38400 Baud der Schnittstellen 2…5
lässt sich nur mit Hilfe eines Stringeintrags im Konfigurationsdatenbausteins
(CDB) umschalten. Folgender Stringeintrag stellt die maximale Baudrate für
Steckplatz B oder B1 auf 38400.
Ein Konfigurationsdatenbaustein lässt sich mit dem entsprechenden Eintrag mit
dem I/O-Builder erstellen, der von der Internetadresse
www.sbc-support.ch her-
unter geladen werden kann.
26_794-1_2-Serielle Kom-Dxx7 D2 © SAIA-Burgess Controls AG
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
© SAIA-Burgess Controls AG (v1.01) 26_794-1_2-Serielle Kom-Dxx7
Einschränkung:
Als Voreinstellung stehen die Schnittsellen 2…5 auf 19200 Baud
Wenn die eine Baudrate eingestellt ist, ist die andere nicht erlaubt, d.h.
bei 38400 Baud wird 19200 nich unterstützt und umgekehrt.
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
3 ASCII
Einführung
Der ASCII Kommunikationstreiber führt nicht wirklich ein Protokoll aus, son-
dern er kontrolliert und steuert eher einen Kommunikationsrahmen. Es gibt 4 un-
terschiedliche Wege, diesen Rahmen zu steuern.
Time out (Zeichenverzugszeit)
Feste Länge
Ein Endzeichen
Zwei Endzeichen
Wenn das Ende eines Telegramms erkannt wurde, benachrichtigt das System
den Anwender, dass dieses komplett empfangen im Empfangsspeicherbereich
abgelegt wurde. Es ist nicht möglich, mehr als eine Telegramm im Empfangs-
puffer zu haben. Wenn sich ein Telegramm im Empfangspuffer befindet, gehen
alle weiteren Zeichen verloren, bis das im Empfangspuffer wartende Telegramm
aus dem Empfangspuffer in einen anderen Speicherbereich transferiert wurde.
Im Folgenden werden die 4 unterschiedlichen ASCII Modi detaillierter be-
schrieben.
3.1 Time out (Zeichenverzugszeit)
Der Time out Modus ist eine Möglichkeit, das Ende des Telegramms zu detek-
tieren. Wenn nach einer vordefinierten Zeit (ZVZ = Zeichenverzugszeit) kein
Zeichen empfangen wurde, wird dies von der Empfangsschnittstelle als Ende ei-
nes Telegramms interpretiert. Zeichen, die danach kommen, werden als neuer
Telegramm oder gar nicht betrachtet.
Zeit T1 ist kleiner als die vordefinierte Time out Zeit (ZVZ). Somit ist Zch_5
innerhalb des Telegramms. Aber die Zeit T2 ist grösser als die vordefinierte
Time out Zeit (ZVZ). Somit ist Zch_5 das letzte Zeichen. Zch_6 gehört zum
nächsten Telegramm.
Zch _7Zch _3 Zch _2 Zch_1 Zch _4
Nächstes Telegramm
Zch _6
Telegramm 1
Zch _5
T1 T2
ASCII Bild 1
26_794-3-Serielle Kom-Dxx7 (v1.01) © SAIA-Burgess Controls AG Seite 3-1
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
Seite 3-2
© SAIA-Burgess Controls AG (v1.01) 26_794-3-Serielle Kom-Dxx7
3.2 Feste Länge
Dieser Modus ist sehr einfach. Jedes Telegramm hat eine fest definierte Anzahl
Zeichen. Wenn die Empfangsschnittstelle die vordefinierte Anzahl Zeichen emp-
fangen hat, ist das Telegramm zu Ende. Die nachfolgenden Zeichen gehören zum
nächsten Telegramm.
Es muss aber weiterhin die maximale Zeit zwischen den empfangenen Zeichen
beachtet werden. Wenn diese länger als die vordefinierte Zeit zwischen den Zei-
chen (ZVZ) ist, wird eine Fehlermeldung ausgegeben.
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
26_794-3-Serielle Kom-Dxx7 (v1.01) © SAIA-Burgess Controls AG Seite 3-3
3.3 Ein Endzeichen
Das Ende eines Telegramms wird durch ein vordefiniertes Endzeichen identifi-
ziert. Jedes mal, wenn ein solches Zeichen beim Empfänger eintrifft, wird dieser
das Ende eines Telegrammrahmens erkennen.
Es muss aber weiterhin die maximale Zeit zwischen den empfangenen Zeichen
beachtet werden. Wenn diese länger als die vordefinierte Zeit zwischen den Zei-
chen (ZVZ) ist, wird eine Fehlermeldung ausgegeben.
3.4 Zwei Endzeichen
Hier ist das Verhalten identisch mit dem „Ein Endzeichen“ Modus in Kapitel 3.3.
Aber in diesem Fall sind 2 vordefinierte, aufeinander folgende Zeichen für das
Ende eines Telegramms nötig, damit dieses identifiziert wird.
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
3.5 Initialisierung der PCD.xx7 im ASCII Modus
Um den ASCII Modus zu benutzen, muss der COM Port der PCD initialisiert und
konfiguriert werden. Dieses geschieht mit der SFC245. Um einen Modus einzu-
schalten, muss die SFC245 einmal aufgerufen werden.
Diese SFC wird auch benutzt, um den COM Port für andere Kommunikationspro-
tokolle wie RK512 und DK3964 zu konfigurieren. Dann werden einige Parameter
des ASCII Treibers nicht benötigt. Die Spalte „Ausgewählter Modus“ zeigt an,
welche Parameter, abhängig vom gewählten Modus, für den ASCII Treiber benö-
tigt werden.
Name Para Typ Möglicher
Wert
Ausgew.
Modus
Bemerkung
5 6 7 8
Port IN0 INT 0…6 COM Port Nummer (siehe Kapitel 2.1)
Mode IN1 INT 5…8 5 ASCII – Feste Länge
6 ASCII – 1 Endzeichen
7 ASCII – 2 Endzeichen
8 ASCII – Time Out (ZVZ)
Baud Rate IN2 DINT Baudrate (siehe Kapitel 2.1)
Data Bit IN3 INT 7…8 Anzahl Datenbits
Stop Bit IN4 INT 1…2 Anzahl Stoppbits
Parity IN5 INT 0…4 0 Keine
1 Gerade
2 Ungerade
3 Force Low
4 Force High
Control IN6 INT 0…3 Schnittstellentyp
0 RS 232
1 RS485
2 RS422
3 TTY
XON IN7 BYTE 0…FFh Nicht verwendet
XOFF IN8 BYTE 0…FFh Nicht verwendet
WaitSend IN9 WORD 0…FFFEh Nicht verwendet
WaitInactiv IN10 WORD 0…FFFEh Nicht verwendet
TelCount IN11 INT 1 Anzahl Rahmen im Puffer
Overwrite IN12 BOOL FALSE /
TRUE
FALSE: Telegramm überschreibbar
TRUE: Telegramm überschreibbar im
Puffer, aber nur wenn TelCount = 1.
DelRxPuffer IN13 BOOL FALSE /
TRUE
Nicht verwendet
DKPriority IN14 BOOL FALSE /
TRUE
Nicht verwendet
ZVZ IN15 WORD 0,
1…FFFEh
Zeichenverzugszeit in ms, 0 = Vorgabewert
von 4ms
QVZ IN16 WORD 0,
1…FFFEh
Nicht verwendet
TryToConnect IN17 INT 0…255 Nicht verwendet
TryToSend IN18 INT 0…255 Nicht verwendet
FixedLen IN19 INT 1…1024 Telegrammlänge beim Empfang
EndChar1 IN20 BYTE 0…255 Endzeichen 1
EndChar2 IN21 BYTE 0…255 Endzeichen 2
SENDBuffer IN22 INT 0…4000 Sendepuffergrösse, abhängig von der zu sen-
denden Telegrammlänge. (In Bytes)
RCVBuffer IN23 INT 0…4000 Empfangspuffergrösse, abhängig von der zu
empfangen Telegrammlänge. (In Bytes)
Dummy_I0 IN24 INT 0 Nicht verwendet
Dummy_W1 IN25 WORD 0 Nicht verwendet
Dummy_W2 IN26 WORD 0 Nicht verwendet
Dummy_DW1 IN27 DWORD 0 Nicht verwendet
RetVal OUT WORD Operationsergebnis siehe Kapitel 3.5.2.
Nicht verwendet Erforderlich
Seite 3-4
© SAIA-Burgess Controls AG (v1.01) 26_794-3-Serielle Kom-Dxx7
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
26_794-3-Serielle Kom-Dxx7 (v1.01) © SAIA-Burgess Controls AG Seite 3-5
3.5.1 Beispiel :
In diesem Beispiel wird der COM Port 1 der PCD xx7 für den ASCII Treiber im
Time Out Modus (ZVZ) konfiguriert. Die Baudrate ist 9600, 1 Stoppbit, keine Pa-
rität. Die Schnittstelle ist RS232. Die Zeichenverzugszeit ist fest auf 20ms. Sende-
und Empfangspuffer sind 300 Bytes gross.
CALL SFC 245
IN0 :=1 // Serielles Port N°1
IN1 :=8 // Time out Modus (ZVZ)
IN2 :=L#9600 // Baudrate
IN3 :=8 // Datenbits
IN4 :=1 // Stoppbit
IN5 :=0 // Parität (Keine)
IN6 :=0 // RS232 Schnittstelle
IN7 :=B#16#0 // Nicht verwendet
IN8 :=B#16#0 // Nicht verwendet
IN9 :=W#16#0 // Nicht verwendet
IN10 :=W#16#0 // Nicht verwendet
IN11 :=1 // TelCount
IN12 :=FALSE // Rahmen nicht überschreibbar
IN13 :=FALSE // Nicht verwendet
IN14 :=FALSE // Nicht verwendet
IN15 :=W#16#14 // ZVZ (Time Out) = 20 ms
IN16 :=W#16#0 // Nicht verwendet
IN17 :=0 // Nicht verwendet
IN18 :=0 // Nicht verwendet
IN19 :=0 // Hier nicht verwendet (Feste Länge)
IN20 :=B#16#0 // Hier nicht verwendet (1Endzeichen)
IN21 :=B#16#0 // Hier nicht verwendet (2Endzeichen)
IN22 :=300 // 300 Bytes für den Sendepuffer
IN23 :=300 // 300 bytes für den Empfangspuffer
IN24 :=0 // Nicht verwendet
IN25 :=W#16#0 // Nicht verwendet
IN26 :=W#16#0 // Nicht verwendet
IN27 :=DW#16#0 // Nicht verwendet
RET_VAL:=#RetVal // Rückgabewert
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
Seite 3-6
© SAIA-Burgess Controls AG (v1.01) 26_794-3-Serielle Kom-Dxx7
3.5.2 Rückgabewert der SFC245
Wert Beschreibung
0 Initialisierung war erfolgreich
-1 Ungültige Schnittstellennummer
-2 Nicht genügend S7-Speicher, um die Puffer zu erzeugen. Evtl. Komprimierung durch-
führen.
-3 Nicht genügend S7-Speicher, um die Puffer zu erzeugen (nach durchgeführter Komp-
rimierung).
-4 Ungültiger Wert für den Parameter MODE
-5 Ungültige Schnittstellenparameter (Baudrate, Datenbit, Stoppbit oder Parität
-6 Ungültiger Wert für Parameter WAIT_SEND oder WAIT_INACTIVITY
-7 Ungültiger Wert für Parameter TEL_COUNT
-8 Ungültiger Wert für Parameter ZVZ oder QVZ
-9 Ungültiger Wert für Parameter TRY_CONNECT oder TRY_SEND
-10 ASCII – Feste Länge: Die Telegrammlänge ist länger als der Empfangspuffergrösse
-11 Ungültiger Wert für Parameter in SEND_BUFFER oder RCV_BUFFER
-12 Die Gesamtspeichergrösse des Sende- und Empfangspuffer ist grösser als die maximal
erlaubten 64kB.
-13 Die SFC wurde mit einer unterschiedlichen Summe aus Empfangs- und Sendepuffer
aufgerufen als beim letzten Aufruf.
Bemerkung:
Es ist möglich, den Schnittstellentreiber oder das Protokoll während der Ausfüh-
rung umzuschalten, aber folgendes muss beachtet werden:
1) Die Puffergrösse kann nicht verändert werden
2) Die Sende- und Empfangsbaustein benötigen eine Flanke am Enable-
Eingang, um den neuen Modus zu erkennen.
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
26_794-3-Serielle Kom-Dxx7 (v1.01) © SAIA-Burgess Controls AG Seite 3-7
3.7 SENDEN eines Telegrammrahmens
Um einen Telegrammrahmen zu senden, wird der SFB12 benötigt. Dieser SFB
kann unter Berücksichtigung der unterschiedlichen Bedingungen des gewählten
Modus für alle ASCII Modi benutzt werden.
3.7.1 Parameter SFB 12
Parameter Beschreibung
REQ Mit einer positiven Flanke wird die SENDE Prozedur gestartet
R Mit einer positiven Flanke wird abgebrochen und das Senden zurück-
gesetzt.
ID Serielle COM Port Nummer..
R_ID Nicht verwendet
DONE
SENDE Prozedur ist abgeschlossen (DONE). Das Flag DONE bleibt
einen Zyklus lang EINS.
ERROR
Fehler (ERROR) in der Sende Prozedur. Das Flag ERROR bleibt ei-
nen Zyklus lang EINS.
STATUS Fehlercode
SD_1 Datenbereich, in den gesendet wird. Dieser Parameter ist ein ANY
Pointer, aber die Länge des ANY Pointer wird hier nicht berücksich-
tigt. Diese wird von Parameter LEN übernommen.
LEN Es können maximal 4’000 Bytes auf einmal gesendet werden. Natür-
lich muss die Sendepuffergrösse gleich oder grosser deklariert sein.
3.7.2 SENDE Bedingungen
ASCII Modus Bedingung
Feste Länge
(5)
Die Anzahl zu sendende Zeichen wird durch den Parameter
LEN bestimmt.
Ein Endzei-
chen (6)
Das erste übertragene Zeichen ist das, auf welches durch SD_1
gezeigt wird. Alle weiteren Zeichen werden gesendet, bis das
Endzeichen gefunden wird. Das Endzeichen muss innerhalb
der vorgegebenen Länge des Parameters LEN liegen. Sonst
wird nichts gesendet.
Zwei Endzei-
chen (7)
Gleich wie Modus 6, aber mit 2 Endzeichen.
Time Out
(ZVZ) (8)
Die Anzahl zu sendende Zeichen ist durch den Parameter LEN
festgelegt. Wenn das letzte Zeichen gesendet wurde, wartet die
PCD die ZVZ ab, bevor erneut gesendet wird. (Wenn eine wei-
ter Sendeanforderung vorliegt)
Es sind einige weitere Bedingungen in Bezug auf die Status Maschine der Funkti-
on in Kapitel 1.4 beschrieben.
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
Seite 3-8
© SAIA-Burgess Controls AG (v1.01) 26_794-3-Serielle Kom-Dxx7
3.7.3 SENDE Beispiel
CALL SFB 12 , DB12
REQ :=M50.0 // Sendeanforderung
R :=M50.1 // Übertragung zurücksetzen
ID :=W#16#1 // COM Port Nummer
R_ID := // Nicht verwendet
DONE :=M100.0 // Übertragung ohne Fehler abge-
schlossen
ERROR :=M100.1 // Fehler bei der Übertragung
STATUS:=MW102 // Fehlercode
SD_1 :=P#DB100.DBX 0.0 BYTE 1000 // Datenquelle
LEN :=MW104 // Anzahl zu sendenden Bytes
3.7.4 Rückgabewerte STATUS
Wert Beschreibung
-9 (FFF7h) Telegramm kann nicht kopiert werden
-8 (FFF8h) Länge ist zu gross
-7 (FFF9h) Unbekannter Typ
-6 (FFFAh) Ungültiger Zielbereich
-5 (FFFBh) Ungültige Länge
-4 (FFFCh) DB ist nicht geladen
-3 (FFFDh) Ungültige DB Nummer
11 Warnung: Die Funktion kann nicht ausgeführt werden, da sie bereits
ausgeführt wird.
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
26_794-3-Serielle Kom-Dxx7 (v1.01) © SAIA-Burgess Controls AG Seite 3-9
3.8 Telegrammrahmen EMPFANGEN
Um die eingehenden Daten auf der seriellen Schnittstelle mit dem ASCII Treiber
zu lesen, wird der SFB 13 benötigt.
3.8.1 Parameter SFB 13
Parameter Beschreibung
EN_R EINS = Empfang einschalten
ID Serielle Port Nummer
R_ID Nicht verwendet.
NDR New Data Ready: Neue Daten sind angekommen und in den gewünschten
Speicherbereich kopiert worden. NDR bleibt einen Zyklus lang EINS.
ERROR
Fehler beim Empfang. ERROR bleibt einen Zyklus lang EINS.
STATUS Fehlercode
RD_1 Spezifiziert den Bereich, in den die eingehenden Daten gelegt werden sol-
len. Dieser Parameter ist ein ANY Pointer. Die Anzahl festgelegter Bytes
in diesem Parameter muss gleich oder grösser als die Anzahl empfangener
Bytes sein.
LEN Anzahl der sich im Empfangspuffer befindlichen Bytes.
3.8.2 EMPFANGS Bedingungen
ASCII Modus Bedingung
Feste Länge
(5)
Das Signal NDR wird EINS, wenn die Anzahl empfangener
Zeichen gleich der Anzahl der spezifizierten Bytes im Parame-
ter FixLen (IN19) der SFC245 ist
Ein Endzei-
chen (6)
Das Signal NDR wird EINS, wenn das Endzeichen im Emp-
fangspuffer erkannt wird. Ausserdem muss die Telegrammrah-
menlänge kleiner als die im Parameter RD_1 spezifizierten An-
zahl Bytes sein.
Zwei Endzei-
chen (7)
Gleich wie Modus 6, aber mit 2 Endzeichen.
Time Out
(ZVZ) (8)
Das Signal NDR wird EINS, wenn die Zeit zwischen zwei Zei-
chen die im Parameter ZVZ der SFC245(IN15) spezifizierte
Zeit überschreitet.
Es sind einige weitere Bedingungen in Bezug auf die Status Maschine der Funkti-
on in Kapitel 1.4 beschrieben.
SAIA
®
PCD.xx7 KOMMUNIKATIONS PROTOKOLL
Seite 3-10
© SAIA-Burgess Controls AG (v1.01) 26_794-3-Serielle Kom-Dxx7
3.8.3 Beispiel
CALL SFB 13 , DB13
EN_R :=M200.0 // Empfangsfunktion einschalten
ID :=W#16#1 // COM Port 1
R_ID := // Nicht verwendet
NDR :=M200.1 // New Data Ready flag (Neue Daten da)
ERROR :=M200.2 // Fehler Flag
STATUS:=MW202 // Fehlercode
RD_1 :=P#DB200.DBX 0.0 BYTE 2000 // Data Zielbereich
LEN :=MW204 // Anzahl empfangener Bytes
3.8.4 Parameter STATUS
Wert Beschreibung
-7 (FFF9h) Ungültiger Typ
-6 (FFFAh) Ungültiger Zielbereich
-5 (FFFBh) Ungültige Länge
-4 (FFFCh) DB nicht geladen
-3 (FFFDh) Ungültige DB Nummer
-2 (FFFEh) COM Port nicht initialisiert
-1 (FFFFh) Ungültige COM Port Nummer
0 OK
4 Länge zu gross im Vergleich zur Puffergrösse
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
26_794-3-Serielle Kom-Dxx7 (v1.01) © SAIA-Burgess Controls AG Seite 3-11
3.9 Beispiele
Es wurde ein Beispiel in Step7 geschrieben, um mit den 4 möglichen Treibern zu
arbeiten. Dieses Beispiel kann unter der Internetadresse
www.sbc-support.ch her-
unter geladen werden. Der Dateiname ist DOC_CP44.zip.
Diese Datei muss dearchiviert werden. Für die Durchführung mit dem SIMATIC
Manager benutzen Sie das Menü
-> Datei -> Dearchivieren
Im Projekt sind zwei Steuerungen vorhanden:
PCD_SEND : Diese PCD sendet ASCII Telegramme
PCD_RECEIVE : Diese PCD empfängt ASCII Telegramme.
Um korrekt zu arbeiten, müssen die beiden COM Port 1 der 2 PCDs mit Hilfe ei-
nes PCD2.F120 Moduls verbunden werden.
Eine PCD sendet den ASCII Telegrammrahmen im ausgewählten Modus und die
andere PCD empfängt diese in demselben Modus.
Der entsprechende ASCII Modus wird im Step7 Programm im Netzwerk 1 des
OB100 ausgewählt.
Weiterhin sind in beiden PCDs FCs für den jeweiligen Modus:
FC5 : läuft im Modus “Feste Länge”
FC6 : läuft im Modus “Ein Endzeichen”
FC7 : läuft im Modus “Zwei Endzeichen”
FC8 : läuft im Modus “Time Out” (ZVZ).
Alle FCs sind in der gleichen Art strukturiert.
Sende PCD (SEND_PCD):
Netzwerk 1: Lädt die Länge der zu sendenden Telegrammrahmen
Netzwerk 2: Aufruf des SFB12 (Senden)
Netzwerk 3: Warten von 2000 Zyklen zwischen jedem SENDEN (Nur für dieses
Beispiel)
Netzwerk 4: Zählen der gesendeten Telegrammrahmen und der Fehler
Empfangs PCD (RECEIVE_PCD):
Netzwerk 1: Aufruf des SFB13 (Empfangen)
Netzwerk 2: Zählen der empfangen Telegrammrahmen und der Fehler
Die Variablentabelle VAT1 zeigt, wie viele Telegramme gesendet und empfangen
wurden. Weiterhin wird angezeigt, wie viele Fehler aufgetreten sind.
KOMMUNIKATIONS PROTOKOLL SAIA
®
PCD.xx7
26_794-4_5-Serielle Kom-Dxx7 (V1.01)
© SAIA-Burgess Controls AG
4 DK3964
Einführung
Die 3964(R) Prozedur steuert die Datenübertragung mittels Punkt-zu-Punkt Ver-
bindung zwischen einer PCD Serie xx7 und einem Kommunikationspartner. In
dieser Prozedur ist sowohl die physikalische Schicht 1 (ISO-Layer 1) als auch
die Daten Verbindungsschicht(ISO-Layer-2) integriert.
Steuerzeichen
Während der Datenübertragung fügt die 3964(R) Prozedur Steuerzeichen zu den
Informationsdaten (Daten Verbindungsschicht) hinzu. Diese Steuerzeichen er-
lauben es dem Kommunikationspartner zu überprüfen, ob die Daten vollständig
und ohne Fehler angekommen sind.
Folgenden Steuerzeichen werden von der 3964(R) Prozedur analysiert:
STX Start of text (Beginn der Daten)
DLE Data link escape (Datenfluss zuende)
ETX End of text (Datenende)
BCC Block check character (Blocksummenzeichen, Nur bei 3964(R))
NAK Negative acknowledge (Negative Quittierung)
Priorität
Bei der 3964(R) Prozedur muss einer der beiden Teilnehmer eine höhere Priori-
tät haben, als der andere. Dieses muss während der Konfiguration eingestellt
werden.
D.h., wenn beide Partner zur gleichen Zeit beginnen, eine Verbindung aufzubau-
en, wird es dem Partner mit der höheren Priorität erlaubt sein, fort zufahren,
während der mit der niedrigen Priorität seine Anforderung auf später verschiebt.
Block Checksumme
Nur mit dem 3964(R) Übertragungsprotokoll wird die Datenintegrität durch das
Senden eines zusätzlichen Blockprüfzeichens (BCC) erhöht
Aber eine Blockprüfsummen-Berechnung (logische EXOR Operation) kann kei-
ne fehlenden Nullen erkennen, da der Wert Null das EXOR-Ergebnis nicht be-
einflusst.
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36
  • Page 37 37
  • Page 38 38
  • Page 39 39
  • Page 40 40
  • Page 41 41
  • Page 42 42
  • Page 43 43
  • Page 44 44
  • Page 45 45
  • Page 46 46
  • Page 47 47
  • Page 48 48
  • Page 49 49
  • Page 50 50
  • Page 51 51
  • Page 52 52
  • Page 53 53
  • Page 54 54
  • Page 55 55
  • Page 56 56
  • Page 57 57
  • Page 58 58
  • Page 59 59
  • Page 60 60
  • Page 61 61
  • Page 62 62
  • Page 63 63
  • Page 64 64
  • Page 65 65

SBC Serial communication Bedienungsanleitung

Typ
Bedienungsanleitung