Wago PFC200 Linux-Ebene RS232 Empfangen geht nicht

sonny_b

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Wago: WAGO 750-8207 PFC200 CS 2ETH RS 3G
Firmware: 02.06.20(09)
Linux: barebox 2014.11.0
Hallo,
ich bin neu hier im Forum als Beitragsersteller, bis jetzt war ich nur Leser der Beiträge.

Was möchte ich tun?

Ich möchte mit einem C/C++-Programm Daten senden/empfangen via RS232. Dies muss auf der Linux-Ebene erfolgen.

Wie bin ich vorgegangen?
Ich habe in der Weboberfläche Serial- und Serviceinterface auf Linux-Console gestellt. Ich habe das kompilierte Programm hochgeladen auf die Wago. Auf Wago-Ebene auf das Programm die Rechte zur Ausführung zu gewiesen und dann ausgeführt.
Das Prorgramm startet, baut alles auf und sendet fleißig Nachrichten via RS232 (simples Ping/Pong-Verfahren). Antwortet die Gegenseite auf diese Nachricht, grätscht sofort die Terminalkonsole dazwischen und will anscheinend einen Login anbieten. Diese fängt folglich die Nachricht ab und somit kommt diese nicht mehr bei meinem Programm an.
Testweise habe ich das Serialinterface der PLC-Ebene zu gewiesen. Jetzt kann ich keine Nachrichten mehr senden, aber dafür einwandfrei empfangen und verarbeiten.

Über ps -aux | grep serial habe ich mir ausgeben lassen wer alles auf die RS232-Schittstelle zugreift. Es ist der Getty-Dienst.
Den habe nach dem mir bekannten Standardverfahren(in manchen Wago Dokumentationen sogar beschrieben) versucht zu "deaktivieren", also /etc/inittab die betreffene Zeile auszukommentieren. Es hilft nicht. Ein neuladen mit "init q" geht nicht.
Den Dienst mehr als 5 mal killen geht auch nicht. Der verhält sich wie ein Kopf einer Hydra, er kommt immer wieder. Nach einem Reboot ist die auskommentierte Zeile wieder einkommentiert.

Was muss machen, damit ich die RS232-Schnittstelle auf der Linux-Ebene nutzen kann, also senden und empfangen?

Ich hoffe jemand kann mir helfen.:)
 
Hast du die Linux Toolchain von Wago?
Ich meine, es gibt ein HowTo für die Serielle Schnittstelle unter C/Cpp
 
Das kenne ich habe es auch zum Teil installiert. Der Schritt für die Gesamtkompilierung des Images scheitert aktuell. Die Toolchain ist aber installiert.

Das Problem sehe ich aber weniger auf der Toolchaineben, als auf der Linuxebene.
Ich habe mit Screen (Programm zum Testen von seriellen Schnittstellen; senden/empfangen) das gleiche Problem.
Wenn ich senden will, muss ich RS232 an die Linuxconsole übergeben, will empfangen muss ich an die Codesysebene übergeben. Dies kann in meinen Augen nicht korrekt sein oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

das Problem hatte ich auch mal. Folgende Wagoanleitung half mir damals:

Step1: Changing ownerchip of "/dev/ttyO0"
Variante A - WebBasedManagement(WBM)
1A.1) Open WBM in browser(https://<ip or hostname>)
1A.2) Ignore x509 certificate warning and proceed.
1A.3) Navigate to "Administration" --> "Serial Interface"
1A.4) Login as user/password (Default: "admin"/"wago")
1A.5) Select "unassigned(usage by Application, Libraries, CoDeSys)"
1A.6) Press button "Change Owner"

Step2: Block usage of "/dev/ttyO0" by CoDesys
2.1) Start ssh-client, such as putty
2.2) Open ssh session to PFC200
2.3) Login as user/password (Default: "root"/"wago")
2.4) Open CoDeSys-Runtime config file "/etc/rts3s.cfg" in editor
> vim /etc/rts3s.cfg
2.5) Delete complied lines with 'dd', or switch into insert mode by pressing key 'i'
2.6) Comment out or delete sections "RS232" and "MODBUS_RTU"
;[RS232]
;PORT=1
;PARITY=2
;BAUDRATE=115200
;STOPBITS=0
;DEVICEFILE=/dev/ttyO0

;[MODBUS_RTU]
;Enabled=0
;Node_ID=1
;Timeout=60000
;Log=0
;Interface=/dev/ttyS0
;Baud=19200
;Data_Bits=8
;Parity=Even
;Stop_Bits=1
;Flow_control=None
2.7) Enter command mode by press key [Esc]
2.8) Save changes and exit editor by typing ':wq' and [Enter]
2.9) Restart PFC200

Now the onboard serial interface is yours....
Without additional actions it will operate as RS485!!!

Hoffe das hilft dir.


Gruß
 
Habe ich probiert. Führt leider nicht zum Ziel. Die Manipulation der Inittab führt zu einem halbwegs gewünschten Ergebnis, aber trotzdem pumpt er bei jedem Bootvorgang alles über die serielle Schnittstelle aus.
 
Zuletzt bearbeitet:
Zurück
Oben