OSCAT Forum

network.lib => Codesys 2 => Thema gestartet von: NightWatcher am 01. April 2014, 12:15:02

Titel: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 01. April 2014, 12:15:02
Servus Gemeinde,

ich bin noch recht neu in der Programmierung mit Codesys. Leider fällt es mir noch recht schwer, durch die ganzen Funktionen durchzublicken.

Ich erhoffe mir, dass es hier den ein oder anderen gibt, der mir unterstützend helfen kann, wie ich einen Connect zu meinem Onkyo AV Receiver hinbekommen kann.

Soweit im Internet erforscht, lauscht dieser auf Port 60128.

Nun weiss ich leider nicht so recht, wie ich den Baustein IP_Connect bestücken muss. Mein aktueller Stand ist nicht recht weit fortgeschritten. Daran erkennt man sicherlich auch, wie hilflos ich mich aktuell Fühle  ::)

DIe Dokus bin ich bereits durch, jedoch verstehe ich dies ohne ein praktisches Beispiel nicht so recht.

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 01. April 2014, 23:47:57
wird hier eine tcp oder udp verbindung benötigt
ich nehme an deine sps muss als client ugieren und dein receiver spielt der server

kennst du denn auch das protokoll , also den notwendigen inhalt der telegramme
ohne diesen infos brauchst du erst gar nicht anfangen

Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 02. April 2014, 08:53:17
Moin,

es gibt bereits schon z.b. per ip SymCon die Möglichkeit, mit den Receivern zu connecten. Dort und auf anderen Portalen erhält man auch die Telegramme

z.b. http://www.ip-symcon.de/forum/threads/15638-Onkyo-AVR-in-IPS
oder http://www.ip-symcon.de/wiki/Entertainment_Steuerung#Entertainment_InterfaceOnkyo
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 18. April 2014, 09:35:39
Moin, kann oder möchte mir keiner helfen?

Wünsche allen ein frohes Osterfest mit ihren liebsten :-)
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 19. April 2014, 21:41:29
hi

ohne selber ein gerät zum testen zu haben, ist das ziemlich sinnlos

noch dazu habe ich immer noch keine original dokumentation der schnittstelle gesehen

die beispiele passieren auf mächtige programmiersprachen bzw bibliotheken die viele dinge schon automatisch mitbringen
und man die aufgabe in ein paar wenigen codezeilen formulierne kann.
aber die richtigen programmierer sind die , die soetwas auf einer sps umsetzen können !

bei einer sps umsetzung musst du dich um wirklich alles selber kümmern jedes bit und byte musst du selber richtig umsetzen

das ist ein relativ grosser aufwand !
und wie gesagt ohne ein testgerät würde selbst ich das "projekt" nicht mal beginnen

sieht schlecht aus für dein projekt, obwohl es eine interessante sache wäre...
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 21. April 2014, 15:11:16
Naja die vorhandene Bibliothek von oscat kann man ja denke ich grundsätzlich nehmen. Mir fehlt nur das erste Verständnis, per UDP /TCP eine Verbindung aufzubauen.
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 23. Mai 2014, 14:44:29
Versuche mich leider immer noch erfolglos mit dem Thema zu beschäftigen. Ich finde leider keinen Anfang. Ich weiss leider schon nicht, wie ich vorgehen muss, um eine einfache TCP Verbindung aufzubauen.

Anbei übrigens mal ein paar Infos über die Kommunikation des Receivers.

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 24. Mai 2014, 10:13:51
Habe nun einmal versucht, nen Anfang zu machen. Leider reagiert der Receiver auf keine Kommandos.

Ebenfalls getestet: data := !1PWR00[EOF]


[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 25. Mai 2014, 16:53:32
hi

ich kenne zu deinem programm etc.. zu wenige details, aber wenn du deinen versuch mit wireshark dokumentieren würdest
dann könnte man vieles schon vorab erkennen

wird was versendet
was ist der inhalt
gibt es eine antwort
was steht da drinnen

daten werden erst dann gesendet wenn du  bei data.size einen wert > 0 einträgst


siehe link, das habe ich mal für einen anderen user gemacht.... da nehmen und anpassen !

http://www.oscat.de/community/index.php/topic,1071.msg6404.html#msg6404
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 26. Mai 2014, 10:28:50
Moin,

also habe schon mal rausgefunden, dass der Befehl oben total falsch war.

Laut Wireshark geht der Befehl raus, aber ich sehe ihn nicht beim Receiver ankommen. Kann es sein, dass ich die IP Adresse falsch übergebe?

Aktueller Stand siehe Anhang.

PS: Dies ist das komplette Script. Mehr gibt es dazu aktuell nicht.

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 26. Mai 2014, 17:46:41
wenn du mir die wireshark datei gibst dann kann ich dir auch etwas besser helfen
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 26. Mai 2014, 19:42:15
ja nun, wie poste ich das am besten, dass alle nötigen Infos drinnen sind :-)

Also das hier ist das Paket.

komischerweise gibt er als Destination den 192.168.0.100 an. Das ist aber mein Router. (dort soll doch sicher die IP des Receivers stehen?!)

206 am ende ist die Wago. Nirgendwo sehe ich Port und/oder IP Adresse des Receivers.

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 26. Mai 2014, 21:54:15
hi

du musst mir die wireshark datei direkt geben, sonst ist das zeit verschwendung
wenn du willst können wir das auch über private nachricht machen

dazu brauche ich die ip-adressen von

pc
sps
onkyo gerät

an welcher stelle zeichnest du auf ?
bei einen netz mit normalen switch-ports wirst du den meisten datenverkehr gar nicht sehen können
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 27. Mai 2014, 09:40:32
Moin, daran könnte es natürlich liegen, dass ich nichts sehe. Komischerweise sehe ich auch null Aktivität vom Handy, obwohl das direkt per WLAN an der Fritzbox hängt. Aber da kommen die Pakete dann offensichtlich nicht am PC an. Dann bringt dir die Wireshark Datei wirklich nichts.

Habe hier ne Fritzbox, einen kleinen 5Port Switch und nen großen 24Port Switch (der aber noch nicht im Netzwerk ist)

UPDATE: Die Fritzbox bietet eine super Möglichkeit, den Datenverkehr über ein verstecktes Menu mitzuschneiden und im Anschluss in Wireshark auswerten zu können. Habe mir da mal das Paket rausgesucht, dass die APP abschickt, um den gleichen Befehl auszulösen, den ich erstmal versuche, per SPS zu senden. Das Paket sieht auf jeden Fall schon mal anders aus.

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 02. Juni 2014, 21:27:25
kannst du das innerhalb einer telnet verbindung auch steuern ?
wenn ja, dann kannst du das ja ganz einfach mal mit wireshark aufzeichnen
damit ich sehen kann was ist wenn es funktioniert bzw. richtig abläuft

Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 03. Juni 2014, 09:41:39
Bekomme ich leider auch nicht hin. Habe hier auch ne Anleitung gefunden, aber der Receiver mag nicht reagieren.

https://getsatisfaction.com/irule/topics/terminal_command_for_shutdown_onkyo_receiver

Wenn ich per Telnet nur verbinde, kann ich aber die Befehle sehen, ich ich z.b. über die Handy App abgebe.
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 03. Juni 2014, 17:02:08
Zitat
Wenn ich per Telnet nur verbinde, kann ich aber die Befehle sehen, ich ich z.b. über die Handy App abgebe.

was meinst du mit diesen satz ?
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 03. Juni 2014, 17:30:32
Ich verbinde mich auf den Receiver über telnet und sehe quasi die Befehle, die mein Handy an den Receiver schickt und auch die Antwort, die er zurücksendet.

Beispiel:

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 04. Juni 2014, 06:32:31
das ist ja schon ein teil dessen was interessant ist

das ganze kannst du aber auf jedenfall mit wireshark aufzeichnen !
da im fenster nur die darstellbaren zeichen zu sehen sind kann man nicht genau sagen welche zeichen wirklich ausgetauscht werden.
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 04. Juni 2014, 08:51:07
Könnte ich ja, dann müsste ich den Receiver am Router umstecken. Du bräuchtest als den Datenverkehr am Onkyo Receiver?
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 04. Juni 2014, 10:05:10
ja mit dem datenverkehr wäre alles ersichtlich wie es funktioniert
und wahrscheinlich können wir dann relativ einfach einen sample baustein basteln....

Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 04. Juni 2014, 10:17:46
Kommt gleich eine PN mit der Wireshark Datei.

In Zeile 663 steht der Befehl zum ausschalten.

Vorher habe ich noch per Smartphone Lautstärke lauter gemacht und auf einen anderen EIngangskanal gewechselt, sodass man ein wenig mehr Traffic sieht.

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 04. Juni 2014, 11:54:22
hi

danke für den mitschnitt

jetzt ist mir klar wie es aufgebaut ist bzw. funktioniert
der wesentliche faktor ist der datenheader und die datenend markierung ... das fehlte bei deinen versuch komplett
und diese bytes sind auch im telnet log logischerweise nicht sichtbar


siehe anhang
im power off sample bild siehst welche bytes du in wirklichkeit versenden musst !
in der excel liste im sheet "protocol" ist dokumentiert wie so ein telegramm aufgebaut sein muss

probier mal das umzusetzen .... wenn es probleme gibt dann melde dich wieder....



[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 04. Juni 2014, 14:12:31
Jupp, die Infos habe ich hier bereits auch alle, helfen mir aber nicht weiter.

Die telegramme habe ich ja bereits so getestet und auch zigfach aus unterschiedlichen Foren ausprobiert, wo teils andere getestet wurden.
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 04. Juni 2014, 14:50:22
schön das die die meisten infos schon hattest !
warum stellst du sie dann nicht online ?

aber ->   der baustein den du im forum gepostest hast  kann nicht funktionieren !

da gib mir doch mal dein testprogramm, damit ich nachsehen kann was falsch gemacht wurde.

hast du denn ein mit deinen testprogramm ein telegramm auch wirklich versenden können, und dieses auch im wireshark gesehen (dann kann man auch kontrollieren ob der dateninhalt exakt passt.)
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 04. Juni 2014, 15:53:21
schön das die die meisten infos schon hattest !
warum stellst du sie dann nicht online ?

Möchte ja ungern klugscheißern, aber die Excel Datei habe ich bereits auf Seite 1 als Anhang eingestellt ;-)

Anbei das Programm. Möchte hier noch mal erwähnen, dass ich bereits zahlreiche Commandos getestet habe. Werde später aber noch mal schauen, ob und was am Receiver ankommt, wenn ich es über die Wago verschicke.

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 04. Juni 2014, 18:53:14
nachdem ich in deinem wago wireshark keinen datenverkehr entdecken konnte, mache ich mit der Theorie weiter

das verwendest du

Data := 'ISCP\x00\x00\x00\x10\x00\x00\x00\x07\x01\x00\x00\x00!1PWR00\x0D';

das ist die klassische bytecodierung bei hochsprachen die aber meiner meinung nach so nicht funktioniert

probiere das doch mal.
Data := 'ISCP$00$00$00$10$00$00$00$07$01$00$00$00!1PWR00$0D';

was wirklich los ist wird die wago wireshark aufzeichnung bringen
sollte in der aufzeichnung nichts zu finden sein, dann muss am code für den verbindungsaufbau weitergesucht werden.


das ich die xls-datei nicht gesehen habe musst du mir verzeihen, da ich das alles nebenbei mit einem auge mache und mich nicht auf ein problem ausgiebig konzentrieren kann, denn dazu ist mein leben zu kurz ......

Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 04. Juni 2014, 19:44:59

das ich die xls-datei nicht gesehen habe musst du mir verzeihen, da ich das alles nebenbei mit einem auge mache und mich nicht auf ein problem ausgiebig konzentrieren kann, denn dazu ist mein leben zu kurz ......



Kein Problem. Bin ja schon froh, dass sich dem Problem überhaupt jemand annimmt :-)

EDIT: Mit deinem Kommando geht es leider auch nicht. Das Script Sendet sogar nur "ISCP". Alles dannach ist gar nicht im S_BUF
Am Onkyo kommt der gleiche Käse an, wie in der letzten Wireshark Datei.
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 04. Juni 2014, 21:07:00
Data := 'ISCP$00$00$00$10$00$00$00$07$01$00$00$00!1PWR00$0D';

ich glaube auch schon zu wissen warum man den ansich richtig formulierten string nicht senden kann

bei codesys bedeutet ein 0x00 Byte in einen string das es das ende eines strings ist
somit wird effektiv auch nur 'ISCP' versendet


das einzige was du machen kannst ist folgendes

in deinem baustein

10:

   IP_C.C_PORT := 60128; (* Portnummer eintragen                          *)
   IP_C.C_IP := IPClient_Adr; (* IP eintragen                                  *)
   IP_C.C_MODE := BYTE#0;
   IP_C.C_ENABLE:= TRUE; (* Verbindungsaufbau freigeben *)
   IP_C.R_OBSERVE:= TRUE; (* Datenempfang überwachen *)
   IP_C.TIME_RESET:= TRUE;

   S_BUF.BUFFER[00] := BYTE#16#49;
   S_BUF.BUFFER[01] := BYTE#16#53;
   S_BUF.BUFFER[02] := BYTE#16#43;
   S_BUF.BUFFER[03] := BYTE#16#50;
   S_BUF.BUFFER[04] := BYTE#16#00;
   S_BUF.BUFFER[05] := BYTE#16#00;
   S_BUF.BUFFER[06] := BYTE#16#00;
   S_BUF.BUFFER[07] := BYTE#16#10;
   S_BUF.BUFFER[08] := BYTE#16#00;
   S_BUF.BUFFER[09] := BYTE#16#00;
   S_BUF.BUFFER[10] := BYTE#16#00;
   S_BUF.BUFFER[11] := BYTE#16#09;
   S_BUF.BUFFER[12] := BYTE#16#01;
   S_BUF.BUFFER[13] := BYTE#16#00;
   S_BUF.BUFFER[14] := BYTE#16#00;
   S_BUF.BUFFER[15] := BYTE#16#00;
   S_BUF.BUFFER[16] := BYTE#16#21;
   S_BUF.BUFFER[17] := BYTE#16#31;
   S_BUF.BUFFER[18] := BYTE#16#50;
   S_BUF.BUFFER[19] := BYTE#16#57;
   S_BUF.BUFFER[20] := BYTE#16#52;
   S_BUF.BUFFER[21] := BYTE#16#30;
   S_BUF.BUFFER[22] := BYTE#16#30;
   S_BUF.BUFFER[23] := BYTE#16#0D;
   S_BUF.BUFFER[24] := BYTE#16#0A;

   S_BUF.SIZE := 25; (* Sendelänge eintragen *)
   state := 30;

 

ich hatte wohl die alte wireshark aufzeichnung angesehen und darum keine wago kommunikation gefunden
in der richtigen aufzeichnung sieht man nur 3 zeilen
das ist ein korrekter verbindungsaufbau , jedoch werden anscheinend keine daten von sps zu onkyo gesendet
wenn sich das nicht ändert muss man sich das programm nochmals genauer ansehen

das hat aber überhaupt nichts mit dem eigentlichen daten zu tun....
es wird einfach kein eizigen byte versendet....


[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 04. Juni 2014, 21:37:32
habe nun deinen baustein in meiner modifizierten version ausprobiert

er funktioniert auch prinzipiell !
(siehe bild)


nach dem senden bleibt aber nun die verbindung aufgebaut, was ich aber so lösen würde...
30:
  IF IP_C.ERROR <> DWORD#0 THEN  (* Error ? *)
    ERROR := IP_C.ERROR;
    IP_C.C_ENABLE := FALSE;       (* Verbindung abbauen *)
    state := 0;

  END_IF;

  IF S_BUF.SIZE =UINT#0 THEN  (* warten bis alle daten gesendet sind *)
    DONE := TRUE;
    IP_C.C_ENABLE := FALSE;       (* Verbindung abbauen *)
    state := 0;
  END_IF;



[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 04. Juni 2014, 21:46:29
Jawoll... er ist aus. (der Receiver)

Scheint also über diesen "weg" schon mal zu gehen. Kann man das jetzt noch irgendwoe schöner "verpacken", wo wir den richtigen Weg schon mal raus haben?
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 04. Juni 2014, 22:43:12
schöner verpackt.... und flexibel....

siehe anhang....


das kind ist geboren und es lebt....

viel spass..

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 04. Juni 2014, 23:01:07
Hui... ich sage schon mal besten Dank und werde mich da mal reinverkriechen und lernen.  8)
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 05. Juni 2014, 00:19:35
Habe nun so langsam Begriffen, wie du die Funktion und das Programm aufgebaut hast. Klasse Sache.

Nun würde ich gerne den Rückgabe Puffer auslesen und habe dies mit der Funktion BUFFER_TO_STRING probiert.

Leider scheine ich wieder was falsch zu machen, oder die Funktion klappt nicht. Denn dazu gabe es hier bereits schon mal ein Beitrag: http://www.oscat.de/community/index.php?topic=2036.0

Vielleicht magst du noch mal gucken. (Anhang) -> Zeile 61

[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 05. Juni 2014, 08:57:04
hi

habe mal was heruntergetippt, ist ungetestet !

baustein gibt nun den antwort parameter mit aus
neuer parameter für time_out
default wert für port und time_out


[gelöscht durch Administrator]
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 05. Juni 2014, 09:50:36
Vielen Dank.

Dürfte ich noch erfahren, wo mein Fehler war? Du startest mit dem Auslesen erst ab Pos 21. Ist das, damit das ganze ISCP Gedöns nicht in der Variable auftaucht?

Update: In Zeile 61 ist offensichtlich noch nen Fehler drinnen. Die Übergabevariable bei STOP muss so lauten: 21 + command_rcv_size - 9
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: peewit am 05. Juni 2014, 11:49:41
fehler zeile 61 -> kann sein
das ist die kopfrechnung die ohne ausprobieren auch schief gehen kann

richtig is es dann wenn da am baustein ausgang "00" oder "01" bei der power abfrage bekommt.

von 0 -15 ist nur der header zu finden wobei die datenlänge darin interessant ist
16 - x sind die daten selber

16 = !
17 = 1
18 = P
19 = W
20 = R
21 = 0             <---- das wollen wir
22 = 0             <---- uws... bis zum EOF
23 = EOF
24 = EOF

setzt vorraus das die verwendeten kommandos 3 zeichen haben
wenn nicht dann sags mir dann muss man nochmals nachbessern

R_BUF inhalt auch gezielt auf 0 setzt ... vor dem senden
wichtig ist das man nach den senden auch auf eine antwort wartet (R_BUF.SIZE > 0)
Titel: Re: Verbindung zu einem Onkyo Receiver aufbauen
Beitrag von: NightWatcher am 05. Juni 2014, 12:01:10
Jupp, soweit mittlerweile das Script verstanden :-)

Danke bis hierhin. Hat mir echt weitergeholfen, um den Einstieg zu finden.