Analogwert speichern

Foxtec

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe gemeinde,
hoffe ihr könnt mir bei meinen Problem Helfen und zwar möchte ich ein Analogwert speichern und als Sollwert benutzten um dann im ganzen prozesse zu vergleichen benutzten.

Zur erklärung:
Ich benutzte ein Ultraschallsensor der an einer Liniearachse befestigt ist Der sensor misst einen Höhe den Ersten Wert möchte ich speichern und zum abgleichen benutzten ob sich die höhe dann noch in der Toleranz befindet oder nicht. Ich benutzte eine S7-1200

MfG
Foxtec
 
Hallo,
du bildest dir ein Ereignis (z.B. Linearachse ist auf Position und eine Zeit x ist abgelaufen) und speicherst dann mit einer Flanke davon die Istposition in ein Merkerwort oder Datenwort. Dies kannst du dann in der Folge weiter verwenden ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was davon verstehst du nicht ?

Eine Verknüpfung von unterschiedlichen zuständen bilden ?
Eine Flankenauswertung machen ?
Einen Analog-Eingangswert in ein Merkerwort speichern ?
 
kurz frage vorweg, hast du schon jemals ne sps mit analog-werten programmiert?

P.S. Das zauberwort heißt "bedingt aufgerufener Move", in scl/st eine bdeingte zuweisung
 
ok, nach dem es um analoge eingänge geht, frage ich jetzt mal ganz unten, weißt du was über normierung und skalierung von eingangswörtern?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dann frag ich mal weiter:
Weißt du, was Flanken (pos/neg) sind (Flankenmerker)?
Weißt du, wie der Ablauf in der SPS erfolgt wenn es um "speichern" geht (nicht wir man es programmiert, sondern wie der Anlauf ist)?

Wenn du das weißt, sollte es einfach sein, es zu lösen...
 
Sorry, wenn ich das so sagen muss. Aber ich finde Du solltest Dir erstmal etwas Basiswissen draufschaffen. Bei Siemens oder im Buchhandel Deines Vertrauens gibt es entsprechende Lektüre. :cool:

Es gibt auch schon einiges kostenlos...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, wir sind ja ein Forum, das immer gerne bereit ist zu helfen. Daher ein schneller Kurs dazu :)

Die SPS arbeitet Zyklisch den Programm-Code ab. Das heißt, das am Programmende wieder zum Anfang gesprungen wird und das ganze wieder läuft.
In der PC-Welt kann man sowas als Schleife ansehen, auch wenn Schleifen-Programmierung in der SPS im einem Zyklus auch möglich ist.

Nun kann man diesen Umstand nutzen um sich sogenannte Flankenmerker zu setzen. Diese Merker sind nur einen Zyklus aktiv, wenn der vorherige
Programmcode ein VKE=1 erfüllt hat (VKE = Verknüpfungsergebnis = Zustände aller Abfragen ergeben immer ein TRUE).
Im nächsten Zyklus und solange das VKE=0 ist, sind diese Merker auch =0 (FALSE).

In Step7 in der Programmbibliothek(auch Übersicht gennant) nennen sich diese (POS) und (NEG). Der weiterführende Pfad nach dieser Anweisung ist also nur einen Zyklus aktiv.

Wenn wir nun diesen Vorteil nutzen, können wir in der SPS Daten zwischenspeichern, ohne das jeden Zyklus der Wert verändert wird.
Um einen Wert vom Typ Byte, Word, Int, Real, DWord, etc. zu speichern, benutzt man den "MOVE"-Befehl, der auch in der Übersicht zu finden ist.

Programmiere also nun die Bedingungen so zusammen, wie du sie brauchst, um einen Wert zu speichern (bsp: Tür zu, Ventil auf, Pumpe dreht, Automatik ein...).
Dann setze dir einen Merker mit einer POS-Flanke und nutze diesen Merker, um einen MOVE-Befehl auszuführen.
Hier speicherst du dann deinen Analog-Wert in einen DB oder in ein MW.

Im nächsten Zyklus ist der Wert dann unverändert aus dem DB/MW auszulesen, auch wenn sich der Analog-Wert verändert hat.
 
Zuletzt bearbeitet:
Klarstellung Funktion Flankenoperationen

Die Operationen POS/NEG geben TRUE am Ausgang, wenn der über der Operation angegebene Operand1 eine steigende/fallende Flanke hat (KOP: und das VKE links vor der Operation TRUE ist).

Um eine steigende/fallende Flanke des VKE auszuwerten sind die Operationen P bzw. N zu benutzen (diese entsprechen den Operationen FP/FN in AWL).

(Die Step7-Onlinehilfe zu FUP und KOP ist bei der Beschreibung dieser Operationen nicht ganz korrekt.)

Harald
 
Zurück
Oben