2016-07-22 23 views
-3

Ich habe eine Menge Code in C, die ich in ein Simulink-Blockdiagramm konvertieren muss. Ich möchte S-Funktionen nicht verwenden, weil ich möchte, dass das Simulink-Blockdiagramm nur grundlegende Simulink-Blöcke verwendet, die der Benutzer ändern kann, ohne C-Code zu kennen. Ich konnte mehrere Zeilen konvertieren; Ich habe jedoch Probleme mit den folgenden Zeilen von C-Code:Wie konvertiere ich diese C-Code-Zeile in ein Simulink-Blockdiagramm?

myVar += myConst1 - myConst2*myConst3 
\\ More code changing other variables etc. 
myVar -= myConst4 

Meine ursprüngliche Idee war es, eine Rückkopplungsschleife zu verwenden; Da sich jedoch in mehreren anderen Codezeilen myVar ändert, würde diese Idee nicht funktionieren.

Meine zweite Idee war, irgendwie zu speichern , wenn es aktualisiert wird, so dass beim nächsten Mal myVar zugegriffen wird, wird es der neue Wert sein (auch in anderen Zeilen des Codes). Ich kann simout() nicht verwenden, da ich die Variable dynamisch ändern muss, während das Modell ausgeführt wird. Wie kann ich das machen?

Vielen Dank im Voraus!

Antwort

0

Wenn die Speicher "Data Store Memory", "Data Store Read" und "Data Store Write" zulässig sind, können Sie sie zur Implementierung verwenden + die relative Reihenfolge der Blockausführung für diese Blöcke festlegen. enter image description here

+0

Je nach Anwendungsgebiet ist zu beachten, dass e. G. Die "MISRA AC SLSF" -Richtlinie besagt Folgendes: "Datenspeicher darf nicht zum Austausch von Daten über Teilsystemgrenzen hinweg verwendet werden und darf nur dort verwendet werden, wo der Datenaustausch transparent ist, dh innerhalb eines lokalen Teilsystems." –