Scriptsprache zur Synchronisation von Geräten

Ich suche eine Scriptsprache, in der Möglichkeiten zur zeitliche Synchronisation vorgesehen sind. Es sollen damit Geräte gesteuert und komplexere parallel ablaufende Aktionen vorbereitet werden. Diese Aktionen sollen dann durch ein Start-Signal gleichzeitig beginnen und der weitere Ablauf soll ohne weiteren Steuerungs-Zugriff erfolgen.
Egal, wie und ob die betreffenden Geräte das auch realisieren können, will ich „nur“ wissen, ob es bereits geeignete Sprach-Konstrukte gibt - und in welcher Sprache

Vom Konzept her wäre wohl Multithreading angebracht, das heißt, man hat mehrere Code-Teile parallel laufen, von denen sich jeder um genau ein Gerät kümmert.

Das lässt sich grundsätzlich schon mit Batchdateien realisieren, wobei das sicher nicht schön ist. Wenn es ne Scriptsprache sein soll, würde ich wohl zu Python greifen, weil ich das kann und wüßte, wie deine Aufgabe zu realisieren ist. Es gibt aber noch ein paar andere Sprachen.

Wichtig sind vor allem die Interfaces zu den Geräten, also welche Möglichkeiten gibt es, mit diesen zu kommunizieren.
Und das Timing. Wie genau müssen die Geräte gleichzeitig los legen, wenn das Start-Signal kommt? Ein paar Millisekunden sind mit Python sicher möglich, mit Batch-Dateien eher einige 10 bis 100. Wenn es sehr viel schneller gehen muß, würde ich mir etwas anderes als ne Softwarelösung ausdenken.

Also, die Frage ist nicht, OB sowas existiert, sondern welche Sprache am besten für deine konkrete Aufgabe geeignet ist.

Danke, aber ich suche „nur“ bereits definierte/bekannte Sprach-Konstrukte

Ich gebe @sweber recht, in dem Sinne, dass es mit Python gehen würde. Die einzige Punkte, die hier stören:

  1. exakte zeitliche Synchronisation, die in ihrer Exaktheit selbst mit richtigen Programmiersprachen schon schwierig wird. Die Frage ist auch, was du mit ‚exakt‘ meinst.
  2. komplexe Parallelität, denn hier müsstest du erst einmal definieren, was du mit ‚komplex‘ bezeichnest (sicher etwas anderes, als was ich damit bezeichnen würde)

Es gibt real-time Betriebssysteme mit Unterstützung der parallelen Programmierung, die das Gewünschte erreichen können.

Macht man leichte Abstriche an deinen Anforderungen, dann ist das auch mit dem Real-Time Linux Kernel und mit C oder C++ möglich.

Aber es gibt auch andere Optionen. Anstatt sich zu beschweren, dass du „nur“ geeignete Sprachkonstrukte sehen möchtest, solltest du erstmal genauer spezifizieren, was du eigentlich umsetzen willst und wie.

Gruß
VB

Ich habe doch geschrieben, daß das mit so gut wie allen Sprachen möglich ist.

Ich würde die Scriptsprache Python z.B. mit dem Modul threading verwenden.

Der folgende (billige) Code enthält zwei Funktionen zum Vorbereiten deiner Geräte - die müssen natürlich noch mit Code gefüllt werden, der das tut. Danach werden beide Funktionen als Threads aufgerufen, arbeiten also gleichzeitig. Und es wird gewartet, bis beide Funktionen durchgelaufen sind, dann müßte noch weiterer Code für das, was dann kommt folgen:

    
    import threading
    import time
    
    def PrepareDevice1():
        # Gerät 1 vorbereiten
         
    def PrepareDevice2():
        # Gerät 2 vorbereiten
      
    t1=threading.Thread(target=PrepareDevice1)
    t2=threading.Thread(target=PrepareDevice2)
     
    t1.start()
    t2.start()
    
    while(not threading.active_count() == 0):
        time.sleep(1)

Neben den genannten Bedingungen könnte es übrigens auch wichtig werden, ob die Geräte miteinander interagieren müssen, oder ob es egal ist, wenn ein Gerät schneller mit den Vorbereitungen fertig ist.

1 Like