Kommunikation zwischen PC und Interface

  • Hallo,


    zum Bearbeiten meiner Bachelorarbeit benötige ich etwas Hilfe. Dabei soll als Teilaufgabe ein DMX Verbund automatisiert werden (Interface: JMS USB2DMX). Heißt, der DMX Verbund soll durch ein Programm (CANoe) vom PC aus gesteuert werden. Mit USBlyzer habe ich den Datenstrom von PC (DMX Control 2) zu Interface analysiert und versucht genauso umzusetzten (siehe Anhang). Die Programmierung in CANoe wird mit CAPL gelöst (Visual Basic ähnlich). In CAPL habe ich nun ein Programm geschrieben, dass diesen Datenstrom erzeugt (512 Bytes). Bei der Ausgabe dieses Datenstroms über USB leuchtet jedoch keine Lampe auf. Laut USBlyzer ist mein selber erzeugter Datenstrom etwas anders (Länge und Anordnung der USB Request).
    Nun zu meinem Anliegen: Wie wird die periodische Nachricht erzeugt, die vom PC zum Interface verläuft ? Codebeispiel wäre sehr hilfreich, da diese Nachricht anscheinend sehr zeitkritisch ist.


    Vielen Dank schon mal im voraus.


    MFG Andy

  • Auf Grund der Timing-Anforderungen ist die Ansteuerung des Interfaces bei DMXC auch in eine C++-DLL ausgelagert.


    Der wesentliche Teil davon ist diese Schleife:


  • Könnten Sie mir noch die Prinzipielle Kommunikation zwischen DMX Control 2 bis hin zum Interface erläutern ? Dokumente, Schematiken wären sinnvoll bezüglich der Kommunikation zwischen den Programmen, DLLs, Schnittstelle, da mir nicht ganz klar ist, welche "Module" zusammen kommunizieren.


    Gruß Andy

  • Wird dabei die Funktion "Öffne COM Port X" von dem Source Code: ODMX_Open oder OpenDMXDriver realisiert oder wird das über externen Code realisiert ?


    Frage ist deshalb wichtig, da CANoe nur eine RS232 ansprechen kann und keine RS485, daher hoffe ich, dass die Funktion "Öffne COM Port X" durch den Source Code von Ihnen realisiert wird.


    Gruß Andy

  • "RS232" ist völlig in Ordnung. Der FTDI spuckt so oder so nur 3.3 V-Pegel aus. Erst durch die nachfolgenden Transceiver wird daraus RS-232 oder halt RS-485. Daher gibt es auf Software-Seite eigentlich keinen Unterschied.
    Der FTDI (der nicht mal im VCP-Modus betrieben wird) wird im Wesentlichen in OpenDMXDriver::InitFTDI geöffnet und initialisiert.


    Stefan

  • Die softwareseitige Einstellungen der Parameter der RS232 Schnittstelle zum Senden sind demzufolge: 9600 Baud, keine Parität, 8 Datenbits und 1 Stopbit ?


    Noch eine Frage zur Grundlegenden Kommunikation von PC zu Interface: Mit welchen DLLs bzw. Modulen kommuniziert meine Anwendungssoftware (Programm das ich schreibe) genau, um das Interface anzusprechen ? (FTD2XX.dll / OpenDMXDLL.dll / OpenDMX.out.dll)


    Gruß Andy

  • Die softwareseitige Einstellungen der Parameter der RS232 Schnittstelle zum Senden sind demzufolge: 9600 Baud, keine Parität, 8 Datenbits und 1 Stopbit ?

    Ich empfehle die Beschäftigung mit dem DMX-Protokoll: DMX (Wikipedia)
    Demzufolge sind die Einstellungen: 250000 Baud, keine Parität, 8 Datenbits und 2 Stopbits.


    Welche DLLs du benutzt liegt ganz bei dir. Wenn du das Interface schnell genug selbst ansteuern kannst: Direkt FTD2xx. Ansonsten kannst du auch die OpenDMXDLL bauen und von deiner Software aus ansprechen. Dann ist das ganze deutlich weniger zeitkritisch, denn der Teil wird von der DLL in einem Thread erledigt. Das Ausgabeplugin von DMXC (.out.dll) zu nehmen macht, denke ich, nicht so viel Sinn.


    Stefan

  • Falls es jemanden interessiert, ich habe ein LabVIEW Programm geschrieben, dass auf den FTDI Treiber zugreift und damit die DMX Steuerung der 512 Kanäle ermöglicht. Kompatibel ist es mit dem Interface von JMS und Enttec. Auf Anfrage kann ich das VI zusenden.


    MFG Andy

  • Newly created posts will remain inaccessible for others until approved by a moderator.

    The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.