Temperaturproblem Thermoelement

chefren_new

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

habe folgendes Porblem

314er CPU
Analogbaugruppe 6ES7 331-7FK02-0AB0
2 Thermoelemente Typ J

die Thermoelement liefern den Wert z.B: 156 ( REAL ) diesen wird durch 10 dividiert dann kommt also 15,6 C raus, und diesen Wert schreibe ich als REAL in DB1 Global.

Danach wird MIN und MAX ermittelt.Vergleiche den Ist-Werte mit dem Letzten gespeicherten und das mit REAL Werten. das funktioniert super aber manchmal bekomme ich einen Werte z.B.: 3456 raus.

WARUM? liegt das am Kabel oder so?

oder sind das die REAL Werte ?

bitte um Hilfe, möchte ein Min Max Register machen da kann ich Werte von 3456 nicht gebrauchen.

DANKE

Gruß
 
Also da ich jetzt eher mal von einem Programmierfeheler ausgehe,
poste mal den Bausteinausdruck deines Bausteins in dem du die Normierung bzw. die Min/Max Geschichtet machst.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit dem manchmal macht mich stuzig. Wenn das auftritt was läuft dann noch alles?
Wie sieht die Verkabelung aus (EMV)? Poste mal dein Prog um ev. Überschneidungen zu sehen.
Gruß
 
die Werte aus der Analogbaugruppe sind doch Int´s oder irre ich mich,
du liest doch ein Wort ein und kein Doppelwort ( REAl -> 32bit )
ohne die Wandlung von int nach real wird es wohl Probleme geben.
gruß
 
die werte von der analogbaugruppen sind int werte ! pew xxx ;-)

normal sollte da nichts springen das du im 3000er bereich bist ...

entweder würde ich sagen spint deine normierung / scalieren ...

oder das Thermoelement hat en schuss bekommt das thermoelement vielleicht eine fremdspannung ab ? wenn du 3400 als wert rauskommt.. hättest du ja 34000 am analogeingang was wiederrum bedeuten würde das hier volle spannung anliegen würde also über ne fremdspannung sind diese leicht erreicht ;-)

wenn du das phänomen nicht wegbekommen solltest würde ich einfach ein wenig schummeln und sagen alle werte die über z.b.500 liegen garnicht speichern.

grüße erzi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ihr habt recht der Eingang liefert ein INT und nicht einen Real

diesen Wert dividiere ich durch 10 und das Ergebnis ist eine Gleitzahl ( Real )

diese wird Mit größer / kleiner verglichen wenn ein von beiden zutrifft wird der Wert in eine DB geschrieben, und dieser wieder verglichen. Funktionuerd auch super, bis wieder dieser Fehler mit einer sehr großen Zahl auftritt.

Habe jetzt vier Thermolemente die ich gleichzeitig prüfe, und hoffe das dieser Fehler nur bei einem auftritt dann ist es wohl das Theromelement.

wie würdet ihr das Ganze machen? benötige den Min bzw. Max Wert von einem Tag.
Würde mich über ein Beispiel freuen von Einlesen bis Min Max. damit ich einen eventuellen Fehler finden kann und damit ich sehe wie soetwas richtig gemacht wird, bin noch ganz neu in diesem Bereich
und lerne nur aus Büchern


Gruß
 
Testen

Teste doch die Funktion separat mit synthetischen Werten.

Lass eine int Variable von x bis y laufen und schau nach, ob min immer = x und max immer = y ist. Dann verändere in den Tests y auf immer grössere Werte und y auf immer kleinere Werte. Wenn kein Fehler auftritt, muss es der Thermogeber oder die Hardware allgemein sein.

In der Software Umgebung nennt man das Unit Testing, lässt sich auch auf die SPS anwenden.
 
Zurück
Oben