Messwerte Erfassen

in dieses Forum kommt alles, was mit speicherprogrammierbaren Steuerungen zu tun hat
Antworten
Rouven90
Null-Leiter
Beiträge: 18
Registriert: Donnerstag 29. Juni 2017, 07:05
Wohnort: Bremen

Messwerte Erfassen

Beitrag von Rouven90 » Freitag 24. November 2017, 07:09

Hallo,

ich will gerne mit einer VIPA M13 folgenden Ablauf programmieren, hänge aber gerade fest,...Evtl kann mir hier jemand helfen =)
Google hat mir auch nicht sonderlich geholfen, hab unzählige Beitrage gelesen, aber es war nirgends das richtige bei.

Wenn das Signal "clk" kommt, soll ein Messwert "InValue" erfasst werden und in den Anfang des DB's geschrieben werden, wenn nun erneut das Signal kommt, wird der zweite wert um einen verschoben und der neue Wert kommt auf Platz eins usw,...
Das ganze bis 100 Werte voll sind.
Momentan schreibt er überall das gleiche rein,..

Mein Programm:

VAR_INPUT
clk : BOOL ;
reset : BOOL ;
InValue : REAL ;
END_VAR
VAR
statClkEdge : BOOL ;
statResEdge : BOOL ;
statValue : REAL ;
statValues : ARRAY [1 .. 100 ] OF REAL ;
END_VAR
VAR_TEMP
tempInt : INT ;
tempIndex : INT ;
END_VAR
BEGIN
NETWORK
TITLE =


U #clk
FP #statClkEdge
SPBN end1

L #InValue
T #statValue

CALL "BLKMOV"
SRCBLK := P#DIX 8.0 REAL 100
RET_VAL := #tempInt
DSTBLK := P#DIX 12.0 REAL 100

end1: NOP 0

U #reset
FP #statResEdge
SPBN end2


LAR1 P##statValues
L 100
loop: T #tempIndex
L 0.000000E+000
T D [AR1,P#0.0]
+AR1 P#4.0
L #tempIndex
LOOP loop

end2: NOP 0


Vielen Dank! dank1
Gruß Rouven

troete
Null-Leiter
Beiträge: 432
Registriert: Donnerstag 16. August 2007, 01:03

Re: Messwerte Erfassen

Beitrag von troete » Donnerstag 6. Juni 2019, 23:48

Hi,

leider kann ich nur bedingt nachvollziehen welcher Code oben geschrieben ist. Da aber bisher noch niemand etwas zu diesem Thema geschrieben hat, versuche ich einfach einmal mein Glück und schreibe einmal was mir einfällt. Vielleicht findet sich dann so der "Fehler".
Ich habe unten einige Kommentare hinterlassen. Dies ist zumindest schon Mal ein Anfang. Schreib dir doch selbst die Kommentare hinter jede Zeile. Ich würde auf Anhieb sagen, das hier sehr viele Dinge nicht passen. Um mehr zu sagen bräuchte man mehr Infos.


VAR_INPUT -> Deklaration der Eingangsvariablen?!
clk : BOOL ; 
reset : BOOL ; 
InValue : REAL ; 
END_VAR


VAR -> Deklaration der übrigen Variablen innerhalb des Skriptes?!
statClkEdge : BOOL ; 
statResEdge : BOOL ; 
statValue : REAL ; 
statValues : ARRAY [1 .. 100 ] OF REAL ; 
END_VAR

VAR_TEMP
tempInt : INT ; 
tempIndex : INT ; 
END_VAR


BEGIN -> ist dies hier an der richtigen Stelle?
NETWORK -> fehlen hier nicht ein paar Klammern? Syntax?
TITLE = -> richtige Stelle?


U #clk  -> wenn der Eingang da ist,
FP #statClkEdge -> und eine positive Flanke kommt, wo wechselt diese?????
SPBN end1 -> springe nach End1, also macht er hier nichts weiter, sofern beide Bedingungen erfüllt sind. Hier müsste ich Wissen was der statCLKEdge ist und macht.



Sollte die obrige Bedingung nicht erfüllt sein, dann lade die Eingangsvariable und transferiere sie in eine statische.
L #InValue 
T #statValue 

Rufe einen Blockmove auf .......
CALL "BLKMOV" 
SRCBLK := P#DIX 8.0 REAL 100 
RET_VAL := #tempInt 
DSTBLK := P#DIX 12.0 REAL 100 

end1: NOP 0 

U #reset 
FP #statResEdge 
SPBN end2 


LAR1 P##statValues 
L 100 
loop: T #tempIndex 
L 0.000000E+000 
T D [AR1,P#0.0] 
+AR1 P#4.0 
L #tempIndex 
LOOP loop 

end2: NOP 0 

troete
Null-Leiter
Beiträge: 432
Registriert: Donnerstag 16. August 2007, 01:03

Re: Messwerte Erfassen

Beitrag von troete » Donnerstag 6. Juni 2019, 23:49

OK, der Beitrag ist von 2017 old-man1

Rouven90
Null-Leiter
Beiträge: 18
Registriert: Donnerstag 29. Juni 2017, 07:05
Wohnort: Bremen

Re: Messwerte Erfassen

Beitrag von Rouven90 » Freitag 7. Juni 2019, 07:13

Vielen Dank für die Hilfe.
Habe damals das Problem noch gelöst.

Weiß nur jetzt nicht mehr genau wie :D

Schönes Wochenende!

Caro
Null-Leiter
Beiträge: 6
Registriert: Samstag 21. September 2019, 20:24

Re: Messwerte Erfassen

Beitrag von Caro » Sonntag 22. September 2019, 17:50

troete hat geschrieben:
Donnerstag 6. Juni 2019, 23:49
OK, der Beitrag ist von 2017 old-man1
Ja also schon etwas veraltet.

Benutzeravatar
Elt-Onkel
Null-Leiter
Beiträge: 5774
Registriert: Donnerstag 25. März 2004, 01:08
Kontaktdaten:

Re: Messwerte Erfassen

Beitrag von Elt-Onkel » Montag 23. September 2019, 02:14

Hallo,
Rouven90 hat geschrieben:
Freitag 7. Juni 2019, 07:13
Vielen Dank für die Hilfe.
Habe damals das Problem noch gelöst.

Weiß nur jetzt nicht mehr genau wie :D
Na, na.

Das ist keine zwei Jahre her !

Ein so kurzes Gedächnis ?

Wir haben in zwei Monaten 40 jähriges Abiturtreffen,
und ich kenne die Leute (Schüler) heute noch.


...

Benutzeravatar
talabot
Null-Leiter
Beiträge: 6
Registriert: Donnerstag 26. September 2019, 17:22

Re: Messwerte Erfassen

Beitrag von talabot » Freitag 27. September 2019, 10:55

Du könntest Viertelstunden-Mittelwerte bilden, diese abspeichern in DB's und dann übertragen. Ich mache das ganze nur von SPS zu einem PC. Der PC liest den DB und schreibt nach abholen der Daten einen Merker, so das die SPS weiß, das sie wieder bei DW0 anfangen kann. Das ganze ist bei mir eher so ein Low-Cost-Sinaut Also mit Ethernet-CPs, aber auch schon mit Modems an der CP340/341.

Antworten