libzusi - Zusi 3 TCP lib für CODESYS V3 SPS

Da immer mehr Zusi User von einem 1:1 Führerstand mit träumen, soll es zumindest an Datenaustausch nicht hapern.
Nachricht
Autor
Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#21 Beitrag von Thomas B »

Man kann tausendmal drüber gucken und das offensichtlichste übersehen:
Ich habe ShortInt (In Codesys SINT) und SmallInt (INT) verwechselt :O
Jetzt funktioniert es auch.

Aber wie Columbo habe ich immer noch eine letzte Frage: Kann es sein dass der Türwahlschalter nicht in eine absolute Stellung gebracht werden kann? Zumindest zuckt der nicht wenn ich es versuche...
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#22 Beitrag von Carsten Hölscher »

In den Sim-Einstellungen kann man ja 2 Modi für ihn festlegen. Hat das Einfluss?

Carsten

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#23 Beitrag von Thomas B »

Hallo Carsten,
hat leider keinen Einfluss...
Ich versuche es über das Türen-Kommando x0A, das ist doch richtig oder?


Edit: Jetzt habe ich den Fahrpultmodus verstanden: die Seitenwahltaste muss gedrückt bleiben, also Kommando TuerenXX_Down zum Öffnen, TuerenXX_Up zum schließen. Damit kann ich arbeiten.


Und noch eine kleine Nachtragsfrage zu Tastaturaktion x08 (Joystick-Modus). Da müsste ich doch einen Wert zwischen -/+ 1000 übertragen können um entsprechend den Hebel in die Fahr- bzw Bremsstellung zu bekommen? Ich habe einige Werte ausprobiert und lediglich um die +600 passiert etwas, jedoch nicht linear zu den übertragenen Werten.
Die Fahrstufen-Ansteuerung mit x07 funktioniert, ist aber ja Fahrzeugabhängig (je nach Anzahl der Rasten) deshalb wäre eine universelle Ansteuerung schon interessanter.
Zuletzt geändert von Thomas B am 20.02.2017 17:40:10, insgesamt 3-mal geändert.
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#24 Beitrag von Carsten Hölscher »

Und noch eine kleine Nachtragsfrage zu Tastaturaktion x08 (Joystick-Modus). Da müsste ich doch einen Wert zwischen -/+ 1000 übertragen können
Hätte ich auch gedacht, dass das geht. Mehr kann ich im Moment auch nicht sagen.

Carsten

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#25 Beitrag von Thomas B »

Ok, ist auch erstmal nicht so wichtig. Ich werde vorerst mit Rasten arbeiten, das funktioniert ja ganz gut. Vielleicht kannst du ja beizeiten mal nach dem Joystick-Modus gucken. Türansteuerung habe ich gestern noch 423er-Spezifisch umgesetzt, funktioniert aber mit allen seitenselektiven Systemen.


p.S. Ich ziehe übrigens wirklich meinen Hut vor dir das du dich jede Nacht noch hinsetzt und Beiträge im Forum beantwortest, vielen Dank :tup
Zuletzt geändert von Thomas B am 21.02.2017 08:25:26, insgesamt 1-mal geändert.
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#26 Beitrag von Thomas B »

Es ist fast vollbracht. Es funktioniert bereits:
- Fahr-/Bremsschalter
- Türen
- PZB
Was zum verrecken nicht funktioniert ist der SiFa.
- SiFa jetzt auch.
Es folgt demnächst ein Video.
Zuletzt geändert von Thomas B am 23.02.2017 17:26:09, insgesamt 2-mal geändert.
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#27 Beitrag von Thomas B »

Leider hatte ich komplett vergessen hier noch mal was zu schreiben. Der ein oder andere hat mein Fahrpult beim Zusi-Treffen ja auch schon in Aktion gesehen.
Der Stand der Dinge ist, dass ich mit der TwinCat-Library im Grunde fertig bin und ich mir vorstellen könnte diese zu Veröffentlichen. Allerdings sehe ich aufgrund der relativ hohen Kosten für Beckhoff-Hardware keine allzu große Abnehmerschaft.
Desweiteren habe ich mich dann doch mal an die Portierung auf Codesys v3 gewagt, womit ich mittlerweile auch schon zu 70% fertig bin. Zu der Verwendung mit Raspberry Pi hatte ich eingangs schon mal was geschrieben. Zusammen mit i2c-Modulen (v.a. DI/DO/AI/AO) von z.B. Horter & Kalb kann man sich für < 100 Euro eine modulare Fahrpult-Hardware zusammenbauen. Hier kann ich mir schon mehr Interessenten vorstellen weshalb ich auch die Codesys3 Library gerne veröffentlichen würde. Wenn ich in Kürze mit der Software soweit bin, plane ich mich mit der Hardware zu beschäftigen. Natürlich würde ich dann meine Erkenntnisse mit Interessenten teilen.
Carsten, hättest du Interesse daran meine Software mit Anleitungen etc auf zusi.de im Hardware-Bereich zu veröffentlichen? Soll alles OpenSource sein.
Und allgemein: wer könnte sich in der Fahrpult-Welt vorstellen ein SPS-basiertes System anstelle von USB-Controllern einzusetzen?
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#28 Beitrag von Carsten Hölscher »

Kann ich bereitstellen. Es sollte dann eine aussagefähige Beschreibung dazu.

Carsten

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#29 Beitrag von Thomas B »

Ich hatte leider einen kleinen Rückschlag, von daher bin ich noch nicht ganz soweit für die erste Veröffentlichung. Die Sende/Empfangs-Funktion hat sich leider als Speichermonster herausgestellt das sich mit dem Analog-Treiber meiner Horter & Kalb Hardware nicht verstanden hat.

Doch zu meinem aktuellen Problem: ich verwende bisher die 11.3.3.6 Befehl 01 0A – INPUT Anweisung um z.B. Fahr- und Bremsstufe zu übertragen. Jetzt wollte ich für das Demo-Projekt den ICE1-Führerstand verwenden und musste feststellen dass beim Bremssteller die gekoppelte Hll-Stufe nicht mitgenommen wird, also nur dynamisch(?) gebremst wird. Frage: warum ist das so?
Es gibt ja lt. Doku auch eine "Kombischalter"-Funktion, aber wie wende ich die an?
Grüße,
Thomas (eh. ElektrikTrick)

Alwin Meschede
Beiträge: 8927
Registriert: 04.11.2001 19:57:46
Aktuelle Projekte: Zusi3 Objektbau
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#30 Beitrag von Alwin Meschede »

Thomas B hat geschrieben:Es gibt ja lt. Doku auch eine "Kombischalter"-Funktion, aber wie wende ich die an?
Ein Kombischalter ist in der Zusi-Terminologie einfach nur ein Schalter mit mehreren frei belegbaren Stellungen. Mit dem gleichzeitigen Schalten mehrerer Schaltfunktionen hat das nur mittelbar was zu tun.
Thomas B hat geschrieben: Jetzt wollte ich für das Demo-Projekt den ICE1-Führerstand verwenden und musste feststellen dass beim Bremssteller die gekoppelte Hll-Stufe nicht mitgenommen wird, also nur dynamisch(?) gebremst wird. Frage: warum ist das so?
Die ftd-Dateien im offiziellen Bestand sind auf die Bedürfnisse von Tastaturfahrern hin optimiert. Für Fahrpulte sind die oft nicht nutzbar. Gerade die ICE1-ftd ist sehr speziell, und wahrscheinlich kein gutes Einsteigerobjekt, um eine Fahrpultanwendung dort anzuhängen. In dieser ftd-Datei gibt es einen Kombischalter "Bremssteller", der auf die Tastaturbelegung "Führerbremsventil" gelegt ist, und je nach Stellung einen Bremscomputer, die Hauptluftleitung oder die E-Bremse ansteuert. Ich kann nicht sagen, was passiert, wenn man ausgerechnet diese ftd-Datei nimmt, um dort per Fahrpult Kommandos reinzugeben.
Mein Youtube-Kanal: youtube.com/echoray1

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#31 Beitrag von Thomas B »

Alwin Meschede hat geschrieben:Ein Kombischalter ist in der Zusi-Terminologie einfach nur ein Schalter mit mehreren frei belegbaren Stellungen. Mit dem gleichzeitigen Schalten mehrerer Schaltfunktionen hat das nur mittelbar was zu tun.
Ich beziehe mich auf die Kombischalter-Tabelle auf Seite 686. Inwiefern unterscheidet sich das von der Tastaturzuordnung auf Seite 682 und wie kann man das einsetzen (z.B. "x06 (6) - Dyn Bremse Stufe - Stufennummer")? Oder ist das lediglich in Richtung Zusi -> Client relevant?
Alwin Meschede hat geschrieben:Die ftd-Dateien im offiziellen Bestand sind auf die Bedürfnisse von Tastaturfahrern hin optimiert. Für Fahrpulte sind die oft nicht nutzbar.
Das wäre aber sehr ernüchternd für die meisten Fahrpultbastler. Es muss doch möglich sein die dahinter liegende Funktion direkt anzusprechen. Ich habe z.B. auch beim FLIRT das Problem dass ich den Fahr-Brems-Hebel nicht per TCP bewegen kann, weil dieser mit dem Richtungsschalter gekoppelt ist. Ich meine, vielleicht stehe ich ja auch nur auf dem Schlauch ?(
Alwin Meschede hat geschrieben:Gerade die ICE1-ftd ist sehr speziell, und wahrscheinlich kein gutes Einsteigerobjekt, um eine Fahrpultanwendung dort anzuhängen. In dieser ftd-Datei gibt es einen Kombischalter "Bremssteller", der auf die Tastaturbelegung "Führerbremsventil" gelegt ist, und je nach Stellung einen Bremscomputer, die Hauptluftleitung oder die E-Bremse ansteuert. Ich kann nicht sagen, was passiert, wenn man ausgerechnet diese ftd-Datei nimmt, um dort per Fahrpult Kommandos reinzugeben.
Mein Ziel ist ja die Lib für den Endanwender so einfach und flexibel wie möglich zu gestalten, indem ich für die meisten Bedien- und Anzeigekomponenten Funktionsbausteine bereitstelle, die sich beliebig verknüpfen und modifizieren lassen. Aber dazu muss ich natürlich selbst erst mal verstehen wie was angesteuert wird.

So sieht z.B. ein minimaler Fahrpult-Client aus
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#32 Beitrag von Thomas B »

Ich frage mal ganz konkret nach einer Hilfestellung. Momentan verwende ich den Input-Befehl folgendermaßen:
x01: x04 - Tastaturzuordnung Führerbremsventil
x02: x00- Tastaturkommando Keins
x03: x07 - Tastaturaktion absolute Raste
x04: x06 - Schalterposition Raste 6
x05: x00 - Parameter Keine
Dieser Befehl bringt den Bremssteller in Raste 6, allerdings ohne die gekoppelte Hll-Stufe. So wie ich es in der Doku verstehe ist dies die einzige Variante einen Hebel per TCP zu stellen.
Wie muss ich den INPUT-Befehl also verwenden damit gekoppelte Hebel mitgenommen werden? Oder habe ich da irgendwas komplett falsch verstanden?
Zuletzt geändert von Thomas B am 13.03.2018 18:04:01, insgesamt 1-mal geändert.
Grüße,
Thomas (eh. ElektrikTrick)

Alwin Meschede
Beiträge: 8927
Registriert: 04.11.2001 19:57:46
Aktuelle Projekte: Zusi3 Objektbau
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#33 Beitrag von Alwin Meschede »

Thomas B hat geschrieben:Wie muss ich den INPUT-Befehl also verwenden damit gekoppelte Hebel mitgenommen werden? Oder habe ich da irgendwas komplett falsch verstanden?
Wie gesagt, die standardmäßige ICE1-Ftd hat gar keine weiteren Bremshebel, die man mitnehmen könnte. Vielleicht solltest Du für erste Versuche auf einen anderen Führerstand wechseln, wo Führerbremsventil und E-Bremse wirklich getrennte Hebel sind. Dann siehst Du wahrscheinlich besser, wie sich deine Kommandos auswirken. Der Traxx-1-Führerstand müsste zum Beispiel gehen.
Mein Youtube-Kanal: youtube.com/echoray1

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#34 Beitrag von Thomas B »

Also besteht keine Möglichkeit per TCP einen Hebel MIT gekoppelter Funktion zu bewegen? Ist das denn bei den DirectInput-Geräten genauso eingeschränkt?
Ich will mich nicht unbedingt auf den ICE1 fixieren, aber es wären dann schon einige Fahrzeuge die per TCP-Fahrpult nicht so ohne weiteres angesteuert werden können, so schrieb ich ja schon das ich mit meinem eigenen Fahrpult nicht den LINT steuern kann wegen der gekoppelten Richtungswender-Funktion. Finde ich relativ frustrierend :(

Nachtrag: ich habe eine andere Lösung gefunden. Ich habe im Fst-Editor dem gekoppelten "DEKO_HL_Steuerung" die Tastaturzuordnung "Fahrpultintern 01" zugewiesen und steuere diese parallel an. Ist vielleicht nicht der eleganteste Weg aber es funktioniert immerhin :schaffner
Zuletzt geändert von Thomas B am 13.03.2018 20:26:21, insgesamt 1-mal geändert.
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#35 Beitrag von Carsten Hölscher »

Per TCP dürften Koppelungen nicht wirken. Diese werden bei Pulten ja mechanisch gelöst, so dass man sie nicht noch einmal konkurrierend in Software beachtet.

Carsten

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#36 Beitrag von Thomas B »

Ja, das macht Sinn. Vielleicht könnte man das zukünftig noch so Lösen das als Parameter angegeben werden kann ob ich die Kopplung mitnehmen möchte oder nicht?
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Jens Haupert
Beiträge: 4911
Registriert: 23.03.2004 14:44:34
Aktuelle Projekte: http://www.zusidisplay.de
Wohnort: Berlin
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#37 Beitrag von Jens Haupert »

Hallo Thomas,

so ganz verstehe ich dein Problem nicht. Man hat ja die Hardware die man ansteuern möchte vor sich. Und diese sendet die Schalterstellungen 1-zu-1 an Zusi. Was im Fst für den Tastaturfahrere definiert ist spielt doch im Prinzip gar keine Rolle, oder?

Grüße
Jens

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#38 Beitrag von Thomas B »

Moin Jens,
nehmen wir den ICE1/2-Fst als Beispiel. Im Vorbild hat der nur einen Bremshebel der elektronisch Führerbremsventil und dynamische Bremse koppelt. Per Knopfdruck kannst du die dynamische Bremse ausschalten. In Zusi nimmst du per Tastatur immer die gekoppelte Funktion mit, per TCP geht das aber nicht. Hier musste ich jetzt dem "versteckten" zweiten Hebel eine Tastaturfunktion zuordnen um den Bremsdruck per TCP überhaupt beeinflussen zu können. Für solche Spezialanwendungen wäre es praktisch per TCP einfach als Parameter Zusi mitteilen zu können "wie gehabt aber bitte gekoppelt".
Grüße,
Thomas (eh. ElektrikTrick)

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#39 Beitrag von Carsten Hölscher »

Eigentlich würde man das doch über den Schalter "Dyn. Bremse deaktivieren" lösen.

Carsten

Benutzeravatar
Thomas B
Beiträge: 410
Registriert: 28.03.2007 16:41:08
Wohnort: Bergisch Gladbach
Kontaktdaten:

Re: Zusi-TCP-Lib TwinCat / CoDeSys

#40 Beitrag von Thomas B »

Moin Carsten,
das ist gar nicht das Problem, ich kann ja nichts deaktivieren wenn die Funktion über TCP gar nicht erst mitgenommen wird ;)
Ist aber auch nicht so wichtig, ich habe ja eine Krücke gefunden mit der man arbeiten kann.

Aber ein anderes Thema was ich vor einiger Zeit schon mal bemerkt hatte:
Und noch eine kleine Nachtragsfrage zu Tastaturaktion x08 (Joystick-Modus). Da müsste ich doch einen Wert zwischen -/+ 1000 übertragen können um entsprechend den Hebel in die Fahr- bzw Bremsstellung zu bekommen? Ich habe einige Werte ausprobiert und lediglich um die +600 passiert etwas, jedoch nicht linear zu den übertragenen Werten.
Die Fahrstufen-Ansteuerung mit x07 funktioniert, ist aber ja Fahrzeugabhängig (je nach Anzahl der Rasten) deshalb wäre eine universelle Ansteuerung schon interessanter.
Das hatte ich jetzt auch noch mal ausprobiert, funktioniert jedoch nach wie vor nicht. Wäre halt universeller einsetzbar...
Grüße,
Thomas (eh. ElektrikTrick)

Antworten