TIA Messwerte(30ms) in Array Schreiben, und im 100ms Takt aufs HMI ausgeben

stone92

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

und zwar habe ich ein kleines Problem. (Bin SPS - Neuling!!)
Ich muss Messwerte in der S7 1500 verarbeiten. Diese kommen im 30ms abstand in die SPS rein. Mir ist aufgefallen das das Simens HMI maximal alle 100ms die Variable abfragen kann.

Deswegen dachte ich die Werte in ein Array-DB zu speichern, und diese dann im 100ms Takt auf die HMI Variable zu speichern.
Hierzu benötige ich ja theoretisch eine Zählschleife, die bei jedem 30ms Zyklus das Arrayfeld um 1 erhöht.

Das funktioniert aber nicht.

Hoffe mir kann einer helfen!?

Gruß Thestone
 
So müsste es funktionieren:

Code:
Irgendeinbeispiel

Ach ja... Du hast ja nicht erwähnt wie Du es versucht hast... also kann Dir wohl auch niemand helfen.

Du solltest mindestens die Programmiersprache nennen, und am Besten ein Codebeispiel von Deinem Versuch posten.

Grüße

Marcel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich nutze TIA Portal und habe es wie folgt probiert:

#Array_Write_Index := #i;
#i := #i + 1;


IF #i = 999 THEN
#i := 0;
END_IF;

Leider kann ich im Beobachungsmodus keine Befüllung der Arrayfelder feststellen.
 
Wie ist #i deklariert, wann wird #i initialisiert?
Falls #i in VAR_TEMP (oder VAR in einem FC) deklariert ist: TEMP-Variablen können sich nichts bis zum nächsten Durchlauf des Bausteins merken. Bei S7-1500 werden sie außerdem bei jedem Aufruf auf 0 initialisiert. #i müsste ein VAR_INOUT oder ein Static in einem FB sein.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thestone,

such mal nach
Kurvenanforderung / Kurvenanforderungsbereich

dann schreibst Du alle 30ms einen neuen Wert in einen Bereich (Array), schaltest wenn das Array voll ist auf den zweiten Bereich um und fängst von vorne an. Wenn dieser Bereich voll ist wieder auf den ersten usw. Dann kannst Du am Terminal sogar zyklusschnelle Signale anzeigen. (habe ich vor ca. 10 Jahren bereits mit WinCCflex an 300er CPU gemacht)

Gruß
Peter
 
Zurück
Oben