-> Hier kostenlos registrieren
Hallo SPS-Gemeinde,
leider bin ich sonderlich bewandert in der ganzen SPS Geschichte, dennoch beschäftige ich während meines Studiums damit und habe derzeit ein größeres Projekt bei dem ich auf folgendes Problem gestoßen bin.
Ich hab Bausteine in SCL geschrieben in denen ich andere Bausteine aufrufen muss. Dazu wähle ich einfach unter Einfügen->Bausteinaufruf den entsprechenden Baustein aus.
Das ganze sieht dann so aus:
Nun muss ich die INOUT Variablen mit denen belegen, die im aufgerufenen Baustein benötigt werden.
Übersichtshalber habe ich die einzelnen Variablen die thematisch bzw. von ihrer Aufgabe her zusammen gehören in einen UDT gepackt und einzelne UDTs in einem DB zusammen gefasst.
Das ganze sieht dann so aus:
Als Fehlermeldung bekomme ich für jeden übergebenen UDT
Jetzt habe ich schon einiges darüber gelesen wie einzelne Wörter oder ähnliches übergeben werden, aber noch nicht wie komplette Strukturen, also UDTs, übergeben werden.
Zur Info hier noch der Baustein der aufgerufen werden soll:
Würde mich über einige Tipps freuen
Ritti
leider bin ich sonderlich bewandert in der ganzen SPS Geschichte, dennoch beschäftige ich während meines Studiums damit und habe derzeit ein größeres Projekt bei dem ich auf folgendes Problem gestoßen bin.
Ich hab Bausteine in SCL geschrieben in denen ich andere Bausteine aufrufen muss. Dazu wähle ich einfach unter Einfügen->Bausteinaufruf den entsprechenden Baustein aus.
Das ganze sieht dann so aus:
Code:
Bausteinname(
prog := // INOUT: STRUCT
, global := // INOUT: STRUCT
, data := // INOUT: STRUCT
); // VOID
Nun muss ich die INOUT Variablen mit denen belegen, die im aufgerufenen Baustein benötigt werden.
Übersichtshalber habe ich die einzelnen Variablen die thematisch bzw. von ihrer Aufgabe her zusammen gehören in einen UDT gepackt und einzelne UDTs in einem DB zusammen gefasst.
Das ganze sieht dann so aus:
Code:
Bausteinname(
prog := db1.prog,
global := db1.global,
data := db1.data
); // VOID
Als Fehlermeldung bekomme ich für jeden übergebenen UDT
Code:
Ungültiger Datentyp
Jetzt habe ich schon einiges darüber gelesen wie einzelne Wörter oder ähnliches übergeben werden, aber noch nicht wie komplette Strukturen, also UDTs, übergeben werden.
Zur Info hier noch der Baustein der aufgerufen werden soll:
Code:
FUNCTION Funktionsname: VOID
TITLE = 'Bausteintitel'
VERSION : '1.0'
AUTHOR : Name
NAME : TKCP
FAMILY : UEW
// eingangsvariablen
VAR_INPUT
END_VAR
// ausgangsvariablen
VAR_OUTPUT
END_VAR
// ein- und ausgangsvariablen
VAR_IN_OUT
prog : "UDT-TopKnifeProgram";
global : "UDT-KnifeGlobal";
data : "UDT-TopKnifeData";
set : "UDT-TopKnifeSet";
bits : "UDT-TopKnifeBits";
END_VAR
// temporäre variablen
VAR_TEMP
zaehler : INT;
zaehler2 : INT;
position : INT;
END_VAR
BEGIN
.........
END_FUNCTION
Würde mich über einige Tipps freuen
Ritti