-> Hier kostenlos registrieren
Hallo zusammen,
ich bin TIA Anfänger und stehe seit mehreren Tagen völlig auf dem Schlauch :sad: Ich hoffe, ihr könnt mich zumindest mal auf den richtigen Weg bringen.
Ich bin dabei, die Standard-Software unserer Firma von S7-300 auf S7-1500 (optimaler Weise auch S7-1200 kompatibel) umzubauen. Wie der Begriff "Standard" schon vermuten lässt, sind die Bausteine sehr flexibel und für alle Maschinensteuerungen einzusetzen, und das muss auch so bleiben.
Daher wird viel von außen "dran-parametriert". Bisher haben wir es so gemacht, dass wir von außen per ANY-Pointer einen Datenbereich eines DB (der Bereich enthält meist mehrere unterschiedliche UDTs) übergeben haben. In den Bausteinen selbst haben wir diesen ANY-Pointer wieder zerlegt und somit wussten wir, in welchem DB die Daten liegen, ab welcher Adresse der Bereich beginnt, welche Länge zu lesen/schreiben ist, etc. Wichtiger Knackpunkt dabei: im FB konnte man somit Daten aus dem DB auslesen, als auch Daten direkt dort hineinschreiben.
Im TIA kann ich aber scheinbar überhaupt nicht mehr per
auf Input-Variablen zugreifen. Also kann ich auch nicht auf den Wert für die Länge der Daten zugreifen, was ich ja zB auch für die Parametrierung eines Kopplers oder RFID-Readers brauche.
Da sich die Länge der Daten je nach Anlage, Anwendung und Funktion unterscheidet, sollen möglichst alle benötigten Infos in einem Übergabewert stecken (wie ANY-Pointer).
Also meine Fragen:
- lassen sich ANY-Pointer in der Form wie benötigt nicht mehr benutzen? Wenn doch, wie? Wenn nein, was ist die Alternative? Variant, DB_Any, Array_DB, Block_DB, etc?
Ich brauche also mal einen Tipp, mit welchen neuen Funktionen ich mich am besten beschäftige. Ich kann schlecht die Step7-V13 Doku mit 13040 Seiten komplett lesen
Gruß
Rudelz
EDIT:
Bei nicht "optimiertem Bausteinzugriff" funktioniert der Zugriff ANY-Pointer wie gehabt. Aber ist das eine "schöne und saubere" Lösung im TIA-Zeitalter?
ich bin TIA Anfänger und stehe seit mehreren Tagen völlig auf dem Schlauch :sad: Ich hoffe, ihr könnt mich zumindest mal auf den richtigen Weg bringen.
Ich bin dabei, die Standard-Software unserer Firma von S7-300 auf S7-1500 (optimaler Weise auch S7-1200 kompatibel) umzubauen. Wie der Begriff "Standard" schon vermuten lässt, sind die Bausteine sehr flexibel und für alle Maschinensteuerungen einzusetzen, und das muss auch so bleiben.
Daher wird viel von außen "dran-parametriert". Bisher haben wir es so gemacht, dass wir von außen per ANY-Pointer einen Datenbereich eines DB (der Bereich enthält meist mehrere unterschiedliche UDTs) übergeben haben. In den Bausteinen selbst haben wir diesen ANY-Pointer wieder zerlegt und somit wussten wir, in welchem DB die Daten liegen, ab welcher Adresse der Bereich beginnt, welche Länge zu lesen/schreiben ist, etc. Wichtiger Knackpunkt dabei: im FB konnte man somit Daten aus dem DB auslesen, als auch Daten direkt dort hineinschreiben.
Im TIA kann ich aber scheinbar überhaupt nicht mehr per
Code:
L P##IN_ANY_Lesebereich
Da sich die Länge der Daten je nach Anlage, Anwendung und Funktion unterscheidet, sollen möglichst alle benötigten Infos in einem Übergabewert stecken (wie ANY-Pointer).
Also meine Fragen:
- lassen sich ANY-Pointer in der Form wie benötigt nicht mehr benutzen? Wenn doch, wie? Wenn nein, was ist die Alternative? Variant, DB_Any, Array_DB, Block_DB, etc?
Ich brauche also mal einen Tipp, mit welchen neuen Funktionen ich mich am besten beschäftige. Ich kann schlecht die Step7-V13 Doku mit 13040 Seiten komplett lesen

Gruß
Rudelz
EDIT:
Bei nicht "optimiertem Bausteinzugriff" funktioniert der Zugriff ANY-Pointer wie gehabt. Aber ist das eine "schöne und saubere" Lösung im TIA-Zeitalter?
Zuletzt bearbeitet: