-> Hier kostenlos registrieren
Hallo! Da ich trotz intensiven Recherche im Forum keine Lösung für mein Problem finde, möchte ich euch um eure Hilfe bitten.
Vorweg möchte ich erwähnen, dass ich mich im Rahmen meines Studiums erst seit kurzem mit SPSen beschäftige und keinerlei Vorkenntnisse hatte. Das erwähne ich nur, falls ich allzu triviale Fragen stellen sollte
Ich habe mehrere Rollenförderer, deren Aktoren und Sensoren im Programm als globale Variablen vorliegen und schon adressiert sind.
Ich möchte einen universellen FB für diese Förderer schreiben und diese beim Aufruf durch das Programm von außen vollständig parametrieren. Dazu müssen zwei Sensoren, ein Motor und eine Zustandsvariable übergeben werden. Mittels der Zustandsvariable wird im FB über eine CASE Anweisung festgelegt, welche Aktion der FB ausführen soll. Das ganze habe ich auch schon programmiert, nur dass ich jetzt daran scheitere, dass das Stellsignal für den Motor nicht aus dem FB "rauskommt". Ich hab versucht das über VAR_IN_OUT zu realisieren, musste aber nach kurzer Recherche einsehen, dass das anscheinend nicht ganz trivial ist. Über VAR_OUT möchte ich das auch nicht realisieren, da letztlich alles im inneren des FB ablaufen soll, so dass ich in meinem Programm nur hintereinander die FB instanziieren und mit den Sensoren/Aktoren sowie der Zustandsvariable füttern möchte.
Wie bekomme ich das am besten hin? Ich vermute, dass ich das mit Pointern lösen könnte, doch da scheitere ich kläglich dran. Ich konnte bisher noch keine gute Erklärung dazu finden
Ich arbeite mit Codesys V2.3 und die SPS ist von WAGO.
Hier das ganze mal beispielhaft:
Ich hoffe ich konnte mein Problem halbwegs gut veranschaulichen und würde mich über Hilfe sehr freuen.
Beste Grüße
Vorweg möchte ich erwähnen, dass ich mich im Rahmen meines Studiums erst seit kurzem mit SPSen beschäftige und keinerlei Vorkenntnisse hatte. Das erwähne ich nur, falls ich allzu triviale Fragen stellen sollte

Ich habe mehrere Rollenförderer, deren Aktoren und Sensoren im Programm als globale Variablen vorliegen und schon adressiert sind.
Ich möchte einen universellen FB für diese Förderer schreiben und diese beim Aufruf durch das Programm von außen vollständig parametrieren. Dazu müssen zwei Sensoren, ein Motor und eine Zustandsvariable übergeben werden. Mittels der Zustandsvariable wird im FB über eine CASE Anweisung festgelegt, welche Aktion der FB ausführen soll. Das ganze habe ich auch schon programmiert, nur dass ich jetzt daran scheitere, dass das Stellsignal für den Motor nicht aus dem FB "rauskommt". Ich hab versucht das über VAR_IN_OUT zu realisieren, musste aber nach kurzer Recherche einsehen, dass das anscheinend nicht ganz trivial ist. Über VAR_OUT möchte ich das auch nicht realisieren, da letztlich alles im inneren des FB ablaufen soll, so dass ich in meinem Programm nur hintereinander die FB instanziieren und mit den Sensoren/Aktoren sowie der Zustandsvariable füttern möchte.
Wie bekomme ich das am besten hin? Ich vermute, dass ich das mit Pointern lösen könnte, doch da scheitere ich kläglich dran. Ich konnte bisher noch keine gute Erklärung dazu finden

Ich arbeite mit Codesys V2.3 und die SPS ist von WAGO.
Hier das ganze mal beispielhaft:
Code:
[FONT=courier new]Aufruf des FB Band im Programm:
Band1(Sensor1:=T1Sensor1, Sensor2:=T1Sensor2, Zustand:=1, Motor:=T1Bandmotor) Sensoren und Aktoren liegen als boolsche globale Variablen vor
Variablendeklaration FB:
VAR_INPUT
Sensor1: BOOL;
Sensor2: BOOL;
Zustand: INT;
????? wie deklariere ich den Motor, so dass das Stellsignal den den Motor rausgeht?
END_VAR
[COLOR=#FFFFFF]
[/COLOR]IF Sensor1=TRUE OR Sensor2=TRUE AND.... Das ist jetzt nur beispielhaft der Inhalt des FB. Wie würde ich das mit Pointern realisieren?
THEN Motor:=TRUE;
ELSE Motor:=FALSE;
END_IF;[/FONT]
Beste Grüße