Aktuelle Zeit: 13.12.2017 00:31:14

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 02.11.2016 09:28:36 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Momentan arbeite ich an der Ertüchtigung meines Fahrpultes (Ja, es lebt noch) für Zusi 3.
Thema 1:
Hintergrundinfo zum Fahrpult: Es enthält eine Beckhoff SPS Typ CX9001. Diese verfügt über eine vollständige TCP-Schnittstelle, die mit TwinCat/CoDeSys programmiert werden kann. Bei Zusi 2 hat die SPS die Simulationsdaten direkt aus dem TCP-Bus gelesen und dann Tastenanschläge an ein Windows-Programm geschickt. Das ist natürlich von hinten durch die Brust ins Auge weil dann schon zwei Programme gepflegt werden müssen. Bei Zusi 3 können die Befehle ja zum Glück direkt an Zusi übermittelt werden.
Ich habe das neue Schnittstellen-Modul für TwinCat in groben Zügen bereits fertig und die SPS kann sich mit Zusi verbinden. Allerdings erscheint das Fahrpult nicht in der Liste der angeschlossenen Clients, obwohl die SPS eine ACK_HELLO-Nachricht erhält. Woran kann das liegen? Wird der Client erst aufgenommen wenn Daten angefragt wurden? Und wie kann ich den Netzwerkverkehr auf der Serverseite überwachen um zu sehen ob die Daten richtig übermittelt wurden? Zusi fehlt da im Moment noch eine Debugging-Hilfe. Oder kennt jemand ein gutes 3th-Party-Tool zur Paket-Analyse?

Thema 2, für (potentielle) Fahrpultbastler interessant:
Ich gedenke den Zusi-Client für TwinCat später als vollständige Bibliothek zur Verfügung zu stellen, da die Programmierung der TCP/IP-Schnittstelle doch sehr hardwarenah mit Pointern und direktem Speicherzugriff erfolgt. Das will ich wirklich niemandem zumuten :rolleyes:
Da Beckhoff-Hardware jedoch relativ teuer ist (wenn man nicht gerade ein Schnäppchen bei Ebay schießt), habe ich mich mal nach günstigeren Alternativen umgesehen und bin auf CoDeSys für Raspberry Pi gestoßen. Und das wäre in meinen Augen die perfekte Fahrpult-Hardware! Das System ist mit I2C-Modulen, AI/O, DI/O erweiterbar (sehr preiswert) und die CoDeSys-Lizenz ist mit 35 Euro auch zu verkraften.
Sobald ich den Client für TwinCat fertig habe, werde ich mich mit dem Raspberry Pi und CoDeSys auseinandersetzen und sehen inwieweit man das für Fahrpulte einsetzen kann. Sollte es gut verlaufen werde ich meine Zusi-Lib an diese Plattform anpassen und zur Verfügung stellen. Natürlich nur sofern Bedarf besteht ;)

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Zuletzt geändert von Thomas B am 07.02.2017 20:06:13, insgesamt 1-mal geändert.

Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Paket-Monitor TCP-Server? / Raspberry Pi mit CODESYS
BeitragVerfasst: 02.11.2016 10:07:08 
Offline
Administrator
Benutzeravatar

Registriert: 03.07.2002
Beiträge: 27112
Wohnort: Braunschweig
Wenn der Anmeldevorgang durchläuft, erscheint der Client sofort in der Liste. Kannst Du mit den mitgelieferten TCP-Demos testen.

Carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Paket-Monitor TCP-Server? / Raspberry Pi mit CODESYS
BeitragVerfasst: 02.11.2016 10:19:33 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Das merkwürdige ist: war ein Fehler im Protokoll, hat Zusi eine Fehlermeldung rausgegeben "Protokoll Version 2.0 erwartet". Das lag an einer falschen Byte-Order was ich korrigiert habe. Die Meldung kommt nicht mehr und dennoch erscheint der Client nicht in der Liste. Auf der Client-Seite sieht das Paket vor dem Versenden auch richtig aus. Ich müsste mir auf der Serverseite den HEX-Dump des HELLO-Paketes ansehen können...

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Paket-Monitor TCP-Server? / Raspberry Pi mit CODESYS
BeitragVerfasst: 02.11.2016 10:22:58 
Offline

Registriert: 01.06.2015
Beiträge: 58
Wohnort: Berliner Ringbahn
Aktuelle Projekte: http://www.zusidatenbank.de/
Zitat:
Und wie kann ich den Netzwerkverkehr auf der Serverseite überwachen um zu sehen ob die Daten richtig übermittelt wurden?

Du kannst das Monitoring-Programm 'Wireshark' bunutzen, und vergleichst du Byte für Byte dein Programm mit dem Daten der Demos & ZusiDisplay. Es gibt sogar ein Plugin, dass Zusi Netzmitteilungen decodieren - viewtopic.php?f=73&t=12635.

Edit:
Und vergisst du nicht, benutzt Zusi nicht 'Network Byte Order'(big-endian), sondern immer Little-Endian byte order.

_________________
Autor - Zusi 3 C++ Client, http://www.zusidatenbank.de/ - Das Zusi3 Addon-Datenbank


Zuletzt geändert von jonathanp am 02.11.2016 10:31:47, insgesamt 2-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Paket-Monitor TCP-Server? / Raspberry Pi mit CODESYS
BeitragVerfasst: 02.11.2016 11:01:32 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Super :tup Das gucke ich mir mal an.

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Paket-Monitor TCP-Server? / Raspberry Pi mit CODESYS
BeitragVerfasst: 02.11.2016 20:42:12 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Das Tool ist wirklich extrem nützlich :)
Allerdings waren die Daten in Ordnung aber der Client erscheint tatsächlich erst in der Liste wenn Daten angefordert wurden...

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Paket-Monitor TCP-Server? / Raspberry Pi mit CODESYS
BeitragVerfasst: 02.11.2016 21:44:01 
Offline
Administrator
Benutzeravatar

Registriert: 03.07.2002
Beiträge: 27112
Wohnort: Braunschweig
Vielleicht haben wir uns da mißverstanden. Ich meinte den kompletten Anmeldevorgang inkl. "needed data". Versand von "Live"daten ist nicht nötig.

Carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Paket-Monitor TCP-Server? / Raspberry Pi mit CODESYS
BeitragVerfasst: 02.11.2016 21:48:37 
Offline
Benutzeravatar

Registriert: 24.10.2011
Beiträge: 1845
Hallo Carsten,

hat es eigentlich einen Grund, warum due needed data als Teil der Anmeldung definiert hast? Ich frage auch, weil ich beim Zusi-2-Zusi-3-Converter Pauschal alles anfordern muss, was ich nicht müsste, wenn Zusi 3 jederzeit einen needed-Data-Befehl akzeptieren würde.

Gruß
F. Schn.

(PS: Im Ordner "Zusi 3 - Technik" würde ich das Thema übrigens nicht suchen, alles andere zu TCP ist im Ordner "Zusi 3 - Zusatztools" oder im Fahrpult-Ordner.)

_________________
Diese Signatur möchte folgendes bekannter machen: ZusiWiki: Führerstände · ZusiWiki: Fahrzeugprojekte · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Paket-Monitor TCP-Server? / Raspberry Pi mit CODESYS
BeitragVerfasst: 03.11.2016 00:33:03 
Offline
Administrator
Benutzeravatar

Registriert: 03.07.2002
Beiträge: 27112
Wohnort: Braunschweig
Es gab bisher keinen mir bekannten Anwendungsfall, den Umfang der zu sendenden Größen in der laufenden Verbindung zu ändern.
carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 07.02.2017 20:33:50 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Nachdem ich endlich mal wieder die Muße gefunden habe mich mit meinem Fahrpult zu beschäftigen, habe ich die TCP-Lib soweit fertig dass ich alle Daten von Zusi auslesen kann.
Um mal einen Eindruck zu bekommen, so sieht Zusi-TCP in IEC 61131-3 (hier in FUP für die SPS-Kenner) aus:
http://www.tbxtools.de/privat/zusitcp.png

Zur Sache:
Jetzt bin ich beim senden von Anweisungen angekommen und hier habe ich ein Verständnisproblem. In der Doku (11.3.3.6) steht bei Knoten "Tastatureingaben" die Anweisungen in der Reihenfolge
  • Tastaturzuordnung
  • Tastaturkommando
  • Tastaturaktion
  • Schalterposition
  • Parameter
Was ich hieran nicht verstehe ist, wenn ich z.B. einen Kombifahrschalter auf Stufe Fahren 4 stellen will, gebe ich das dann als Tastaturaktion oder als absolute Schalterposition an?

p.S. als Anekdote: Ich habe fast den gesamten Samstag damit verbracht einen vermeintlichen Fehler im Code zu suchen weil die Daten nur so schleppend rein kamen. Bis ich dann rausgefunden habe dass man bei Zusi den Übertragungsinterval einstellen kann :wand

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 07.02.2017 23:08:01 
Offline
Administrator
Benutzeravatar

Registriert: 03.07.2002
Beiträge: 27112
Wohnort: Braunschweig
Zitat:
Was ich hieran nicht verstehe ist, wenn ich z.B. einen Kombifahrschalter auf Stufe Fahren 4 stellen will, gebe ich das dann als Tastaturaktion oder als absolute Schalterposition an?
Am besten als absolute Position.

Carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 08.02.2017 07:35:59 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Carsten Hölscher hat geschrieben:
Zitat:
Was ich hieran nicht verstehe ist, wenn ich z.B. einen Kombifahrschalter auf Stufe Fahren 4 stellen will, gebe ich das dann als Tastaturaktion oder als absolute Schalterposition an?
Am besten als absolute Position.
Carsten


Sind denn die anderen Parameter dann optional?

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Zuletzt geändert von Thomas B am 08.02.2017 07:37:27, insgesamt 1-mal geändert.

Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 08.02.2017 14:56:59 
Offline
Administrator
Benutzeravatar

Registriert: 03.07.2002
Beiträge: 27112
Wohnort: Braunschweig
Da gibt es teils mehrere Möglichkeiten. Einfach mal schauen ob's geht und dann ist alles gut. :D

Carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 08.02.2017 20:47:11 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Carsten Hölscher hat geschrieben:
Da gibt es teils mehrere Möglichkeiten. Einfach mal schauen ob's geht und dann ist alles gut. :D

Carsten


Try-and-error ist mein zweiter Vorname :rolleyes:
Zum Glück unterstützt TwinCat/Codesys ein kleines Kunststück was man mit anderen Programmiersprachen nicht kann: den Online-Change, also bei Neukompilierung den Austausch des laufenden Programmes ohne dass es neugestartet werden muss. Weil dann in Zusi die Simulation ebenfalls neugestartet werden müsste damit der TCP-Server wieder Clients annimmt.
Btw. Carsten, spricht eigentlich technisch gesehen irgendwas dagegen auch während der laufenden Simulation noch Clients aufzunehmen?

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 08.02.2017 21:27:12 
Offline
Administrator
Benutzeravatar

Registriert: 03.07.2002
Beiträge: 27112
Wohnort: Braunschweig
Geht doch.

Carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 09.02.2017 07:37:23 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Du meinst der Server nimmt Clients nach dem Start an??
Ich muss gestehen dass ich so davon überzeugt war dass das nicht geht, dass ich es gar nicht erst ausprobiert habe 8o

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 14.02.2017 18:08:56 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Ich fürchte ich muss noch mal um Hilfe bitten.
Ich verzweifle an der Kombischalter-Funktion. Ich übe mit dem LINT und versuche eine Fahrstufe zu übertragen, aber der Kombischalter geht immer auf Schnellbremsen.
Das Kommando sieht so aus:
Code:
Tastaturzuordnung: 16#0001 [Fahrschalter]
Tastaturkommando:  16#0001 [Aufschalten]
Tastaturaktion:    16#0007 [Absolute Angabe]
Schalterposition:  16#0003 [Fahrstufe 3]
Parameter:         16#0000

Ich kann den Hebel mit den Auf- und Abschalt-Kommandos jeweils eine Stufe rauf oder runterschalten. Nur die Absolute Angabe der Stufe führt immer zur Schnellbremsung...
Allerdings verstehe ich auch schon die Verwendung der Tabelle "Kombischalterfunktion" nicht, wo muss ich die einsetzen? Das geht leider aus der Doku nicht hervor ;(
Ich bitte um Hinweise die zur Lösung dienlich sind :)

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Zuletzt geändert von Thomas B am 14.02.2017 18:10:28, insgesamt 2-mal geändert.

Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 14.02.2017 18:14:21 
Offline
Benutzeravatar

Registriert: 14.03.2009
Beiträge: 1670
Aktuelle Projekte: Zusitools (http://git.io/zusitools)
ElektrikTrick hat geschrieben:
Allerdings verstehe ich auch schon die Verwendung der Tabelle "Kombischalterfunktion" nicht, wo muss ich die einsetzen? Das geht leider aus der Doku nicht hervor ;(
Ich bitte um Hinweise die zur Lösung dienlich sind :)
Doku 11.3.3.4 (DATA_OPERATION). Diese Tabelle ist nur wichtig, wenn du Daten von Zusi empfangen willst.


Zuletzt geändert von Johannes am 14.02.2017 19:04:31, insgesamt 2-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 14.02.2017 19:02:08 
Offline
Benutzeravatar

Registriert: 14.03.2009
Beiträge: 1670
Aktuelle Projekte: Zusitools (http://git.io/zusitools)
Zum Rest: Was passiert denn, wenn du eine hoehere Schalterstellungs-Nummer sendest? Laut Doku ist zwar die Schalterposition relativ zur Grundstellung, in meinen Tests war das jedoch nicht der Fall. Man muss also tatsaechlich die Rastennummer eingeben, wie sie im Kombihebel-Editor des Fuehrerstandes erscheint.

Tastaturkommando kannst du uebrigens weglassen; fuer die Angabe einer absoluten Schalterstellung ist es ja unerheblich, ob du auf- oder abschaltest.


Zuletzt geändert von Johannes am 14.02.2017 19:04:42, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zusi-TCP-Lib TwinCat / CoDeSys
BeitragVerfasst: 19.02.2017 10:49:30 
Offline
Benutzeravatar

Registriert: 28.03.2007
Beiträge: 236
Wohnort: Bei Köln
Moin,
bin wieder ein paar Tage nicht zum basteln gekommen :(
Also ich habe noch ein paar andere Bugs entfernt und es dann noch mal mit verschiedenen Rasterstellungen ausprobiert, aber egal welchen Wert ich sende: Schnellbrems-Stellung :wand
Jetzt ist natürlich die Frage ob es am Protokoll selbst liegen könnte? Das wird übertragen:
Code:
Zusi 3 TCP data
    Node, id = 0x2
        Node, id = 0x10A
            Node, id = 0x1
                Attribute, id = 0x1, payload = 0100
                Attribute, id = 0x2, payload = 0000
                Attribute, id = 0x3, payload = 0700
                Attribute, id = 0x4, payload = 0F
                Attribute, id = 0x5, payload = 00000000

Ergebnis ist immer das selbe, egal was bei 0x4 steht. Ist da irgendwas falsch was ich nicht sehe?

_________________
Grüße,
Thomas (eh. ElektrikTrick)


Nach oben
 Profil Website besuchen  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.098s | 16 Queries | GZIP : Off ]