Freie Kommunikation bei S7-200

P

paladin112

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, ich möchte gerne mit der S7-200 Daten in der freien Kommunikation über die Schnittstelle einlesen. Die Daten werden in einem RS-485 Ascii Protokoll übermittelt.

Ich hab mir bereits das Beispiel im S7-200 Handbuch auf Seite 95/96 angeschaut und ausprobiert. Dort wird die ankommende Meldung gleich wieder gesendet.

Soweit so gut, doch jetzt würde ich gerne nicht nur die Meldung die Empfangen wurde einfach wieder senden, sondern eine andere Meldung senden. Ich hab aber absolut keine Idee, wie ich das machen soll.
Das leigt wahrscheinlich daran, das ich nicht genau nachvollziehen kann wie die Daten gespeichert werden und wie ich auf solche Daten zugreifen kann.

Ich setze die S7-222 und Step7 Micro Win V4.0.1.10 ein.

mfg Florian Kaufhold
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke schon mal für die Antwort, ich werde das Teil mal testen. Ist sicher auch interessant.

Ich glaub ich hab mich da etwas falsch ausgedrückt, ich möchte die S7-200 in ein bestehendes RS485 Bussystem integrieren.

mfg F.Kaufhold
 
>>>Das leigt wahrscheinlich daran, das ich nicht genau nachvollziehen kann wie die Daten
>>> gespeichert werden und wie ich auf solche Daten zugreifen kann.

Am einfachsten ist zuerst einen 'Satz' in den Datenbaustein zu schreiben. Sieht etawa so aus:

VB500 16#10 // Länge aller Zeichen die gesendet werden (sollten)
VB501 'erna sagt hallo', 16#0A // das Endezeichen muss eigentlich auch passend konfiguriert werden.

Diesen verschickst du dann mit XMT (gilt nur für freie Kommunikation), in etawa so: ('OB1')

LD E0.0
EU //positive Flanke
XMT VB500, 0

Dazu _muss_ in VB500 die Anzahl zu sendender Bytes (Zeichen) stehen, also 16. (mit space und Endezeichen (hier 0x0A)). !!!!

Bis dahin ist das ganz einfach - schwieriger wird vorhergehende richtige Konfiguration der Sondermerker. Die soolten in Etwa stimmen, weil sonst garnichts geht. Dort werden bspw. Baudrate, Parität, Daten und Stopbits sowie weitere 100 'nützliche' Dinge eingestellt. Und wird _vor allem_ (!!!) überhaupt erst der Sender freigegeben !!!
Wenn der nicht freigegeben ist kannste ewig warten, es geht nichts raus. Weiss diese Einstellung jetzt aus dem Kopf nicht, glaube aber zum Senden bei 19200Bd. war ein Weg:
(kannste im erstem Zyklus z.Bsp. einstellen - ums erstmal überhaupt hinzudrehen)
LD SM0.0
MOVB 9, SMB30
MOVB 0, SMB86
MOVB 16#E0, SMB87
MOVB VB10, SMB88 //VB10 == Adresse der CPU könnte auch 16#02 stehen
MOVB 16#0D, SMB89
MOVB 10, SMB94


Ich war da ewig nicht mehr bei, sollte mit der Einstellung schon fast möglich sein bei 19200Bd., (ohne Parität, 8Zeichen) zu senden (XMT) und bei Einbau mit RCV zu empfangen - (beim Empfang wird in dieser Config die Adresse der CPU ausgewertet). Ohne Gewähr - aber damit müsste es sich in der Minimalform am Terminal lesen lassen.
 
Zurück
Oben