Bitte macht alle mit bei der Umfrage zu künftigen Leistungsmerkmalen
Jede Stimme zählt! Hier: viewtopic.php?f=9&t=3585

[TIPP] How to: DMX @ TWS 9x0Q

Diskussionen und Fragen zur DMX-Funktion. Zur DMX-Hardware gibt es ein eigenes Unterforum unter Zubehör
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
TobiasLessing
Reactions:
Beiträge: 24
Registriert: Do Dez 10, 2020 11:24 pm
Wohnort: Zwochau
Hat sich bedankt: 12 Mal
Danksagung erhalten: 29 Mal

#11

Beitrag von TobiasLessing »

Hallo zusammen,

hier wieder ein kleiner Hinweis, der ggf. Arbeit erspart:
Wer mit dem Gedanken spielt früher oder später Modbus zu nutzen, muss sich ja leider von einem DMX-Universum trennen sofern er/sie eine RTU-Linie aufbauen möchte. Wird die besagte RTU-Schnittstelle freigeschalten, wird ein DMX-Universum deaktiviert und die RS-485 Schnittstelle kann dann für Modbus genutzt werden. Beim aktivieren der Modbus-RTU-Schnittstelle wird das auch beschrieben:
Bild

Wichtig: Es betrifft das DMX-Universum-1. Universum-2 bleibt erhalten. Wie in der Beschreibung aufgeführt, muss man auch weiterhin die Startadresse für das besagte zweite Universum nutzen. Also 512 für Adresse1 im zweiten Universum bis Adresse 1023.

Der Hinweis nun:
Falls ihr nicht mit zwei Universen plant, dann nutzt von Anfang an auch das zweite. Das erspart euch Arbeit wenn es mit ModbusRTU dann losgehen soll (ich spreche aus Erfahrung mit meinen aktuellen 2x32 Kanälen in 16 4-Kanal-Bausteinen).

Ich hoffe der bzw. die ein oder andere berücksichtig das bereits bei der Planung.
Hier der entsprechend angepasste Baustein:

Code: Alles auswählen

/**
 * DMX-Logik zur Ansteuerung von DMX-Kanälen
 * Input: Übergangszeit (Fadetime); Gammakorrktur-Wert; Sollwert je Kanal
 * TWS-interene Weitergabe und Verarbeitung, daher kein Output
 * 
 * Dieses Codebespiel ist für vier DMX-Kanäle umgesetzt, kann aber einfach erweitert werden
 * 
 * Voraussetzung am DMX-Decoder: Lineare Ausgangscharakteristik (mit Gamma = 1 am TWS, ist auch eine logaritmische Chrakteristik des Decoders nutzbar); Helligkeitssteuerung mit 8-bit ("256-Graustufen"), Ab Decoder die "Einzelkanalsteuerung" auswählen, damit alle DMX-Adressen verarbeitet werden.
 * 
 * Ausgangscharakterisik:
 * Gamma = 1: lineare Dimmkurve
 * Gamme > 1: logartthmische Dimmkurve (1,4..1,6 funktionernen am Skydance D4-L zufriedenstellend)
 * 
 * Die DMX-Startadresse ist um "1" zu reduzieren. Im Modul "DMX-Test" wird dann aufsteigen eine weitere Adresse angesteuert. Sie wird als letzter Parameter im DMX-Test-Modul eingetragen, darf aber selbst keine Variable sein.
 * Beispiel: 4CH-DMX-Decoder mit Startadresse 42 -->
 * ["DMX_Test",["$CH1_DMX_value","$CH2_DMX_value","$CH3_DMX_value"], "$Fade", 41]
 * CH1=DMX-Adresse 41, CH2=DMX-Adresse 42, CH2=DMX-Adresse 43, CH4=DMX-Adresse 44
 * Diese Adressierung von 0 bis 511 gilt bei der Nutzung des ersten DMX-Universums. Wer ein zweites nutzen möchte oder die Modbus-RTU-Schnittstelle nutzt, muss die Adressen bei 512 beginnen (Startadresse 876 ist dann die DMX-Adresse 365 im zweiten Universum: Startadresse = DMX-Adresse-2.Universum+512-1)
 * 
 * Hinweise: Die Kanalsbezeichnungs ist ggf. sinnhaft anzupassen
 * 
 * Version V1.2
 * Autor: Tobias Lessing
 * Veröffentlichung: 25.05.2022
 * Bekannte Bugs: Die Wertbegrenzung für die Input habe ich bewusst nicht aufgenommen, um den Code übersichtlich zu halte. Ich vertraue auf eure geistige Anwesenheit beim Parametrieren. Wer an sich selbst zweifelt, kann selbst Limiter-Module hinzufügen
 *
 *Changelog:
 * v1.1:
 * - Korrekturen der Kommentare & Beschreibungen
 * - Startadresse für Universum 2 angepasst
 */

{
  "_Meta": {
    "Description": "Ansteurungslogik für mehrkanalige DMX-Aufbauten",
    "Version": "1.2",
    "Icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9Ijc1bW0iCiAgIGhlaWdodD0iNzVtbSIKICAgdmlld0JveD0iMCAwIDc1IDc1IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjAuMi0yIChlODZjODcwODc5LCAyMDIxLTAxLTE1KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iUkJHLUljb24uc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMC45ODk5NDk0OSIKICAgICBpbmtzY2FwZTpjeD0iMTEwLjM0NTM5IgogICAgIGlua3NjYXBlOmN5PSIxMzUuNTkzMTIiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC1yb3RhdGlvbj0iMCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0idHJ1ZSIKICAgICBpbmtzY2FwZTpsb2NrZ3VpZGVzPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTEzNyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iRWJlbmUgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9Im9wYWNpdHk6MC45OTU7bWl4LWJsZW5kLW1vZGU6ZGlmZmVyZW5jZTtmaWxsOiNmZjAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLXdpZHRoOjAuNTM4NTI0O2ltYWdlLXJlbmRlcmluZzphdXRvIgogICAgICAgaWQ9IktyZWlzX1IiCiAgICAgICBjeD0iMzcuNSIKICAgICAgIGN5PSIyNSIKICAgICAgIHI9IjI1IiAvPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9Im1peC1ibGVuZC1tb2RlOmRpZmZlcmVuY2U7ZmlsbDojMDAwMGZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZS13aWR0aDowLjQ1NDQxIgogICAgICAgaWQ9IktyZWlzX0IiCiAgICAgICBjeD0iMjUiCiAgICAgICBjeT0iNTAiCiAgICAgICByPSIyNSIgLz4KICAgIDxjaXJjbGUKICAgICAgIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTpkaWZmZXJlbmNlO2ZpbGw6IzAwZmYwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2Utd2lkdGg6MC41MjEwNTQiCiAgICAgICBpZD0iS3JlaXNfRyIKICAgICAgIGN4PSI1MCIKICAgICAgIGN5PSI1MCIKICAgICAgIHI9IjI1IiAvPgogIDwvZz4KPC9zdmc+Cg=="
  },
  "Input": [
      ["Fadetime", "Zeit für Lichtübergang [0,0s .. 1,0s]", "$Fade", "u"], //für alle Kanäle einheitlich
      ["Gamma","Wert für die Gamma-Korrektur[1...3]","$Gamma","u"], //zur Berechung der Gammakorrektur (siehe BEschreibung oben zur Ausgangscharakteristik)
      ["Helligkeit-R","Helligkeitswert für Kanal 1 [0...100]","$CH1_brightness","c"], //linearer Eingangswert der Helligkeit des jeweiligen Kanals in %
      ["Helligkeit-G","Helligkeitswert für Kanal 2 [0...100]","$CH2_brightness","c"], //s.o.
      ["Helligkeit-B","Helligkeitswert für Kanal 3 [0...100]","$CH3_brightness","c"], //s.o.
      ["Helligkeit-W","Helligkeitswert für Kanal 4 [0...100]","$CH4_brightness","c"] //s.o.
  ],
  "Output": [ //das egebeniss wird intern vom direkt an den Co-Prozessor gegebn und benötigt keine Ausgabe. Zu Kontrolle/Visualisierung könnten hier ggf. Parameter ergänzt werden
  ],
  "Level": [
      ["$Fade","float",0.2], //Übergangszeit
      ["$Gamma","float",1.6], //Korrekturwert der Ausgangscharakteristik ("Gammakorrektur")
      ["$Formula","string","255*(0.01*X1)^X2"], //Korrekturformel für 8-bit Decoder & einen prozentualen Eingangswert
      ["$CH1_brightness","float",0.0], //siehe Input
      ["$CH2_brightness","float",0.0], //s.o.
      ["$CH3_brightness","float",0.0], //s.o.
      ["$CH4_brightness","float",0.0], //s.o.
      //["$CHx_brightness","float",0.0], für ejeden der x-weiteren Kanäle ergänzen
      ["$CH1_DMX_value","float",0.0], //interen Berechnungsvariable
      ["$CH2_DMX_value","float",0.0], //s.o.
      ["$CH3_DMX_value","float",0.0], //s.o.
      ["$CH4_DMX_value","float",0.0] //s.o.
      //["$CHx_DMX_value","float",0.0] für ejeden der x-weiteren Kanäle ergänzen (Zeilenabschluss-Kommas beachten!)
  ],
  "Module": [
      ["CalcFormula",["$CH1_brightness","$Gamma"], "$CH1_DMX_value", "$Formula"], //Verrechnung des Helligkeits-Sollwertes für Kanal 1
      ["CalcFormula",["$CH2_brightness","$Gamma"], "$CH2_DMX_value", "$Formula"], //[...] Kanal 2
      ["CalcFormula",["$CH3_brightness","$Gamma"], "$CH3_DMX_value", "$Formula"], //[...] Kanal 3
      ["CalcFormula",["$CH4_brightness","$Gamma"], "$CH4_DMX_value", "$Formula"], //[...] Kanal 3
      //["CalcFormula",["$CHx_brightness","$Gamma"], "$CHx_DMX_value", "$Formula"], für x weitere Kanäle kopieren und
      ["DMX_Test",["$CH1_DMX_value","$CH2_DMX_value","$CH3_DMX_value","$CH4_DMX_value"], "$Fade", 512] //DMX-Ansteuerung für vier unabhängige Kanäle mit Startadresse "1" im zweiten Universum (siehe auch oben, Stichwort Modbus); das Array für jeden zusätzlichen Kanal mit "$CHx_DMX_value" erweitern
  ]
}

/**Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht. */
Na dann.
Viele Grüße aus Sachsen

Tobias

Edit:
Saß gerade im Dunkel, als ich die RTU-Schnittstelle deaktiviert hatte um den obigen Screenshot zu machen. Ich musste einen Neustart des TWS durchführen, damit der Server das zweite Universum nun wieder ordnungsgemäß ansteuern konnte. Bei aktivieren der RTU-Schnittstelle wird es übrigens ebenfalls dunkel, da reichte bei mir aber das nachsenden der Werte auf den Bus.
Zuletzt geändert von TobiasLessing am Do Mai 26, 2022 12:23 am, insgesamt 2-mal geändert.
TWS 960Q ID:458, VPN offen, Reboot erlaubt nach Rücksprache
TWS 950Q ID:488, offline
PWM SN 1048

StefanW
Elaborated Networks
Reactions:
Beiträge: 6998
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Grafing
Hat sich bedankt: 3539 Mal
Danksagung erhalten: 4932 Mal
Kontaktdaten:

#12

Beitrag von StefanW »

Hallo Tobias,

danke für Deine hervorragenden Beiträge.

Hierzu ein Hinweis:
TobiasLessing hat geschrieben: Mi Mai 25, 2022 11:51 pmWer mit dem Gedanken spielt früher oder später Modbus zu nutzen, muss sich ja leider von einem DMX-Universum trennen sofern er/sie eine RTU-Linie aufbauen möchte.
Nein, muss man nicht.

Man kann die "Dual Isolated Modbus Extension" dazu kaufen: https://shop.elabnet.de/timberwolfserve ... e_865_2388

Damit hat man dann 2 x DMX und 2 x Modbus (wobei man weitere Modbus Extensions anstecken kann.

Die Parametrierung dieser externen Schnittstelle ist hier beschrieben: Inbetriebnahme externe(r) Modbus Externsion(s)


lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART der Elaborated Networks GmbH
Bitte immer zuerst im WIKI / Handbuch lesen. Support nur über dieses Forum. Keine PN.
Link zu Impressum und Datenschutzerklärung oben
Antworten

Zurück zu „DMX“