OSCAT Forum

network.lib => Modulentwicklung => Thema gestartet von: McBain2k am 07. März 2010, 17:52:05

Titel: DMX über Ethernet (Art-Net-Node)
Beitrag von: McBain2k am 07. März 2010, 17:52:05
Hallo habe leider noch keiner Ahnung wie man ein Modul selbst entwickelt, aber folgendes Projekt schwebt mir im Kopf.

Mit einer Wago 750-841 über Ethernet einen DMX-Art-Net-Node ansteuern, an diesen Node hängen dann ganz normale DMX-Komponeneten.

Für eine Wago->DMX Verbindung existiert schon eine Anwendung nur leider nicht mit dem Art-Net-Protokoll.
http://www.wagocatalog.com/okv3/Download_files/Anwendungshinweis_DMX_STAGE_PROFI.zip
 (http://www.wagocatalog.com/okv3/Download_files/Anwendungshinweis_DMX_STAGE_PROFI.zip)

Hier noch der Art-Net-Node den ich gerne einsetzen würde:
http://www.dmxcontrol.de/wiki/Art-Net-Node_f%C3%BCr_25_Euro (http://www.dmxcontrol.de/wiki/Art-Net-Node_f%C3%BCr_25_Euro)

Ich wäre Dankbar wenn man mir mal eine grobe Richtung für die Entwicklung vorgibt und evtl. etwas unter die arme greifen würde.


eventuell könnte man das anpassen?
Titel: Re:DMX über Ethernet (Art-Net-Node)
Beitrag von: peewit am 07. März 2010, 18:47:52
hallo

inwieweit unterscheidet sich dein gewünschtes Art-Net-Protokoll von dem Wago-DMX Programm (Beispiel) ?


Titel: Re:DMX über Ethernet (Art-Net-Node)
Beitrag von: McBain2k am 07. März 2010, 19:55:38
Bin noch auf der Suche zu Art-Net habe ich folgendes gefunden:
http://www.delphipraxis.net/topic123317,0,asc,0.html (http://www.delphipraxis.net/topic123317,0,asc,0.html)

Das von dem DMX4All-StageProfi ist ein proprietäres Protokoll wozu ich leider noch nichts gefunden hab als den Wagobaustein FbDMX_StageProfi.
Titel: Re:DMX über Ethernet (Art-Net-Node)
Beitrag von: peewit am 07. März 2010, 20:54:24
bei dem Wago->DMX Beispiel-Projekt fehlt die DMXStageProfi_01.lib

Titel: Re:DMX über Ethernet (Art-Net-Node)
Beitrag von: McBain2k am 07. März 2010, 21:22:42
Was hat sich wago denn da erlaubt?
Als ich damals das Anwendungsbeispiel heruntergeladen habe war die lib noch drin, hab sie also.
Darf sie aber hier sicher nicht veröffentlichen?
Titel: Re:DMX über Ethernet (Art-Net-Node)
Beitrag von: gravieren am 09. März 2010, 21:45:19
Hi

Zitat
Darf sie aber hier sicher nicht veröffentlichen?
Peewit hat eine PM   :D


Auch ich habe eine PM   :)
Titel: Re:DMX über Ethernet (Art-Net-Node)
Beitrag von: gravieren am 11. März 2010, 16:59:01
Hallo Peewit


Schau doch mal in den "Development Area" (Entwicklerbereich rein)


Hier habe ich Infos für dich hinterlegt.

Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: barthezz am 15. Januar 2016, 23:35:05
Hallo,

würde auch gerne einen ART NET Node per WAGO Controller ansteuern.

Gibt es da mittlerweile einen Baustein? Habe per Google leider nichts gefunden :(

Gruß
barthezz
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: annD am 18. Januar 2016, 15:37:51
Hallo barthezz,

auf welcher Version vom Codesys läuft dein System bzw. was ist es für ein Wago-Controller? Ein anderer User hat eine Variante mit Codesys 2.3 bzw. mit e!COCKPIT realisiert. Ich möchte dieselbe Lösung gerne mit dem freiem Codesys 3.5 realisieren. Dabei habe ich noch das Problem, dass ich dort die Wago-Bibliotheken zum Senden über Ethernet (UDP-Befehle) nicht einbinden kann.

Gruß, annD
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: barthezz am 20. Januar 2016, 17:38:19
Hallo annD,

ich hab als Controller den 750-8202 und das Programm ist mit Codesys 2.3 erstellt.

Gruß
barthezz
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: annD am 02. Februar 2016, 09:24:53
barthezz,

du hast eine PM ;-)

Gruß
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: annD am 10. Februar 2016, 07:47:49
Hallo,

es gibt hier zwei auf Wago-Bibliotheken basierende Versionen zum Senden von Art-Net über Ethernet:
https://www.symcon.de/forum/threads/25156-DMX-lib-f%C3%BCr-Wago-SPS (https://www.symcon.de/forum/threads/25156-DMX-lib-f%C3%BCr-Wago-SPS)

Könnte man diese Funktionsweise auch mit freien Bibliotheken von Oscat bzw. 3S umsetzen, damit es auf dem aktuellen Codesys 3.5 lauffähig wird?

Gruß annD
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: annD am 06. Oktober 2016, 22:52:03
Hallo,

ich versuche ein paar Werte per UDP mit dem IP_CONTROL bzw. IP_CONTROL2 zu senden. Ich arbeite zwar mit Codesys v3 - aber z.B. der aktuelle Yahoo_Weather Baustein funktioniert hier auch. Mit dem Beispiel anbei setze ich send auf TRUE und sehe auch bei s_done ein TRUE und keine Fehlermeldung. Im wireshark bzw. auf einem udp-testtool sehe ich aber keine gesendeten Daten. Hat jemand eine Ahnung, wie ich den Fehler eingrenzen bzw. das Senden hinbringen kann?

Als Ziel möchte ich eine Art-Net Zeichenfolge wie folgt senden:
41 72 74 2D 4E 65 74 00 00 50 50 0E 00 00 00 00 02 00 8B 84 00 5E 5C 5D 00 00 00 00 8D 00 8F 90 94 9A 00 00 00 00 00 00 74 00 00 68 69 68 90 8F 8F 8E 00 00 00 00 00 00 00 00 00 06 06 00 E1 E3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...

Dabei sind die ersten 18 Werte immer gleich und die Werte ab 8B stehen für die einzelnen DMX-Kanäle (z.B. 8B ist der Kanal 1 mit 139, Kanal 2 mit 132 usw.). Diese Kanäle möchte ich in einem Array ablegen und dann bei Änderung jeweils die Anfangszeichen hinzufügen und per UDP an eine IP-Adresse und Port senden.

Wäre toll, wenn mir jemand auf die Sprünge helfen könnte.

Gruß annD

[gelöscht durch Administrator]
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: peewit am 07. Oktober 2016, 08:16:25
hallo

1. in den online variablen sieht man
    c_port = 1024
    c_ip = 167772169 = 10.0.0.9

    das entspricht gar nicht dem was man im programm code sieht
    es muss wohl in deinem programm etwas geben das diese werte ausgibt !

2. du parametrierst den IP_CONTROL zum teil über die Datenschnittstelle aber auch direkt über den IP_CONTROL
    das verwirrt eher als das es etwas nützt
    ich empfehle dir nur über die datenschnittstelle zu arbeiten !


du kannst dir ja mal den baustein SNTP_CLIENT ansehen
der arbeitet auch mit udp protokoll
dann hast du schon einen funktionierenden rahmen den du auf deine bedürnisse anpassen kannst
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: annD am 18. Oktober 2016, 22:07:06
Hallo,

ich habe hier ein funktionierendes Modul zum Senden von DMX-Werten über Art-Net an ein beliebiges Art-Net-Node. Es prüft eine globale Variable mit den DMX-Werten und sendet diese bei Veränderung an eine bestimmte IP-Adresse. Ich habe es hier mal mit 100 Kanälen erstellt - sollte aber mit allen 512 Kanälen genauso laufen. Für Verbesserungsvorschläge bin ich gerne offen:

PROGRAM DMX_SEND
VAR
   IP_CONTROL1:oscat_network.IP_CONTROL2;
   IP_C1:oscat_network.IP_C;
   S_BUF1: oscat_network.NETWORK_BUFFER_SHORT;
   R_BUF1: oscat_network.NETWORK_BUFFER_SHORT;
   send : BOOL;
   i: INT;
END_VAR

FOR i := 18 TO 118 DO (*prüfen ob sich die DMX-Werte in der globalen Variable geändert haben*)
   IF GVL.DMX[i-17]<>S_BUF1.BUFFER THEN
      S_BUF1.BUFFER := GVL.DMX[i-17]; (*wenn sich etwas geändert hat, dann in den Puffer kopieren und senden*)
      send := TRUE;
   END_IF
END_FOR

IF send THEN
   IP_C1.C_MODE := 3;
   IP_C1.C_ENABLE := TRUE; (* Verbindungsaufbau freigeben *)
   IP_C1.TIME_RESET := TRUE;
   IP_C1.R_OBSERVE := FALSE; (* Datenempfang überwachen *)
   IP_C1.C_IP:=oscat_network.IP4_DECODE('10.0.0.90');
   IP_C1.C_PORT := WORD#6454;
   S_BUF1.BUFFER[0] := BYTE#16#41; (*DMX-Kopfzeichen in den Puffer schreiben*)
   S_BUF1.BUFFER[1] := BYTE#16#72;
   S_BUF1.BUFFER[2] := BYTE#16#74;
   S_BUF1.BUFFER[3] := BYTE#16#2D;
   S_BUF1.BUFFER[4] := BYTE#16#4E;
   S_BUF1.BUFFER[5] := BYTE#16#65;
   S_BUF1.BUFFER[6] := BYTE#16#74;
   S_BUF1.BUFFER[7] := BYTE#16#00;
   S_BUF1.BUFFER[8] := BYTE#16#00;
   S_BUF1.BUFFER[9] := BYTE#16#50;
   S_BUF1.BUFFER[10] := BYTE#16#50;
   S_BUF1.BUFFER[11] := BYTE#16#0E;
   S_BUF1.BUFFER[12] := BYTE#16#00;
   S_BUF1.BUFFER[13] := BYTE#16#00;
   S_BUF1.BUFFER[14] := BYTE#16#00;
   S_BUF1.BUFFER[15] := BYTE#16#00;
   S_BUF1.BUFFER[16] := BYTE#16#02;
   S_BUF1.BUFFER[17] := BYTE#16#00; (*die folgenden DMX-Kanäle wurden schon in den Puffer geschrieben*)
   S_BUF1.SIZE :=118;
   send := FALSE;
END_IF;

IP_CONTROL1(TIME_OUT:=T#1S,IP_C:= IP_C1,S_BUF:=S_BUF1, R_BUF:=R_BUF1);

Gerne würde ich noch die ersten 18 Werte im Sendepuffer fix vorbelegen und nicht bei jedem Senden neu schreiben. Das habe ich aber noch nicht hinbekommen.

Gruß annD


[gelöscht durch Administrator]
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: peewit am 19. Oktober 2016, 12:25:55
Zitat
Gerne würde ich noch die ersten 18 Werte im Sendepuffer fix vorbelegen und nicht bei jedem Senden neu schreiben. Das habe ich aber noch nicht hinbekommen.

Die Bytes im Sendebuffer bleiben erhalten  da sie vom ip_control nicht verändert werden
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: annD am 19. Oktober 2016, 18:31:06
Wenn ich diesen Teil vom Buffer nur einmal beschreiben möchte, wo müsste ich das machen? Derzeit geschieht es bei jedem Senden - wenn ich es außerhalb der IF-Abfrage mache, dann geschieht es bei jedem Zyklus. Muss ich mir dafür eine zusätzliche Abfrage machen, ob die Daten schon im Puffer stehen und nur bei Unterschied beschreiben? Es soll ja nur beim ersten Aufruf geschehen. Am Schönsten wäre, wenn ich es bereits bei der Variablendeklaration befüllen könnte.
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: peewit am 20. Oktober 2016, 08:19:32
am bausteinanfang das einfügen

IF init = false THEN
   init := TRUE;
   S_BUF1.BUFFER[0] := BYTE#16#41; (*DMX-Kopfzeichen in den Puffer schreiben*)
   S_BUF1.BUFFER[1] := BYTE#16#72;
   S_BUF1.BUFFER[2] := BYTE#16#74;
   S_BUF1.BUFFER[3] := BYTE#16#2D;
   S_BUF1.BUFFER[4] := BYTE#16#4E;
   S_BUF1.BUFFER[5] := BYTE#16#65;
   S_BUF1.BUFFER[6] := BYTE#16#74;
   S_BUF1.BUFFER[7] := BYTE#16#00;
   S_BUF1.BUFFER[8] := BYTE#16#00;
   S_BUF1.BUFFER[9] := BYTE#16#50;
   S_BUF1.BUFFER[10] := BYTE#16#50;
   S_BUF1.BUFFER[11] := BYTE#16#0E;
   S_BUF1.BUFFER[12] := BYTE#16#00;
   S_BUF1.BUFFER[13] := BYTE#16#00;
   S_BUF1.BUFFER[14] := BYTE#16#00;
   S_BUF1.BUFFER[15] := BYTE#16#00;
   S_BUF1.BUFFER[16] := BYTE#16#02;
   S_BUF1.BUFFER[17] := BYTE#16#00; (*die folgenden DMX-Kanäle wurden schon in den Puffer geschrieben*)
END_IF;
Titel: Re: DMX über Ethernet (Art-Net-Node)
Beitrag von: annD am 29. Oktober 2016, 19:57:26
Super, danke. Ich habe die Änderung erfolgreich übernommen.

Ich hätte noch eine kleine Frage zum IP_CONTROL2: Ich erhalte nach einem neuen Download bzw. nach einem Reset den Error 33554432 (decimal) bzw. 16#02000000 (hexadecimal). In der Doku habe einen systemspezifischen Fehler (Codesys) "SysSockBind nicht erfolgreich ausgeführt" herausgelesen. Lässt sich das irgendwie vermeiden? Nach einem Neustart der Steuerung läuft alles wieder normal.

Gruß annD