TIA Daten eines PN-Teilnehmers (TIA V16) in FB InOut-Bereich laden

erkoausbe

Active member
Beiträge
28
Punkte Reaktionen
2
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo,

ich möchte in einem TIA V16-Projekt, in dem mehrere Servoumrichter (Lenze) zum Einsatz kommen, einen FB schreiben, der dann mehrfach aufgerufen die grundlegenden Funktionen für jeden Umrichter bearbeitet.
Jedem Umrichter möchte ich einen DB zuordnen, der aus einem Umrichter-UDT besteht.

Die vom Umrichter zu lesenden Daten habe ich ebenfalls in einem UDT (UDTIn) beschrieben.
Wenn ich dieses UDT jetzt in meinem FB als InOut-Parameter deklariere, kann ich die gelesenen Umrichterdaten mit der Funktion "GETIO" aber nicht auf dieses UDT schreiben. Es wird rot dargestellt und ich erhalten die Meldung "unzulässige Parameterzuweisung für INPUTS"
Deklariere ich den gleichen UDT aber als "Static" kann ich ihn ohne Fehler an die Funktion "GETIO" antragen! leider stehen mir die Werte dann ja aber nur im FB zur Verfügung. (Ich weiß, ich könnte per Querzugriff auf den Instanz-DB arbeiten, das tut man aber nicht.....)

Hat jemand von Euch einen Tipp, wie ich die Daten eines PN-Teilnehmers in einem FB/FC so auf die InOut-Schnittstelle schreiben kann, dass sie dem restlichen Programm in dem am InOut-Parameter übergebenen DB zur Verfügung stehen?

Ich habe auch schon versucht die Static-Struktur anschließend auf den InOut-Bereich zu kopieren, leider funktioniert auch das nicht..

Das gleiche Problem habe ich "in die andere Richtung", wenn ich die Daten, die zum Antrieb geschrieben werden sollen, über "SETIO" adressieren will.
Anscheinend ist der Zugriff auf den InOut-Bereich mit Funktionen, die einen Datenbereich adressieren nicht möglich!?

Im Anhang habe ich einen Screenshot angefügt. Dort habe ich den gleichen Datentyp einmal als Static und einmal als InOut deklariert.
Leider funktioniert das mit InOut nicht.

InOutDeklaration.jpg
 
OP
E

erkoausbe

Active member
Beiträge
28
Punkte Reaktionen
2
Zuviel Werbung?
->Hier kostenlos registrieren
Einfach den UDT in der Symboltabelle anlegen und dann als In/Out an den FB übergeben.
Hallo,

danke für die schnelle Antwort.

Leider kann ich meinen UDT (PLC-Datentyp) in der Tabelle "PLC-Variablen/Standard-Variablentabelle" nicht eintragen.
In dem Fall würde ich doch auch eine EA-Adresse zuweisen!? (Oder verstehe ich das falsch?)
Ich möchte meine Daten aber in einem dem Antrieb zugeordneten DB ablegen.
 

TP-Inc

Well-known member
Beiträge
559
Punkte Reaktionen
106
Ja die Adressen sind ja sowieso mit den Daten belegt. Du kannst sie in die Tabelle eintragen und von dort in einen DB schieben (Move oder Zuweisung). Ich finds aber unnötig und arbeite lieber direkt mit den E/As die der Baustein als In/Out bekommt.
 
OP
E

erkoausbe

Active member
Beiträge
28
Punkte Reaktionen
2
Oh man....

ich habe es gerade selbst herausgefunden....
Ich möchte für das aktuelle Projekt einige Bausteine verwenden, die ich auch bisher schon in der Classic-Welt verwendet hatte.
Daher habe ich die Bausteine migriert von V5.6 nach V16.
Dabei hat TIA ein Projekt angelegt mit einer unspezifizierten S7-300-CPU.
In diesem Projekt stehen die Funktionen anscheinend aufgrund der alten CPU nicht zur Verfügung!!

Wenn ich die Bausteine in ein S7-1500-Projekt kopiere (in dem das ja auch laufen soll..) dann kann ich die Zuweisung eines einzigen Antriebs-DBs an den InOut-Bereich meines FBs problemlos realisieren und auch innerhalb des FBs Zuweisungen an Teilstrukturen des übergebenen DBs realisieren!

Somit muss ich bei allen Bausteinen, die auf den Antrieb zugreifen, nur einmal den Antriebs-DB als Parameter antragen!

Vielleicht hilft das ja mal jemandem, der hier genauso den Wald vor lauter Bäumen nicht sieht wie ich...
 
Oben