HW Ausgang lesen

Stogi

Level-2
Beiträge
103
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versuche ein Projekt einer S7-1500 (TIA V14) für eine S7-317F-2 PN/DP in Simatic Manager V5.6 + SP2 umzuschreiben.

Dabei habe ich folgendes Problem:
Im Originalprojekt wird der HW Ausgangsbereich mittels PEEK_WORD ausgelesen:

1658943179407.png


1658943251652.png



Wie kann ich das an einer S7-300 umsetzten?
Weiterhin bin ich parallel schon am testen des Bausteins. Wie kann ich bei einem FB (SCL) die temporären Variablen beobachten?

LG Stogi
 
Einfach die A-Adressen ins Prozessabbild legen, ggf. die Größe des PAA vergrößern. Dann kann das Ausgangsword einfach gelesen werden: %EW(#DICmdModuleAddr). Siehe TIA Hilfe "Indirektes Adressieren von Variablen, S7-300"
Übrigens kann man den Wert von Hardware-Ausgängen nicht lesen, auch nicht bei S7-1500. Nur das Prozessabbild PAA kann man lesen.

Wofür macht das eigentlich Sinn, Ausgänge zu lesen? Das SPS-Programm sollte doch wissen, welche Werte gerade an die Ausgänge zugewiesen sind. Oder sind die Zuweisungen KnowHow-Protected?

PS:
Wie kann ich bei einem FB (SCL) die temporären Variablen beobachten?
Temporäre Variablen kann man nicht beobachten. Nur die Programm-Zugriffe auf die temporären Variablen kann man beobachten. Notfalls kann man eigenen Testcode ins Programm einfügen, der die Werte der temporären Variablen in globale Variablen kopiert.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Antwort.

Für mich macht der Teil des Originalprogramms ehrlich gesagt auch wenig Sinn.
Ich beschreibe den Ausgang aktuell einfach von Steuerungsseite und kann das Gerät (handelt sich um einen Objekterkennungssensor von IFM - O2D510) damit eigentlich genauso steuern wie ich will.

Das komische an dem Ganzen ist, dass ich eine temporäre Variable im FB habe, die sich mit der Bewegung der Anlage ändert.
Scheint irgendwie mit der Bewegung eines bestimmten Anlagenteils zusammenzuhängen.
Die Variable wird im FB (wegen meiner bisherigen Änderungen zum Originalprogramm) aber nicht mehr geschrieben.
Nachdem die Zeile mit PEEK_WORD meine einzige funktionelle Änderung ist, war mein Gedanke, dass das etwas beeinflusst, was ich nicht verstehe...

Vielleicht anders gefragt. Kann ich eine temporäre Variable eines FBs (SCL) von außerhalb des FBs beeinflussen?
Und wenn ja, wie finde ich die Verknüpfung von der ich nichts weiß....
 
Das komische an dem Ganzen ist, dass ich eine temporäre Variable im FB habe, die sich mit der Bewegung der Anlage ändert.
Scheint irgendwie mit der Bewegung eines bestimmten Anlagenteils zusammenzuhängen.
Die Variable wird im FB (wegen meiner bisherigen Änderungen zum Originalprogramm) aber nicht mehr geschrieben.
Wenn die Temp-Variable im FB nicht geschrieben wird, enthält sie einen Wert, der in einem anderen FB oder FC außerhalb Deines FB geschrieben wurde. Speicher von Temp-Variablen wird beim Verlassen eines FB oder FC frei gegeben und im nächsten FB oder FC wieder verwendet.
Gruß
Erich
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn die Temp-Variable im FB nicht geschrieben wird, enthält sie einen Wert, der in einem anderen FB oder FC außerhalb Deines FB geschrieben wurde. Speicher von Temp-Variablen wird beim Verlassen eines FB oder FC frei gegeben und im nächsten FB oder FC wieder verwendet.
Gruß
Erich

Wow das wars.... vielen Dank!
Hab die Temporäre Variable am Anfang des Bausteins beschrieben und das Problem ist verschwunden.
Anscheinend hat die Bewegungsüberwachung des Anlagenteils die Variable beschrieben....
LG Stogi
 
Generell: Wenn eine Temp-Variable vor der lesenden Verwendung nicht initialisiert wird (ein kontrollierter Wert hineingeschrieben wird), dann ist das ein Programmierfehler. Wenn eine Temp-Variable nicht verwendet wird, dann ist egal welcher Wert drin steht.

Harald
 
Zurück
Oben