TIA DB_Any als In/Out deklariert aber DB geht nicht für das eigen Verständnis

Stromer16

Level-2
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,
ich habe diese Woche bei der Arbeit ein Problem gehabt. Zwar geht es bei der Anlage um drei DB's, wo einer von beiden DB's beschrieben wird und die Pumpen bzw. anderen Kompunenten angesteuert werden. Bei den DB's ist jeweils die Struktur gleich aufgebaut egal ob jetzt Labview die Steuerung hatte oder das HMI die Steuerhoheit bekamm . Ich habe nun folgende Frage anhand eines Beispiel, das ungfähr so aufgebaut war (nur das der DB größer in dem Fall war und mindestens 5 Arrys of Bool am Anfang hatte) wie die folgenden Bilder im Anhang.
Meine Frage lautet wieso wird der DBoutput siehe Foto ("DBoutput Rot") rot auf wohl der im FC siehe Foto ("FC mit DB_Any in out") als DB_Any deklariert ist?
Übrigens die Verschaltung war jeweils 1:1 in SCL Quellcode (#DBoutput.DBW0.0 :=#DBinput.DBW0.0;) usw für alle Variablen im DB.

DBoutput Rot.JPGFC mit DB_Any in out.JPGMuster DB.JPG2
 
Der Datentyp DB_ANY übergibt doch nur die DB-Nummer oder?
Lt. TIA:
DB_ANYUINTIdentifikation (Name oder Nummer) eines DBs
Der Datentyp "DB_ANY" hat im Abschnitt "Temp" die Länge 0.

Also du müsstest dann die DB-Nummer des Ziel-DB's auch als Eingangsvariable übergeben.
In deinem Baustein wird dann mit den beiden übergebenen DB-Nummern direkt auf die DB's zugegriffen.

Mach doch lieber saubere Strukturen/UDT's welche man sauber übergeben kann.
Dann funktioniert das kopieren auch z.B. mit einem MOVE.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Meine Frage lautet wieso wird der DBoutput siehe Foto ("DBoutput Rot") rot
Woher sollen wir das wissen? Wir könnten nur raten. Du kannst aber dein TIA "befragen". Klicke auf den roten Text oder halte die Maus drüber und schau, welche Fehlermeldung dir in TIA angezeigt wird.

Wenn Du die DBs als DB_ANY übergibst: mit welcher Schweinerei wolltest Du auf die übergebenen DB zugreifen? Bei einer S7-1500 kannst du die Struktur des Übergabe-Bereichs als UDT übergeben und dann innerhalb des FC sauber symbolisch auf den übergebenen Bereich zugreifen. Dann kann der TIA-Compiler auch prüfen, ob da der Aktualparameter zur Deklaration passt.
 
Die Schnittstelle als UDT definieren.. diese dann im Datenbaustein deklarieren und sauber damit arbeiten.. dann muss man nicht solche krummen Dinger drehen mit ANY Geschichten.
 
Zurück
Oben