Beckhoff Verbindung zu externem Gerät über RS232 Schnitstelle mit EL6001

Pyrotika

Level-1
Beiträge
4
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen Guten Tag,

ich hab mich gerade hier im Forum angemeldet da es anscheinend hier viele Menschen gibt die ebenfalls mit Beckhoff (Twincat) arbeiten. Ich versuche inzwischen seit 2 Tagen mit dem EL6001 Modul ein Julabo Kältegerät anzusteuern.

Zu erst habe ich einfach drauf los getestet hab den Befehl in das Beispielprogramm von beckhoff gepackt und los... Fail. (Verdrahtung war da schon zu diesem Zeitpunkt richtig, auch wenn ich das inzwischen noch drei mal geprüft hab...

Im Anschluss hab ich das gerät diereckt mit einem PC verbunden und mit dem Julabo Programm angesteuert.
Das Funktioniert.

Als nächstes habe ich mit "Free Serial Port Monitor" den befehl aufgezeichnet. Dieser liegt nun in Aski II, hex und Binär vor.

Danach habe ich mir erneut meine Programierung mit der Beispiel Sofware angeschaut. Hier bei habe ich festgestellt das die Zeichen Sauber in meinen definierten TXbuffer eingeladen soweit richtig sind aber der "CR" >(Carriage Return) fehlt. Diesen habe ich dann Manuell hinten angefügt. Für ähnlich verzweifelte hier der code:

cmd:= CONCAT (befehl,' ');
cmd:= CONCAT (cmd,par);

(*CR Anfügen: pb(pointer to byte) kann so an jede belibige stelle des String ein zeichen setzen*)
pb:= ADR(cmd);
pb:= pb + INT_TO_DWORD(LEN(cmd));
pb^:= 16#0D;
pb:= ADR(cmd);

FOR i:=0 TO LEN(cmd) DO
COMout_EL6001:=pb^;
pb:= pb + INT_TO_DWORD(1);
END_FOR

(* ich hab hier den Buffer übersprungen aufgrund des nachfolgenden Problems*)

Die so entstehende Zeichen folge deckt sich 1 zu 1 mit den Aufgezeichneten aus der Julabo Firmware.
So weit so gut.

Nun habe ich im System Manager festgestellt das diese Zeichen aber im Buffer verweilen und nicht in die Klemme selbst geladen werden. Nach Stunden langen versuchen die Bibliothek zu verstehen, was aufgrund mangelhafter Dokumentation echt schwer ist, habe ich mich entschieden den Buffer zu überspringen und das direckt in die Klemme zu schreiben. Wie oben Erwähnt.
Auch das funktioniert...

ABER

der letzt Schritt diese Daten aus der klemme zum Gerät zu senden Will und will nicht ausgeführt werden.
Ich hab versucht die einzelnen boolschen Variablen zu forcen damit er sendet, aber er tut nix, oder zumindest sehe ich nix.

Kann mir jemand sagen wie ich sehen kann ob die klemme sendet oder wie ich sie dazu bringe was zu senden?

Die boolschen variablen sind im blauen Kasten und die Daten sind im Rotenkasten.

Für Hilfe wäre ich sehr Dankbar.
Neue Ansätze sind auch immer Wilkommen;)

Gruß Pyrotika

Screen.jpg
 
Hallo Pyrotika,

das Problem hatte ich auch. Du musst im System Manager den Handshake von 1 auf 0 setzen, da dein Julabo Kältegerät anscheinend keinen an die Klemme sendet.
Unter E/A Geräte -> Deine Klemme -> CoE -Online -> Com Settings -> RTS/CTS
 
Moin moin mkd und Onkelweed,

Schon mal danke das wer mein Problem gelesen und geantwortet hat;)

leider hab ich den rts/CTS schon aktiviert. auch hab ich die Baudrate und die benötigten bits eingestellt...
und ja die even/ ODD/ none Einstellung stimmen auch über ein....

Mit der Doku meinte ich die Hinweise der COMlibV2.
Die andere Doku von beckhoff finde ich auch bescheiden weil sie Unglaublich viel aber nie das wirklich entscheidende sagt. Kommt mir zu mindest so vor...

Gruß Pyro
 
Sooo nächstes Update:

in der Zwischenzeit hab ich einen Adapter gebaut der direkt von der sps an meinen COM port am PC geht damit ich mit dem Monitor aufzeichnen kann was das EL Modul macht.
Ziemlich genau gar nix.
Hab jetzt gekreuzte Verdrahtung eben so wie ungekreuzt, alle Kombinationen der boolschen Zusatz ein und Ausgänge durch.

Daher denke ich nun das man das EL Modul initialisieren muss...
mal schauen ob die lib doch noch was sinnvolles ausspuckt...

Gruß Pyro
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier bin ich nochmal^^

Also inzwischen funktioniert es. Ich Hab einfach nochmal die "Passive" Funktion aus dem Beispielprogramm eingefügt. Dann hatte ich leider noch nicht die beiden Struktur teile "Status" und "Ctrl" im Systemmanager Verknüpft. Das Datenformat EL6inData22B bzw. EL6outData22B beinhalten auch eine Struktur variable welche mit den beiden Ein und Ausgangs Mastervariablen verknüpft werden müssen. des weiteren hab ich noch ne Macke in meiner CTS Leitung gefunden.... Naja viel Arbeit aber jetzt geht es.
Sollte jemand ähnliche Probleme haben wir ich bin ich gerne bereit meine gesammelten Erfahrungen zu teilen;)

Gruß Pyrotika
 
Schönen guten Tag,

auch ich bin neu im Forum und habe ein ähnliches Problem wie Pyrotika es hatte.
Ich versuche seit einigen Tagen ein Faulhaber Motion Controll System (Motor und Controller) über die Beckhoff EL6001 anzusteuern (Weitere Klemmen CX9020 EL2008 El1008 El3104).
Die Komunikation zwischen Steuersoftware des Motors und dem Controller habe ich mit Serial Port Monitor aufgezeichnet und sende nun einzelne Befehle als Hex Code an die Ausgänge der Klemme EL6001.
Die comLibV2 habe ich erstanden und das Programm läuft soweit auch.
Ebenfalls sehe ich im System Manager, wie die Ausgänge der Klemme beschrieben werden.
Ctrl und Status sind ebenfalls Verknüpft genauso wie Handshake:=false.

Mein Problem: verbinde ich nun den Com Port des PC mit der Klemme um über COM Port Monitor Befehle aufzuzeichnen, tut sich genau wie bei Pyrotika NICHTS.

Hat jemand eine Idee woran das liegen könnte.

Vielen Dank schonmal

Gruß
FastFunk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1. SerialLineControl in schnellem 1ms Task aufrufen und mit entsprechenden Parametern füttern
2. PLC Projekt übersetzen und im System Manager neu einlesen
3. Variablen der RS232 Hardware mit Variablen aus schnellem Task verknüpfen
4. Testdaten z.B. 1x pro Sekunde aus PLC senden (mit timer)
5. PC mit Nullmodemkabel an PLC RS232 anschliessen
6. Terminalprogramm (Docklight/HTerm) auf PC starten
7. Kontrollieren ob die Testdaten an PC gesedet werden
8. Wenn Daten erfolgreich empfangen werden RS232 Kommunikation zum Zielgerät implementieren
 
Anhang anzeigen 22648Anhang anzeigen 22649Anhang anzeigen 22650Anhang anzeigen 22651
Danke für die schnelle Antwort.

Ja das Bsp. Programm habe ich versucht einzulesen... 17 Fehler
Oben hab ich Bilder vom bisherigen Code angefügt.
Die Background Komunikation (SLC) läuft bereits im 1ms Task
Die Ausgänge im SystemManager werden auch beschrieben.
Beim logging wird allergings nichts aufgezeichnet.

Die EL6001 verfügt ja über keinen RS232 Steckplatz sonder muss Ader für Ader angeschlossen werden. Ein Kreuzen von Tx und Rx wie manchmal beschriben, hat ebenfalls nicht geholfen.
 
Zurück
Oben