Ich habe mein Beispiel mal entsprechend angepasst. Es ist aber erstmal prinzipiell nur für 1 Counter Output gemacht. Die Erweiterung auf mehr ist entsprechend einfach und kann direkt in der selben Schleife gemacht werden. Neben den Kommentaren im Code nochmal eine kurze Beschreibung wie ich es mir gedacht habe:
1. Tasks am Anfang alle anlegen, hierbei für den CO Kanal einen eigenen.
2. In der Schleife Wertänderung des jeweiligen Schalters abfangen und je nach Zustand den Kanal Starten bzw. Stoppen. Der Start kann hierbei über den Autostart des DAQmx Write erfolgen. Weiterhin den Enabled State des jeweiligen Tasters aktiveren bzw. deaktiveren um Fehlbedienung zu vermeiden.
3. In der Schleife Wertänderung des jeweiligen Tasters abfangen und die aktuellen Zeiten mit DAQmx Write schreiben.
4. Nach Ende der Schleife alle Tasks beenden (wenn diese liefen) und löschen
Du bekommst somit die Funktionalität die Pulsausgabe an bzw. abschalten zu können und während einer aktiven Generierung die An- bzw. Auszeit direkt ändern zu können.