-> Hier kostenlos registrieren
Hallo Zusammen,
Ich habe wieder mal ein Problem mit meinem Programm und würde euch gerne ein Code-Schnippselchen zeigen wollen:
Ich hoffe, ich versteht mein anliegen und könnt mir helfen.
Gruß Lukas
Ich habe wieder mal ein Problem mit meinem Programm und würde euch gerne ein Code-Schnippselchen zeigen wollen:
Code:
L #QDB //Lade Quell-DB mit Füllmenge in m³://Im QuellDB stehen 400 Einträge, welche als "Startwert" die Füllmenge in m³ haben
T #TEMP_QuellDB //Zwischenspeicher Quelldatei
L #QDW //Lade skalierten Messwert: Skaliert von 0-400
T #TEMP_Messwert_Analog
//Pointer-Adressierung in Siemens S5
//B MW242
//L DW0
//T #TEMP_Messwert_Analog
//Ziel:
//a) Abfangen von Werten -> 0 < Messwert < obere Grenze: Messfehler/Überlauf
//b) Vergleich vom Messwert mit dem QuellDB und übergabe des Füllstandes (Wert in Spalte: Startwert)
// an #ZDW (und dann entsprechend an entsprechenden DB
AUF #TEMP_QuellDB
L DBB [ AR1 , P#0.0 ]
T #"TEMP_Daten-KubikMeter"
L #OG //Obergrenze aus Analogwertskalierung
T #TEMP_ObererGrenzwert
L #ZDW //Ausgabewert: Füllstand in Kubikmeter
T #TEMP_Messwert_KubikMeter//Temporärer Wert: Füllstand in Kubikmeter
//Verhalten bei Störung: -> Verhalten bei "a"
U(
L #TEMP_Messwert_Analog
L 0
<=I
) //ist Messwert kleiner 0?
O
U(
L #TEMP_Messwert_Analog
L #TEMP_ObererGrenzwert
>I
) //ist Messwert größer der oberen Grenze?
= #STOE //Störung
//----------------------------------
L #TEMP_Messwert_Analog
L 0
>I
SPB M001 //Wenn der analoge Messwert größer 0 ist, dann Bearbeiten...
L 0 //sonst schreibe 0.0 in Ausgabewert
T #TEMP_Messwert_KubikMeter
SPA M002
M001: L #TEMP_Messwert_Analog//wenn der analoge Messwert kleiner
L #TEMP_ObererGrenzwert//...als die obere Grenze ist,...
<=I
SPB M003 //...dann bearbeiten
L 29999 //wenn der analoge Messwert größer als die obere Grenze ist,...
T #TEMP_Messwert_KubikMeter// ... FEHLER! ...
SPA M002 //...29999.0 in den Ausgabewert schreiben
M003: L #TEMP_Messwert_Analog //Vergleich von Messwert mit Wert aus QuellDB
L #TEMP_Messwert_KubikMeter
>=I
SPB M002
//Schleife: Wenn der Vergleich kein richtiges Ergebnis liefert, dann im QuellDB um ein Byte weiter adressieren und wieder vergleichen
L #"TEMP_Daten-KubikMeter"
L 2
+I
T #"TEMP_Daten-KubikMeter"
SPB M003
M002: L #TEMP_Messwert_KubikMeter//Temporärer Ausgabewert
T #ZDW //Ausgabewert
BE
Ich hoffe, ich versteht mein anliegen und könnt mir helfen.
Gruß Lukas