TIA Prozessabbild von Profinet Teilnehmer einlesen

Fanz

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe nun viel rum probiert aber ich bin einfach nicht auf die richtige Lösung gekommen (falls es eine gibt).
Ich verwende Tia V15.1
Folgende Aufgabenstellung:
Ich möchte einen Standardbaustein für einen Barcodescanner schreiben. Dieser hat mehrere HW-Submodule (Siehe Anhang).
Ich möchte nun aber nicht jede einzelne HW-Adresse am Baustein angeben sondern den Teilnehmer komplett auslesen und schreiben.
Wäre ja auf möglich die Startadresse anzugeben und die Folgenden zu berechnen. Da müsste man aber wieder aufpassen das die EA Adressen in einer Reihenfolge sind.
Meine Idee:
Ist es möglich über die HW-Kennung Head des Teilnehmers die kompletten E/A zu lesen bzw zu schreiben? Oder alle HW-Kennungen des Teilnehmers zu ermitteln?

Danke schon mal im Voraus.
 

Anhänge

  • Prozessabbild.PNG
    Prozessabbild.PNG
    28,1 KB · Aufrufe: 157
So schwer ist das nicht.

Du erstellst einen datentyp und deklarierst in diesen sämtliche bits bytes usw wie sie auf dem Prozessabbild liegen.

In der Variablentabelle erstellst du danach eine Variable mit dem Datentyp und gibst den ersten Eingang oder Ausgang an. TIA errechnet sich den Rest.

temp.JPG temp 2.JPG
 
Ich hab das schon für Standardbausteine mit Geo2Log, Log2Geo(oder so irgendwie heisst die Funktion) die Module ermittelt und dann mit dprd und dpwr die Daten gelesen.
 
Naja wenn man das halbwegs clever löst muss man ja Geo2Log nur einmal aufrufen und kann sich die Infos speichern.
Oder meinst du dprd und dpwr?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich nutze dafür bei Bedarf UDT, die ich mir an Hand der Doku des Herstellers passend zum Gerät anlege.
Anbei mal die UDT für einen SR100x und für einen Keyence-Laser (MDX).
Der Scanner ist nicht bis in die Ebene Bool angelegt, also muß man im einem FB mit Slice-Zugriffen arbeiten, was ich nicht ganz so schön finde.
Für den LASER habe ich das selbst komplett bis auf die Bool-Ebene gemacht (hier mal als Beispiel). Dadurch kann man immer direkt mit den Variablen arbeiten.
Der Datentyp wird in der Symbolik einfach an die erste E- bzw. A-Adresse gebunden, angegeben wird eine Bitadresse, also z.B. %E2000.0
Einziger Wermutstropfen, man kann die einzelnen E/A-Variablen nicht einfach per Drag- and Drop in die Programmbausteine ziehen (nur Siemens weiß, warum das wohl ausgerechnet hier nicht geht),
aber, man kann imerhin auch absolut adressieren, das wird dann automatisch durch das Symbol ersetzt.

Anhang anzeigen Keyence_UDT.zip
 
Zuletzt bearbeitet:
Hallo Zusammen,
habe beide Varianten ausprobiert und funktionieren auch beide Super.
Haben auch beide Vor/Nachteile.
RogerSchw85 hast natürlich recht mit der Zykluszeit. Jedoch bei PLC Datentyp müssen die E/A auch in einer Reihenfolge sein sonst funktioniert es nicht. Oder ich habe etwas falsch gemacht.
 
Mann muss auch immer bedenken das Tia zur nächsten Wordgrenze auffüllt da sollte man schon 2 mal hinsehen bei der UDT variante

gutes beispiel ist da der Cognex Dataman

Unbenannt.JPG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hier ist die Verwendung der Systemfunionen GetIO und SetIO zu empfehlen um die Hardware auszulesen. Wobei für jedes Hardware Modul des IO-Device das man lesen/schreiben eine solche Funktion eingesetzt werden muss.

Grüße
 
Mann muss auch immer bedenken das Tia zur nächsten Wordgrenze auffüllt da sollte man schon 2 mal hinsehen bei der UDT variante

gutes beispiel ist da der Cognex Dataman

Anhang anzeigen 47269

Das ist richtig, da sollte man immer drauf achten. Wenn man das mit Strukturen (Datentypen) machen möchte, muss man dann teilweise Adresslücken in kauf nehmen.

Hab übrigens diese Woche auch einen Dataman in Betrieb genommen :D.
 
Zurück
Oben