DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 1
DATASNAKE MPI
Technische Dokumentation
Stand 09.2000
Softwareversion 2.03 (L1 Protokoll) 2.03R (3964R Protokoll)
Schildknecht IndustrieelektronikEinsteinstraße 1074372 Sersheim
Tel.: 07042-84 10 61Fax.:07042-84 00 51
Die Firma Schildknecht Industrieelektronik behält sich das Recht vor, Änderungen an ihren Produktenvorzunehmen, die der technischen Weiterentwicklung dienen. Diese Änderungen werden nichtnotwendigerweise in jedem Einzelfall dokumentiert.
Dieses Handbuch und die darin enthaltenen Informationen wurden mit der gebotenen Sorgfaltzusammengestellt. Die Firma Schildknecht übernimmt jedoch keine Gewähr für Druck- oder andere Fehleroder daraus entstehende Schäden.
Die in diesem Buch genannten Marken und Produktnamen sind Warenzeichen oder eingetrageneWarenzeichen der jeweiligen Titelhalter.
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 3
1.Einleitung:
Die DATASNAKE MPI stellt eine kostengünstige Verbindung zwischen einem beliebigenFremdsystem mit RS232 Schnittstelle und dem SIEMENS MPI Bus dar. Die Ankopplung andas Fremdsystem erfolgt, abhängig von der Version, entweder über ein L1-Master Protokollmit einer Baudrate von 38400 Baud und dem Format 8/E/1 bzw. das 3964R- Protokoll mit38400 Baud und dem Format 8/E/1.Die DATASNAKE ist MPI- Master und unterstützt die Funktionen „Variable schreiben“und „Variable lesen“, sowie die Funktionen „Operandenbereiche schreiben / lesen“ .
2. Ablauf:
Nach dem Powerup muß die DATASNAKE vom Fremdsystem durch ein„MPI_BRIDGE_INIT“- Telegramm für den Busbetrieb konfiguriert werden. Hierbei werdenu.a. die Adressen für den Busteilnehmer, mit dem kommuniziert werden soll (Partneradresse)(z.B. SIEMENS S7- SPS ), sowie die Busadresse der DATASNAKE (Stationsadresse)vergeben.
Nach fehlerfreier Konfiguration versucht die DATASNAKE selbständig eine Verbindung zuder Partnerstation am Bus aufzubauen, deren MPI- Adresse mit der konfiguriertenPartneradresse übereinstimmt. Über ein von der DATASNAKE zur Verfügung gestelltesSTATUS- Byte wird dem Fremdsystem mitgeteilt, wann die DATASNAKE für denAustausch von Datentelegrammen mit der Partnerstation bereit ist.
Um zyklisch Daten von der Partnerstation zu lesen, pollt das Fremdsystem die DATASNAKEständig mit einem „READ_VAR“- bzw. „OP_READ“- Telegramm. Die DATASNAKEantwortet dann entweder mit einem Statustelegramm, das die Bearbeitung der„READ_VAR“– bzw. OP_READ- Anforderung anzeigt (BUSY) , oder mit einemDatentelegramm als Antwort auf eine vorhergehende Lese- bzw. Schreibanforderung.Bei einer Schreibanforderung setzt das Fremdsystem ein „WRITE_VAR“- bzw.„OP_WRITE“- Telegramm an die DATASNAKE ab. Nach einigen Pollzyklen (abhängig vonder Abfragefrequenz des Fremdsystems) erfolgt ein Quittierungstelegramm.
Soll während des Betriebs eine neue Verbindung zu einer anderen Partnerstationaufgenommen werden, so ist zuvor die bestehende Verbindung mit einem„MPI_BRIDGE_DISCONNECT“- Telegramm abzubauen.Über ein „MPI_BRIDGE_INIT“- Telegramm kann nun die neue Verbindung eingerichtetwerden.Durch ein „MPI_BRIDGE_RESET“- Telegramm kann die DATASNAKE in ihrenEinschaltzustand versetzt werden. Sämtliche evtl. noch ausstehende Datenanforderungenwerden gelöscht. Die DATASNAKE zieht sich vom Bus zurück.Der Handshake zwischen DATASNAKE und Fremdsystem wird über das Statusbyte„STATUS“ abgewickelt. Das STATUS- Byte kann jederzeit über eine STATUS_ABFRAGEabgefragt werden. Stehen auf der DATASNAKE noch Daten auf eine vorhergehendeAnforderung an, werden diese auf eine STATUS_ABFRAGE hin zum Fremdsystemgesendet.
DA
TA
SN
AK
E M
PI
Dok
umen
tati
onF
irm
a S
chil
dkne
cht
Sei
te: 4
3. P
roto
koll
abla
uf
sch
emat
isch
:
3.1
Ver
bind
ungs
aufb
au:
Fre
mds
yste
m:
MP
I_B
RID
GE
_IN
ITS
TA
TU
S_A
BF
RA
GE
......
......
......
....
ST
AT
US
_AB
FR
AG
ES
TA
TU
S _
AB
FR
AG
E
DA
TA
SN
AK
E:
ST
AT
US
≠ 01
......
......
......
....
ST
AT
US
≠ 01
ST
AT
US
= 0
1„b
erei
t“
Nac
h er
folg
reic
hem
Ver
bind
ungs
aufb
au (
Sta
tus
= 0
1) ,i
st d
ie D
AT
AS
NA
KE
ber
eit,
Dat
en m
it d
er S
7 au
szus
taus
chen
.
3.2
Dat
enan
ford
erun
g (B
sp. O
P_R
EA
D, „
Pol
ling
“):
Fre
mds
yste
m:
OP
_RE
AD
ST
AT
US
_AB
FR
AG
E ..
......
......
......
.....
ST
AT
US
_AB
FR
AG
ED
AT
AS
NA
KE
:S
TA
TU
S =
01
(„an
geno
mm
en“)
.....
......
......
......
..S
TA
TU
S =
01
+D
aten
antw
ort
Abh
ängi
g vo
n de
r A
bfra
gefr
eque
nz d
es F
rem
dsys
tem
s un
d de
r A
ntw
ortz
eit d
er S
teue
rung
wer
den
unte
rsch
iedl
ich
viel
e P
ollz
ykle
n no
twen
dig.
3.3
Dat
enan
ford
erun
g (B
sp. O
P_R
EA
D, „
Req
uest
“):
Fre
mds
yste
m:
OP
_RE
AD
„n“
OP
_RE
AD
„n+
1“ ..
......
......
......
OP
_RE
AD
„n+
1“D
AT
AS
NA
KE
:S
TA
TU
S =
01
(„an
geno
mm
en“)
ST
AT
US
= 0
2(„
busy
+ n
icht
ang
enom
men
“) ..
......
......
......
ST
AT
US
= 0
1 +
Dat
enan
twor
t „n“
(Anf
. „n+
1“ a
ngen
omm
en)
Sta
tt e
iner
ST
AT
US
_AB
FR
AG
E k
ann
zum
Abf
rage
n de
r D
aten
antw
ort a
uch
bere
its
die
näch
ste
Dat
enan
ford
erun
g ge
send
et w
erde
n. W
ird
die
Anf
orde
rung
„n“
noc
h be
arbe
itet
, mel
det d
ie D
AT
AS
NA
KE
übe
r da
s S
TA
TU
S-
Byt
e so
lang
e „b
usy“
, bis
die
Dat
enan
twor
t „n“
auf
der
MP
I- S
eite
eing
etro
ffen
ist.
Bei
ein
em A
nfor
deru
ngsz
yklu
s >
ca.
50m
s (a
bhän
gig
von
der
Ant
wor
tzei
t der
Ste
ueru
ng b
zw. d
er B
usau
slas
tung
) w
ird
i.a. j
ede
Anf
orde
rung
ang
enom
men
.
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 5
4. Telegrammbeschreibung:
4.1 L1- Protokoll
Allgemeiner Telegrammaufbau:
(Alle Angaben sind in hex!)Fremdsystem DATASNAKE<BR>1 <41>
<01><40> <Länge L1>2 <BCC1>3
<00> <COMMAND> <Daten> .... <BCC2>4
<40>5 <Länge L1> <BCC1>6
<00> <STATUS> <Daten> ... <BCC2>7
<04> <QUIT>8 <BCC3>9
1 Das Zeichen <BR> ist eine <00> mit Stopbit = 0.
2 Länge L1 = COMMAND + Anzahl Daten bzw. STATUS + Anzahl Daten3 BCC1 Exclusivodersumme aus <41> <40> <Länge L1>4 BCC2 Exclusivodersumme aus <BCC1> <COMMAND> <DATEN>5 <40> L1- Protokoll- Rahmen ok. <41> L1- Protokoll- Rahmen nicht ok, Telegramm wird verworfen.6 BCC1 Exclusivodersumme aus <40> <Länge L1>7 BCC2 Exclusivodersumme aus <BCC1> <STATUS> <DATEN>8 <80> bei fehlerfreiem Empfang der Daten von der DATASNAKE (Auswertung wird derzeit nicht unterstützt) <C0> bei fehlerhaften Datenempfang9 BCC3 Exclusivodersumme aus <04> und QUIT
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 6
4.2 3964R- Protokoll :
Allgemeiner Telegrammaufbau:
(Alle Angaben sind in hex!)Fremdsystem DATASNAKE<02>1
<10>2
<COMMAND> <Daten> 3
<10> <03> <BCC>4
<10>5 <02>6
<10>7
<STATUS> <Daten>8
<10> <03> <BCC>9
<10>10
1 Zum Telegrammbeginn sendet das Fremdsystem das Startzeichen <02> (STX) und wartet für die Dauer dersog. Quittungsverzugszeit (QVZ ca. 2 Sek. ) auf eine Antwort von der DATASNAKE.2 Ist die Datasnake bereit, wird mit <10> (DLE) quittiert. Antwortet die DATASNAKE mit einem anderenZeichen, z.B. <15> NAK oder verstreicht die QVZ ohne Reaktion der DATASNAKE, ist derVerbindungsaufbau gescheitert. Das Fremdsystem versucht nun erneut durch das Aussenden von STX, eineVerbindung herzustellen. Nach insgesamt 6 vergeblichen Versuchen bricht das Fremdsystem ab.3 Nach positiver Quittierung geht das Fremdsystem in den Sendebetrieb über. Der zeitliche Abstand der Zeichendarf nicht mehr als 220ms betragen (Zeichenverzugszeit ZVZ) . Wir von der DATASNAKE eine Überschreitungder ZVZ erkannt, bricht sie ihren Empfangsvorgang ab und meldet das Zeichen NAK zurück.Hinweis: Hat das COMMAND- Byte bzw. ein Datum den Wert 10hex (DLE) , so muß dieses Zeichen jeweilsdoppelt gesendet werden ! (DLE- Verdopplung )4 BCC Exclusivodersumme aus <COMMAND> <DATEN> <10> <03>5 Wurde ein Telegramm korrekt empfangen meldet die DATASNAKE DLE. Antwortet die DATASNAKE miteinem anderen Zeichen, z.B. NAK bzw. verstreicht die QVZ ohne Reaktion, beginnt das Fremdsystem durch daserneute Aussenden von STX das Telegramm zu wiederholen. Nach insgesamt 6 vergeblichen Versuchen brichtdas Fremdsystem ab.6 Nach korrektem Empfang beginnt die DATASNAKE mit dem Senden eines Daten bzw. Statustelegramms undwartet für die Dauer der QVZ auf eine Quittung vom Fremdsystem.Hinweis: Es wird auf jede korrekte Anforderung vom Fremdsystem ein Antworttelegramm geschickt !7 Ist das Fremdsystem bereit, wird mit DLE quittiert. Meldet das Fremdsystem NAK oder ein anderes Zeichen,bzw. verstreicht die QVZ ohne Reaktion, versucht die DATASNAKE erneut durch das Senden von STX eineVerbindung herzustellen. Nach insgesamt 6 vergeblichen Versuchen bricht die DATASNAKE ab.Evtl. noch ausstehende Datenantworten werden verworfen.8 Nach positiver Quittierung geht die DATASNAKE in den Sendebetrieb über. Das Fremdsystem überwacht dieZVZ. Wird eine Überschreitung der ZVZ erkannt, bricht es seinen Empfangsvorgang ab und meldet das ZeichenNAK zurück.Hinweis: Hat das STATUS- Byte bzw. ein Datum den Wert 10hex (DLE) , so wird dieses Zeichen jeweils doppeltgesendet ! ( DLE- Verdopplung )9 BCC Exclusivodersumme aus <STATUS> <DATEN> <10> <03>.10 Wurde ein Telegramm korrekt empfangen, meldet das Fremdsystem DLE, bei fehlerhaftem Empfang wird mit<15> (NAK) quittiert. Antwortet das Fremdsystem mit einem anderen Zeichen, z.B. NAK bzw. verstreicht dieQVZ ohne Reaktion, beginnt die DATASNAKE durch das erneute Aussenden von STX das Telegramm zuwiederholen.Nach insgesamt 6 vergeblichen Versuchen bricht die DATASNAKE ab. Evtl. noch ausstehende Datenantwortenwerden verworfen.
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 7
Kommandos: (ohne Protokollrahmen)
a.) MPI_BRIDGE_INIT: (COMMAND = 01)
Fremdsystem (in HEX) DATASNAKE (in HEX) Kommentar<COMMAND = 01><SA><PA><HSA>1
<GAP_UP>2
<TIMEOUT>3
<Reserviert><Reserviert>
DATASNAKE MPI- Adr.MPI- Adr. Partner (S7)Höchste StationsadresseGAP Aktualisierungsfaktor,Data- Timeout<00><00>
<STATUS><Versionsstring>4>
b.) STATUS _ABFRAGE: (COMMAND = 03)
Fremdsystem (in HEX) DATASNAKE (in HEX) Kommentar<COMMAND = 03>
<STATUS>evtl. Daten
Stehen aktuelle Daten an ,werden diese auf eineSTATUS_ABFRAGE hinzum Fremdsystem gesendet.
1 <1F> hex2 typisch <03> hex3 Timeoutzeit zw. Anforderung und Antwort auf MPI- Seite, typisch <01>4 Versionsstand ASCII- Zeichen „2.03“ bzw. „2.03R“
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 8
c.) MPI_BRIDGE_DISCONNECT: (COMMAND = 02)
Fremdsystem (in HEX) DATASNAKE (in HEX) Kommentar<COMMAND = 02> Verbindungsabbau
<STATUS><Daten>1
d.) MPI_BRIDGE_RESET:(COMMAND = 88h)
Fremdsystem (in HEX) DATASNAKE (in HEX) Kommentar<COMMAND = 88h><11>
DATASNAKE Reset
<STATUS>
1 evtl. noch Datenantwort von vorhergehender Lese- bzw. Schreibanforderung
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 9
e.) READ_VAR Telegramm (COMMAND = 0) , Aufruf Datenworte lesen:
Fremdsystem (in HEX) DATASNAKE (in HEX)<COMMAND = 00><32> <07><00> <00><01> <00><00> <0C><Länge Hi,Lo>1
<00> <01> <12> <08> <12><41><02><00><00> <00><00> <00>
<FF> <09><Gesamtlänge Hi,Lo>2
<00> <14><Länge Data2 Hi,Lo>3
<00> <00> <00> <00><00><01><Pufferlänge Hi, Lo>4
<00> <01><00> <01> <00> <01> <00> <01><00> <01><00> <00>
<Anz. Variablenblocks Hi,Lo> 5
<72><Variablenanzahl>6
<Lese - DB Hi, Lo><DBW- Adresse Hi, Lo>7
Var-spec-block
evtl. weitere Var- spec- blocks
1 Länge = Gesamtlänge + 42 Gesamtlänge = Länge Data2 + 18 hex3 Länge Data2 = 6 * Anzahl Variablenblocks + 24 Pufferlänge = 4 * Anzahl Variablenblocks + Anzahl aller angeforderten Nettodaten in Byte + 25 Anzahl Variablenblocks = pro READ_VAR- Aufruf können mehrere, verschiedene Variablenblocks „gleichzeitig“ adressiert werden , pro Variablenblock ist ein Var- spec- block nötig.6 Anzahl der angeforderten Variablen pro Variablenblock (in Worte )7 Adresse des ersten zu lesenden Datenworts des Variablenblocks im Datenbaustein, z.B DBW 10 ! 00 0A hex
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 10
e1.) Antwort DATASNAKE :
Fremdsystem (in HEX) DATASNAKE (in HEX)Daten von letzter Leseanforderung!<STATUS><32> <07><00> <00><00> <00><00> <0C><Länge Hi, Lo>1
<00> <01> <12> <08> <12><01><02><??><00> <00><00> <00>
<FF> <09><Gesamtlänge Hi, Lo>2
<00> <04><Pufferlänge Hi,Lo>3
<01> <00> <00> <??>
<Anz. Variablenblocks Hi,Lo>4
<FF> <09>5
<Nettodatenlänge Hi, Lo>6
<DATEN> ...
Var-data-block
evtl. weitere Var- data- blocks
1 Länge = Gesamtlänge + 42 Gesamtlänge = Pufferlänge + 8 (in Byte)3 Pufferlänge = 4 * Anzahl Variablenblocks + Anzahl aller angeforderten Nettodaten in Byte + 24 Anzahl Variablenblocks = entspr. der Anfrage im READ_VAR- Aufruf5 keine Daten verfügbar: 0A 00 00 00, nächster Var- data- block bzw. BCC26 Nettodatenlänge im Variablenblock in Byte
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 11
f.) WRITE_VAR Telegramm: (COMMAND = 0), Aufruf Datenworte schreiben:
Fremdsystem (in HEX) DATASNAKE (in HEX)< COMMAND = 00><32> <07><00> <00><00> <01><00> <0C><Länge Hi, Lo>1
<00> <01> <12> <08> <12><41><08><00><00> <00><00> <00>
<FF> <09><Gesamtlänge Hi, Lo>2
<00> <14><Länge Data 2 Hi, Lo>3
<00> <00> <00> <00><00> <01><Pufferlänge Hi, Lo>4
<00> <01><00> <01> <00> <01> <00><01> <00> <01><00> <00>
<Anz. Variablenblöcke Hi,Lo>5
<72><Variablenanzahl>6
<Schreib – DB Hi,Lo><DBW- Adresse Hi, Lo>7
Var-spec-block
evtl. weitere Var- spec- blocks
<00> <09><Länge Nettodaten Hi, Lo>8
<DATEN>
Var-data-block
evtl. weitere Var- data- blocks
1 Länge = Gesamtlänge + 4 (in Byte)2 Gesamtlänge = Länge Data 2 + 18 hex (in Byte)3 Länge Data 2 = Anzahl Variablenblöcke * 10 + Anzahl aller Nettodaten (in Byte) + 24 Pufferlänge = Anzahl Variablenblöcke (auf gerade Anzahl ergänzt ) + 25 Anzahl Variablenblöcke = pro WRITE_VAR- Aufruf können mehrere, unterschiedliche Variablenblocks „gleichzeitig“ adressiert werden, pro Variablenblock ist ein Var- spec- block und ein Var- data- block nötig.
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 12
6 Anzahl der zu schreibenden Datenworte pro Variablenblock7 Adresse des ersten zu schreibenden Datenworts des Variablenblocks im Datenbaustein8 Anzahl der zu schreibenden Nettodaten pro Variablenblock in Byte
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 13
f1.) Antwort DATASNAKE :
Fremdsystem (in HEX) DATASNAKE (in HEX)Quittierung von der letztenSchreibanforderung!<STATUS><32> <07><00> <00><00> <00><00> <0C><Länge Hi, Lo>1
<00> <01> <12> <08> <12><01><08><??><00> <00><00> <00>
<FF> <09><Gesamtlänge Hi, Lo>2
<00> <04><Länge Data 2 Hi, Lo>3
<01> <00> <00> <??>
<Anz. Variablenblöcke Hi, Lo>4
<xx> ...... <xx / 00> 5 Var- data- block
1 Länge = Gesamtlänge + 42 Gesamtlänge Hi, Lo = Länge Data 2 + 83 Länge Data 2 = Anzahl der Variablenblöcke ( auf gerade Anzahl ergänzt ) + 24 Anzahl Variablenblöcke = entspr. der Anfrage im WRITE_VAR- Aufruf5 xx = FF hex : Variable bzw. Variablenblock gesetzt xx = 0A hex : Variable nicht gesetzt (Für jeden Variablenblock ein Datum <xx> als Rückmeldung. Bei ungerader Anzahl d. Variablenblöcke wird 00 hex als Füllbyte angehängt.)
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 14
Beim „Variable schreiben“ in S7-3xx/4xx Steuerungen muß der Schlüsselschalter derSPS auf „RUN- P“ stehen! Die DATASNAKE ist sonst nicht in der Lage, einenvollständigen Datentelegrammzyklus mit der S7 abzuwickeln. Die DATASNAKEsignalisiert dies durch eine Neukonfigurationsanforderung mit gesetztem Fehlerbitim Status – Byte.
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 15
Data 1Block
g.) OP_READ Telegramm (COMMAND = 0) , Aufruf Datenworte lesen:
Fremdsystem (in HEX) DATASNAKE (in HEX)<COMMAND = 00><32> <01><00> <00><00> <01><Länge Data1 Hi, Lo>1
<00> <00>
<04><Anz. Data 1 Blocks><12><0A><10><04><Anz. Worte Hi,Lo><Lese - DB Hi, Lo><84><Adr. Hi> <Mid> <Adr. Lo> 2
evtl. weitere Data 1 Blocks
1 Länge Data 1 = Anzahl Data 1 Blocks * 12 + 22 Adresse des ersten zu lesenden Datenworts in Bit, Bsp: DBW10 ! 00 00 50 hex
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 16
g1.) Antwort DATASNAKE:
Fremdsystem (in HEX) DATASNAKE (in HEX)Quittierung von der letztenLeseanforderung !<STATUS><32> <03><00> <00><00> <01><00> <02><Länge Data 2 Hi, Lo>1
<Error Hi,Lo>
<04><Anzahl Data 2 Blocks>
<FF>2
<04><Anz. Daten in Bit Hi,Lo>3
<Daten + evtl. 1 Füllbyte>
evtl. weitere Data 2 Blocks
1 Länge Data 2 = Anzahl Data 2- Blocks * (4 + Anzahl Daten in Byte + evtl. 1 Füllbyte (wenn Anz. Daten
ungerade ist und es sich nicht um den letzten Data2 Block handelt.))2 kein Fehler: <FF> , Aufbau des Data 2- Blocks wie oben. Fehler : <z.B. 0A> (keine Daten) , Aufbau des Data 2 Blocks: <0A> <00> <00> <00> , keine Daten3 Anzahl Daten in Bit: entspricht der Anzahl Datenworte * 16
Data 2 Block
DATASNAKE MPI Dokumentation Firma Schildknecht
Data 1Block
h.) OP_WRITE Telegramm (COMMAND = 0), Aufruf Datenworte schreiben:
Fremdsystem (in HEX) DATASNAKE (in HEX)<COMMAND = 00><32> <01><00> <00><00> <01><Länge Data1 Hi, Lo>1
<Länge Data 2 Hi, Lo>2
<05><Anz. Data 1, Data 2 Blocks>3
<12><0A><10><04><Anz. Worte Hi,Lo><Schreib - DB Hi, Lo><84><Adr. Hi> <Mid> <Adr. Lo> 4
evtl. weitere Data 1 Blocks
<00> <04><Anz. Daten in Bit H<Daten> + evtl. Füllb
evtl. weitere Data 2 Blocks
<BCC2>
1 Länge Data 1 = Anzahl D2 Länge Data 2 = Anzahl D3 Zu jedem Data 1- Block4 Adresse des ersten zu les5 Anzahl Daten in Bit: ent6 Wenn Anzahl Datenbyte
Data 2- Block
Seite: 17
i,Lo>5
yte6
ata 1/ 2 Blocks * 12 + 2ata 1/ 2 Blocks * 4 + Summe Nettodaten in Byte + evtl. 1 Füllbyte pro Block
gehört 1 Data 2- Blockenden Datenworts in Bit, Bsp: DBW10 ! 00 00 50 hexspricht der Anzahl Datenworte * 16s ungerade und nicht der letzte Data 2- Block 1 Füllbyte
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 18
h1.) Antwort DATASNAKE:
Fremdsystem (in HEX) DATASNAKE (in HEX)Quittierung von der letztenLeseanforderung !<STATUS><32> <03><00> <00><00> <01><00> <02><Länge Data 2 Hi, Lo>1
<Error Hi,Lo>
<05><Anzahl Data 2 Blocks>
<FF>2
evtl. weitere Data 2 Blocks
1 Länge Data 2 = Anzahl Data 2 Blocks2 kein Fehler, d.h. Daten geschrieben: <FF> , Fehler: <0A>
Data 2 Block
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 19
Mit der Funktion OP_WRITE lassen sich Daten in die Steuerung schreiben,unabhängig von der Stellung des Schlüsselschalters an der S7 !
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 20
5.Beschreibung der Funktionsbytes:
COMMAND Byte
<00> ... Datenanforderung (Lesen /Schreiben)<01> ... MPI_BRIDGE_INIT<02> ... MPI_BRIDGE_DISCONNECT<03> ... STATUS_ABFRAGE<88> ... MPI_BRIDGE_RESET
STATUS Byte:
Bit Name BedeutungB0 CMD_ACCEPT Kommando angenommen.
(Statusabfragen werden immer angenommen )
B1 BUSY Kommando wird noch bearbeitet(Wird bei Setzen von B2 gelöscht)
B2 ERROR Allgemeiner Fehler(Wird derzeit nur in Verbindung mit B3 gesetzt)
B3 LINK_ERROR Verbindung abgebrochen, Neukonfigurationerforderlich
B4 CONFIG_ERROR Konfigurationsfehler(Überprüfung auf HSA < 20hex., HSA ≥ PA bzw.SA, PA ≠ SA, GAP_UP = 0)
B5 ReserviertB6 NO_PARTNER Partnerstation nicht vorhanden
(bleibt nach Erstinitialisierung noch anstehen, bisDATASNAKE Kommunikation zum Partneraufgenommen hat)
B7 BUS_FAIL keine weitere aktive Station am Bus(es ist keine aktive Station am Bus, mit der Datenausgetauscht werden könnten)
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 21
Data 1Block
6. Beispiele :
6.1 L1- Protokoll, OP_READ_TELEGRAMM:
Fremdsystem (in HEX) MPI Bridge (in HEX)<BR> <41>
<01><40> <Länge L1>1<BCC1><00> <00><32> <01><00> <00><00> <01><Länge Data1 Hi, Lo>2
<00> <00>
<04><Anz. Data 1 Blocks><12><0A><10><04><Anz. Worte Hi,Lo><Lese - DB Hi, Lo><84><Adr. Hi> <Mid> <Adr. Lo> 3
evtl. weitere Data 1 Blocks<BCC2>
Quittierung von der letzten Leseanforderung !<40> <Länge L1>4 <BCC1><00> <STATUS><32> <03><00> <00><00> <01><00> <02><Länge Data 2 Hi, Lo>5
<Error Hi,Lo>
<04><Anzahl Data 2 Blocks>
<FF>6
<04><Anz. Daten in Bit Hi,Lo>7
<Daten + evtl. 1 Füllbyte>
evtl. weitere Data 2 Blocks
<BCC2>
<40> <QUIT> <BCC3>
1 Länge L1 = Länge Data 1 + 0B hex.2 Länge Data 1 = Anzahl Data 1 Blocks * 12 + 23 Adresse des ersten zu lesenden Datenworts in Bit, Bsp: DBW10 ! 00 00 50 hex4 Länge L1= Länge Data 2+ 0F hex5 Länge Data 2 = Anzahl Data 2- Blocks * (4 + Anzahl Daten in Byte + evtl. 1 Füllbyte (wenn Anz. Daten
ungerade ist und es sich nicht um den letzten Data2 Block handelt.))6 kein Fehler: <FF> , Aufbau des Data 2- Blocks wie oben. Fehler : <z.B. 0A> (keine Daten) , Aufbau des Data 2 Blocks: <0A> <00> <00> <00> , keine Daten7 Anzahl Daten in Bit: entspricht der Anzahl Datenworte * 16
Data 2 Block
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 22
6.2 3964R- Protokoll, OP_READ_TELEGRAMM:
Fremdsystem (in HEX) MPI Bridge (in HEX)<02>
<10><00>1
<32> <01><00> <00><00> <01><Länge Data1 Hi, Lo>2
<00> <00>
<04><Anz. Data 1 Blocks><12><0A><10><04><Anz. Worte Hi,Lo><Lese - DB Hi, Lo><84><Adr. Hi> <Mid> <Adr. Lo> 3
evtl. weitere Data 1 Blocks<10> <03> <BCC>
<10> <02><10>
Quittierung von der letzten Leseanforderung !<STATUS> 4
<32> <03><00> <00><00> <01><00> <02><Länge Data 2 Hi, Lo>5
<Error Hi,Lo>
<04><Anzahl Data 2 Blocks>
<FF>6
<04><Anz. Daten in Bit Hi,Lo>7
<Daten + evtl. 1 Füllbyte>
evtl. weitere Data 2 Blocks
<10> <03> <BCC><10>
1 DLE- Verdopplung beachten !2 Länge Data 1 = Anzahl Data 1 Blocks * 12 + 23 Adresse des ersten zu lesenden Datenworts in Bit, Bsp: DBW10 ! 00 00 50 hex4 DLE- Verdopplung beachten !5 Länge Data 2 = Anzahl Data 2- Blocks * (4 + Anzahl Daten in Byte + evtl. 1 Füllbyte (wenn Anz. Daten
ungerade ist und es sich nicht um den letzten Data2 Block handelt.))6 kein Fehler: <FF> , Aufbau des Data 2- Blocks wie oben. Fehler : <z.B. 0A> (keine Daten) , Aufbau des Data 2 Blocks: <0A> <00> <00> <00> , keine Daten7 Anzahl Daten in Bit: entspricht der Anzahl Datenworte * 16
Data 2 Block
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 23
DATASNAKE Stückliste
V1.0 Stand: 4/99
l.Nr Position Anz. Bezeichnung Hersteller Preis in DM(pro 100St.)
1 IC 1 1 MPI-Controller Schildknecht 88,000 DM2 LP 1 Leiterplatte Diverse 8,000 DM3 zu IC 1 1 Sockel PLCC-44 3M 1,000 DM4 IC 2 1 DS1232 SO-8 Dallas 2,000 DM5 IC 3-5 3 HCPL0601 SO-8 HP 6,600 DM6 IC 6 1 75ALS176 SO-8 Texas Instruments 2,380 DM7 IC 7 1 74HC14 SO-14 Texas Instruments 0,360 DM8 DCDC1 1 5V 1W DC/DC Burr Brown 9,800 DM9 Q 1 1 12MHZ Quarz Seiko-Epson 1,000 DM
10 DIL 1 1 2fach DIL-Schalter C+K 1,170 DM11 BU 1 1 9p. DSUB Buchse Harting 1,000 DM12 C 3-6 4 100N G1208 diverse Hersteller 0,123 DM13 C 1+2 2 22p G1208 " 0,560 DM14 R 6 1 1K G1208 " 0,009 DM15 R 16+9 2 10K G1208 " 0,009 DM16 R 14+15 2 100K G1208 " 0,009 DM17 R 3+4,21 3 2K2 G1208 " 0,009 DM18 R1,2,11,17-19 6 330R G1208 " 0,009 DM19 R 5 1 4K7 G1208 " 0,009 DM20 R20 1 200R G1208 " 0,009 DM21 R 7 1 0R G1208 " 0,009 DM22 R 8 1 100R G1208 " 0,009 DM23 D 1 1 Z4,7V Mini-Melf " 0,130 DM
Summe: 122,204 DM
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 24
MPI_EVA Demonstrationssoftware
Version 1.1 (L1 Protokoll)
Version 1.2 (L1 Protokoll)
Version 1.2R (3964R Protokoll)
Schildknecht IndustrieelektronikEinsteinstr. 10
74372 SersheimE-Mail: [email protected]
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 25
Die PC- Software MPI_EVA.EXE ist ein DOS- Programm und dient der einfachenund schnellen Inbetriebnahme der Schildknecht DATASNAKE MPI zur Ankopplungvon Fremdsystemen an SIEMENS Simatic S7- Steuerungen über die MPI-Schnittstelle.
Die Ansteuerung der DATASNAKE vom PC aus erfolgt über die serielle Schnittstelle.Es werden die Funktionen „Variable schreiben“ und „Variable lesen“ (Version 1.1),sowie die Funktionen „Operandenbereiche schreiben /lesen“ (Version 1.2)unterstützt.Ein eingebauter Schnittstellenmonitor verdeutlicht das Ansteuerverhalten derDATASNAKE auf der seriellen Schnittstelle.
Systemvorraussetzungen: DOS ab 5.0, WIN 95 bzw. 98 im DOS- Modus,serielle Schnittstelle COM1 bzw. COM2.
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 26
Bedienung:
Nach dem Aufruf von MPI_EVA.EXE ist der Startbildschirm sichtbar.Mit der Tasten <P> gelangt man zur Parametereingabe. Mit <w> wird zumKommunikationsbildschirm gewechselt. <x> beendet das Programm.
Parametereingabe:Hier werden Einstellungen für die Kommunikation zwischen PC- und DATASNAKE,sowie zwischen S7- Steuerung und der DATASNAKE vorgenommen.Die Einstellungen für die MPI- Kommunikation müssen anschließend alsKonfigurationstelegramm zur DATASNAKE übertragen werden.
COM: Die Einstellung für die PC- Kommunikation beschränkt sich auf die Wahl derseriellen Schnittstelle (COM1, COM2). Die anderen Schnittstellenparameter sind fixeingestellt auf 38400 Bd, 8e1.
MPI- Adresse DATASNAKE:Busadresse der DATASNAKE auf der MPI- Schnittstelle.
MPI- Adresse Partnerstation:MPI- Adresse der Steuerung, mit der kommuniziert werden soll.
Höchste Stationsadresse:Für die selbständige Erkennung andere MPI- Teilnehmer hier bitte die höchste amBus vertretene Teilnehmeradresse einstellen. Ist die höchste Teilnehmeradressenicht bekannt, den Maximalwert eintragen (maximal 31, Vorschlag: 31)
GAP- Aktualisierungsfaktor :Abfragefrequenz für die Erkennung neu hinzukommender MPI- Bus- Teilnehmer.(1 = hoch, 255 =niedrig) (Hinweis: Bis zur DATASNAKE-Version 1.84 hier einen Wert≤ 3 einstellen.
Data- Timeout: (Version 1.2,)ab DATASNAKE- Version 2.00 kann über Data- Timeout die Wartezeit auf eine nochausstehende Datenanforderung parametriert werden. Typisch: <01>
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 27
Kommunikationsbildschirm:
Dient der Eingabe von Sollwerten, die an die Steuerung übertragen werden sollen,sowie zur Darstellung von Istwerten aus der Steuerung.Über die Tasten „o,L,S,K,d,a“ werden Befehle an die DATASNAKE ausgelöst.Das Protokollfenster zeigt den Datenverkehr auf der seriellen Schnittstelle des PC.
Taste <e> :Eingabe von Datenbaustein, Anzahl der Datenworte, Adresse des ersten Datenwortsim Datenbaustein für Lesen und Schreiben. Beim Schreiben zusätzlich Eingabe derWerte, die in die S7 geschrieben werden sollen.
Taste <o> :Absenden eines Konfigurationstelegramms an die DATASNAKE. Erforderlich nachPower- up der DATASNAKE als erstes zu sendendes Telegramm. Nach erfolgreicherKonfiguration geht die DATASNAKE an den Bus und versucht eine Verbindung zurSteuerung auf-zubauen. Ist die Verbindung aufgebaut, liefert die DATASNAKE einStatusbyte <01> bzw. <02>. (siehe Protokollfenster).Danach können Lese- bzw. Schreibanforderungen an die DATASNAKE gesendetwerden.
Taste <L> : Absenden einer Leseanforderung.
Taste <S> : Absenden einer Schreibanforderung
Taste <K> (Vers. 1.2R Taste <a>):Absenden eines Kurztelegramms zur Statusabfrage bzw. zum Pollen von Antwortenauf Schreib- oder Leseanforderungen.
Taste <D> : (nur Version 1.2)Absenden eines Telegramms zum Verbindungsabbau. Die DATASNAKE bautdaraufhin die bestehende logische Verbindung zur Steuerung ab.
Taste <R> : (nur Version 1.2)Absenden eines Reset- Telegramms. Die DATASNAKE nimmt daraufhin ihrenEinschaltzustand ein.
Taste <z> : Zurück zum Startbildschirm
Hinweise:1.) Aus Darstellungsgründen wurde die Datenübertragung auf 12 zu lesende und zu
schreibende Variablen begrenzt.2.) Die Ansteuerung beschränkt sich auf einen zu übertragenden Variablenblock pro
Telegramm. Es können aber auch mehrere Variablenblocks in einem Telegrammangefordert bzw. geschrieben werden. (siehe Doku DATASNAKE MPI)
3.) Werden Daten aus der Steuerung empfangen, wird das Datenfenster fürLesedaten aktualisiert.
4.) Sollen Variable geschrieben werden, muß der Schlüsselschalter an der S7 in derStellung „RUN- P“ stehen.
5.) Eingestellte Datenbausteine und Variablenadressen müssen in der S7 vorhandensein.
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 28
Startbildschirm :
Parametereinstellung:
Kommunikationsbildschirm :
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 29
Pinning DATASNAKE MPI- Chip :
Signalname Gehäuse PLCC44 Gehäuse TQFP 44
OSC 1 21 15OSC 2 20 14TX_ENA 2 40reserviert 3 41RXD_TTL 4 42TXD_TTL 5 43LED (Kathode) 6 44TX_ENA Pol. -Umschaltung
Pin 7 Brücke nach Pin 6 Pin 1 Brücke nach Pin 44
RESET 10 4Pull-Up-Widerstand (10k) 35 29Vcc 44 38Gnd 1, 22, 23 16, 17, 39Strobe (WatchdogTriggerResetbaustein)
33 27
RXD 11 5TXD 13 7INT0 14 8
6 1 40
7
17
18 28
39
29
PLCC 44
44 34
1
11
12 22
33
23
TQFP
DATASNAKE MPI Dokumentation Firma Schildknecht
Seite: 32
Sch
altu
ngsvo
rschla
g m
itin
vertie
rtem
TX
_E
NA
,(E
insch
alt- /R
ese
tverh
alte
nve
rbe
ssert )