S7-200 Kommunikation mit XMT

woodiii

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich könnte noch mal ein klein wenig Hilfe gebrauchen;
folgendes will ich machen: Einen Befehl per XMT an eine serielle Kommunikationseinheit senden, warte auf deren Antwort, wenn Antwort erhalten, dann sende neuen Befehl. Ende der Kommunikation.

Das klappt aber irgendwie noch gar nicht.
Habe mir dafür mal das Beispiel Programm "Tipp 52" zur Hilfe genommen, aber irgendwie versucht der Autor da das Rad neu zu erfinden und ich steige nicht durch.

Das Senden per

Code:
LD SM0.1
MOVB 16#E9
XMT VB580,0
ist kein Problem.
Aber wie genau muß ich es machen, dass er dann auf die Antwort (sagen wir "0") wartet, und zwar nur eine Null, danach wieder auf senden geht und den nächsten Befehl sendet?

"Mein" Ansatz wäre wie im Tipp über

Code:
MOVB 16#94, SMB 87
MOVW +50, SMB90
MOVW +4000, SMB92
MOVB 1, SMB94
CALL SBR3

............
SBR3:

LD SM0.1
XMT VB600,0

Das läuft aber leider nicht. Nach dem Senden passiert dann nämlich nichts mehr.
Wäre nett, wenn mir dabei jemand helfen könnte.


- S7-200, CPU 224 XP,
- RS232/PPI Multi-Master-Kabel
- Hyperterminal
- STEP7 Micro/Win
 
Zuletzt bearbeitet:
Hallo
nach dem Senden muss jeweils zuerst die Schnittstelle auf 'Daten empfangen' umgestellt werden. RS485 ist unidirektional und kann nur immer in die eingestellte Richtung 'funken'. Das ist komplett anders wie in RS232 - (bzw. muss man sich alternativ einen passenden Adapter bauen der das automatisch macht ...)
Bei Entgegennahme nur eines Bytes (Ackknowlege Zeichen) kann man das auch aus SMB2 abholen - dazu muss die freie Kommunikation aber richtig eingestellt sein.
Bei den Tips&Tricks ist auch nicht das Rad erfunden worden, der dort vorgestellte Zustandsautomat ist im Endeffekt genau das System (und zudem fast das einzige) was als reine Softwarelösung dann richtig funktioniert. Es mus in jedem Fall nach Umstellen der Schnittstelle jeweils zuerst ein voller Zyklus durchlaufen werden bis die Änderung übernommen ist.
Man sieht es auch in 'Zielsystem/Informationen" Wenn dort angezeigt wird 'senden und empfangen gleichzeitig aktiv' funktioniert die Kommunikation nicht (richtig) und der 'verarbeitet' im Normalfall sein eigenes Echo mit.
Je nach verwendetem Adapterkabel und wie man die Kommunikation weitergehend aufbaut (interruptabhängig etc.) mus das genau abgeglichen sein und zusammenpassen. :rolleyes:

p.s.: Irgendwo im Forum ist von 2004 hier noch ein Beitrag wo diese Kommunikation als Beispiel beschrieben ist. Die funktioniert so auch in der Isel.
SBR3:
LD SM0.1
XMT .........
Das läuft aber leider nicht.
... und wohl auch in 100 Jahren noch nicht. SM0.1 ist der erste Zyklus - und nur der. Den gibt es nur nach Anlauf der CPU, nach einstellen der Schnittstelle (was man evtl. in SM0.1 machen kann) muss ein ganzer Zyklus durchlaufen sein und im nächsten Zyklus kann gesendet werden. Ungefähr so:
Netzwerk 1:
SM0.1 ---> stelle Schnittstelle ein setze Merker 25.5
Baue Tabelle für XMT
springe ans Ende
Netzwerk 2:
wenn Merker 25.5 ----> XMT irgendwas
reset Merker 25.5
Netzwerk 3:
wenn alles gesendet stele Schnittstelle aus oder um ...
.....
Netzwerk 123:
Stelle schnittstelle ein
setze Merker 25.5
Baue neue Tabelle XMT
// und wenn der oben wieder ankommt sendet der auch wieder
 
Zuletzt bearbeitet:
Zurück
Oben