Step 7 S7-SCL, Funktionsbaustein (GETIO_PART) in Code aufrufen?

Paule79

Level-1
Beiträge
62
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ist es möglich den Funktionsbaustein GETIO_PART (FB22, meine ich) in einem SCL Code aufzurufen?
Wenn ja wie?
Muss der entsprechende Datenbaustein (DB) auch direkt im SCL Code vermerkt werden? Ein kleines Beispiel wäre sehr nett :)

Viele Grüsse
Paul
 
in STEP7 Classic, plazierst du die Cursor wo du die Buastein aufrufen willst. Dann wähsst du einfach von die Menü Insert .. Block Call (Einfügen .. Baustein Aufruf ?). Dann kannst du die GETIO_PART in den Standardbibliotek finden und wählen.
Es taucht die Bausten auf mit Felder die man auffüllen kann:
Code:
GETIO_PART.DBxxx(ID :=  // IN: DWORD                 ,OFFSET :=  // IN: INT
                 ,LEN :=  // IN: INT
                 ,INPUTS :=  // INOUT: ANY
                 ); 
   := DBxxx.STATUS; // OUT: DWORD
   := DBxxx.ERROR; // OUT: BOOL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Antwort.
Das hat Funktioniert. Konnte den Baustein (Struktur) über die Standard Lib öffnen.
Leider kommt folgende Fehlermeldung wenn ich das ganze übersetzen will....
Fehler_GETIO.JPG
 
Danke für deine Antwort.
Das hat Funktioniert. Konnte den Baustein (Struktur) über die Standard Lib öffnen.
Leider kommt folgende Fehlermeldung wenn ich das ganze übersetzen will....
Anhang anzeigen 53757

Kein Wunder. Oder heißt dein DB symbolisch "DBxxx"? ;)
Welchen DB hast du angelegt. Welche Nummer hat dieser und hast du einen symbolischen Namen vergeben?
 
Zuletzt bearbeitet:
Sag mal, hast du einfach nur den CODE von Jesper in dein Projekt kopiert. Der Compiler meldet, dass er den Baustein nicht findet. Hast du ihn wirklich
über den Katalog reingezogen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke die Baustein kommt nicht rüber automatisch wie in TIA. Ich dachte du hattest schon die GETIO_PART in dein Projekt.
Wenn nicht:
Zuerst die GETIO_PART von das Standardbibliotek in der Bausteinordner von Projekt reinkopieren.
Dann IDB von Typ GETIO_PART in Bausteinordner einrichten und passender symbolische Name geben.
Dann GETIO_PART in den SCL Baustein reinkopieren, wie oben beschrieben.
Dann die Code anpassen, inkl. symbolische Name von die IDB.
Zuletzt in SCL kompilieren - musste klappen.
 
Zuletzt bearbeitet:
Nein hab nicht nur den Code Kopiert.
Habs wie in den Bild gemacht:
Bild1.JPG

Dann eben konfiguriert und dem DB die Nummer 22 gegeben (Wegen dem GETIO_PART, oder ist das egal welche Nummer dieser bekommt?)

Habe auch mal in meiner Übersicht alle FB's gelöscht. Weiter oben rufe ich über die gleiche Methode eine SFC Baustein auf. Dieser wird automatisch angelegt. Wie bekomm ich das für den FB22 hin?
Bild3.JPG
Bild4.JPG
 
Nein, das DB-Nr. muss nicht DB22 sein.
Wichtig ist auch, gib es eine passender symbolische Name. Immer mit symbolen arbeiten, nie mit Absolutadressen.
Bevor dass du kompilierst muss die GETIO_PART und die IDB in dein Bausteinordner sein. Sonnst bekommst du kompilierfehler.
Die Vorgang ist wie oben beschrieben.
SFCs sind unterschiedlich, kannst du nicht mit FBs vergleichen, auch nicht wenn sie aus den Standardbibliotek kommt.
 
Standard Bibliotek öffnen, GETIO_PART finden und markieren. STRG-C um zu kopieren.
Projekt-Bausteinordner öffnen. STRG-V um einzufügen.

Oder, zwei Fenster mit beide Ordner nebeneinander öffnen. Dann mittels drag-and-drop die gewünschte Baustein rüberziehen.
 
Ich will nicht unhöflich sein. Aber wo soll diese Standard-Bibliotek in dem Hauptfenster sein?
Ich finde diese nur wenn ich einen OB oder FB (FUB, KOP, AWL) öffne.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe nur STEP7 mit englische Sprache. Vielleicht findest du es.
In Simatic Manager, aus den Menübalken wähle File .. Open .. dann die Reiter "Libraries" wählen, dann Standard Library.
Es öffnet sich das Standard Bibliotek, es sieht aus wie ein normalen STEP7 Projekt, nur es gibt kein CPU, nur mehrere Bausteinordner. Öffne "Communication Blocks". Dort findest du GETIO_PART.
Wenn in dein Projekt-Bausteinordner kein GETIO_PART schon gibts, dann wurde es vielleicht auf versehen gelöscht. Das es in OB1 ein GETIO_PART FB gibts und es wird nicht von STEP7 gemeckert wird (mit Rot dargestellt) kann sein dass das zugehörige Symbol nicht gelöscht ist. Dasselbe gelt die Instanz-DB.
Das konnte Problematisch sein. Es ist möglich dass wenn du GETIO_PART von das Standardbibliotek reinkopieren willst, dann kommt es ein Fehler wegen es gibt schon ein Symbol GETIO_PART.

Ich vermute dies ist ein STEP7 Projekt von jemand anders.
Ich rate dazu dass du mit eine aktuellen Backup arbeitest. Sonnst musste du die alte Symbole zuerst löschen. Aber ich habe die Gefühl das es wird langsahm zu viel für dich muss ich ehrlich sagen.
 
Zurück
Oben