Wago 750-652

sct

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich versuche mit der 750-652 Klemme eine RS232 Verbindung mit einem PC herzustellen.
Dies sind leider meine ersten Versuche mit einer SPS.
- Beim Betätigen des Inputs "IN1" soll ein String übertragen werden.
- Ich verwende die "Serial Interface.lib" von Wago.
- Im Anhang befindet sich der Aufbau.

Ich vermute, dass ich schon einen grundlegenden Fehler bei der Initialisierung mache, da bei Betätigung zwar was am PC ankommt, jedoch überhaupt keinen Sinn macht. Die Baudrate stimmt, das habe ich schon getestet....

Vielen Dank schon mal im Vorraus.

Picture_Codesys_example.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
wie lange steht der IN_1 an? Besser wäre es den xStart_Send durch die positive Flanke des IN_1 anzutriggern.
Was genau kommt denn am PC an?
Du verwendest einen Seriell-USB-Adapter? Stimmt die Verdrahtung? Bevor Du ja sagst, bitte nochmals prüfen, da das in 90% der Fälle die Ursache ist. Stimmen die Einstellungen in Deinem Software-Tool?
Anm.: Deine Abarbeitungsreihenfolge ist recht chaotisch.
 
Die ab Werk oder via IO-Check gesetzten einstellungen werden vom FB Serial_Interface überschrieben! Ob RS-232 oder RS-485 ergibt sich automatisch aus Deinen Parametern. Die Kommentare in den Datentypen der SerComm.lib geben Dir hier einen guten Einblick, wenn nicht bereits alle Einstellungen vorgegeben sind.
Im Handbuch der Klemme findest Du auch die LED der Klemme beschrieben, welche Dir anzeigt, mit welcher Busarchitektur die Klemme gerade operiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
vielen dank euch.
Leider bringt das mit der Flankentriggerung an "xSTART_SEND" nichts, die LEDs am Baustein passen auch, d.h. "Betriebsbereitschaft", "RS232" und bei TX leuchtet die TX LED.

Die Verdrahtung der HW passt auch.
Am PC kommt bei einem Sendestring "elbe" am Terminal: "4D D2 AA FA 00" an, was nichts sinnvolles in Ascii ergibt.

Kann es sein, dass mit meiner Stringdefinition oder Übergabe des Strings was nicht passt?
 
Zuletzt bearbeitet:
Ich habe das Problem, es wird als "Idle Low" ausgegeben, was natürlich kein UART Standard ist. Weiß jemand wo ich das beeinflussen kann?
 
Hallo Sct,

xStart_SEND muss bei positiver Flanke am IN_1 (Taster an einem digitalen Eingang?) "dauerhaft" gesetzt werden. Dann beginnt der FB Serial_interfaces das Senden. Das Rücksetzen übernimmt aber der FB Serial Interface, der damit auch signalisiert, dass das Telegramm vollständig gesendet wurde. Es hilft da nicht einfach nur mit RTrig zu arbeiten. Das Siganl wäre im nächsten Programmzyklus wieder False. Wenn aber xStart_SEND am Eingang des FB's von außen zurückgesetzt wird, wird damit die Übertragung abgebrochen! Also immer warten, bis der FB das Rücksetzen übernommen hat und auch erst dann, wenn das passiert ist, den nächsten Sendevorgang auslösen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich gebe zu, die Formulierung "durch die positive Flanke des IN_1 anzutriggern" kann man natürlich als R_TRIG auslegen. Gemeint war es aber so, wie der Support es geschickter formuliert, das dauerhafte aber einmalige Setzen bei einer positiven Flanke.
 
Aber wenn der FB das Rücksetzen selbst übernimmt, dies kann aber nicht der Input xSTART_SEND sein, da hier ja noch von außen High anliegt. Welches Signal signalisiert mir dann, dass die Übertragung abgeschlossen ist?

Wenn ich mir die Signale am Oszi decodieren lasse, stimmt der String den ich übertragen will. Jedoch ist das Signal invertiert, was einer Polarity "active low" entspricht. UART ist jedoch standardmäßig "active high", somit kann der PC es natürlich nicht richtig decodieren. Ich finde aber am FB keinen Möglickeit dies umzustellen?!
Vielen Dank
 
xSTART_SEND ist ein Eingangang mit IN-OUT-Deklaration, d.h. der FB kann eine dort anliegende Variabe auch verändern. Das bedeutet aber auch, dass da eine Variabe anliegen muss, die beschreibbar ist - als nicht Dein IN_1 oder der Ausgang eines anderen FB. Du setzt also bei positiver Flanke des IN_1 einmalig eine Variable, am einfachsten mit Namen xSTART_SEND, und lässt sie ausschließlich vom FB zurücksetzten. Damit bist Du unabhängig vom IN_1 und weißt auch, wann das Senden abgeschlossen ist.
 
Zurück
Oben