Ich arbeite zurzeit mit ControlDesk 5.1 einer dSPACE Echtzeitsimulation.
In Controldesk ist es möglich ein Python-Script auszuführen... Die Anwendungsmöglichkeiten scheinen nahezu unendlich zu sein.
Mein Ziel ist es eine Variable, welche auf Simulink erstellt wurde, über ein Script in ControlDesk einen bestimmten Wert zu zuweisen und eine andere auszulesen.
Das Script soll alle 5 Sekunden den Wert der Variablen erneut auf 1 setzen und eine Sekunde später wieder auf 0 (Flankensteuerung).
Das funktioniert auch schon.
Nun besteht die Schwierigkeit die Variable in Controldesk aufzurufen und ihr die Werte zuzuordnen bzw. die andere auszulesen.
Hat von euch einer Erfahrung mit dieser Problematik?
Wie definiere ich den Pfad korrekt so, dass auf meine Variable geschrieben wird?
Der Variablen-Pfad laut ConrolDesk:
'ds1006()://Model Root/Testsystem/Rechnen/Lastmoment1/M8_alpha/Rotation/Value'
Das dazugehörige Programm: (anscheinend funktioniert der 'Tab' hier nicht; alles unterhalb der while-Schleife ist eingerückt)
('x' soll zu späterem zeitpunkt mal der Variablenpfad/die Variable sein.)
Code: Alles auswählen
if __name__=="__main__":
from time import * # sekundenzähler importieren
x = 1 # 'x' für Variablenpfad aus Controldesk Status_Verschiebung [Out1] (read)
# On-Button schaltet ein; Off-Button schaltet aus
start_time = int(time ())
counter = 1 # durchlaufzähler
while x == 1: # solange der AutoStart an ist ... [Status_Verschiebung [Out1]]
timer = int(time()) # Zeit in Sekunden
value = 1 # wert auf 1 setzen; 'value' als Variablenpfad der zu schreibenden Variablen
# Status_Verschienung_ [Value] (write)
counter = counter+1 # durchläufe um 1 hochzählen
sleep(1) # 1 sec nach wert = 1 setzen
value = 0 # wert auf 0 setzen; 'value' als Variablenpfad der zu schreibenden Variablen
# Status_Verschienung_ [Value] (write)
sleep (4) # sobald die sekundenanzahl sich ohne rest durch 30 teilen lässt (alle 30 sec; 1+29)