Probleme beim Analogeingang auswerten mit Funktionsbaustein AIN1

Begonnen von Juergen Maier, 25. Januar 2012, 16:43:58

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Juergen Maier

Hallo,
ich habe ein Problem beim einlesen meines Analogwertes.
Ich benutze die CoDeSys 2.3 SP RTE und einen Wago Controller 750-333 mit der Analogeingangskarte 750-456.
Die Karte ist eine -10 bis +10 Volt Karte.
Ich bekomme von der Karte ein Dezimalwert (WORD) 0 Volt = Dezimalwert = 0, 10 Volt = Dezimalwert 32760, -10 Volt = Dezimalwert 32768.
Die Karte hat eine 12 Bit Auflösung, Bit3 bis Bit14, Bit0 = Überlauf (Analogeingang außerhalb +-10 Volt), Bit1 = Kurzschluss, Bit2 = nicht Benutzt.
Das Problem ist das mein errechneter Messwert nicht übereinstimmt, d.h ich möchte den Analogeingang -10 bis +10 Volt auch so Anzeigen.
Ich habe im AIN1 folgende Einstellung:
in:=  wInput , ""Das ist mein Dezimalwert von der Karte""
error_bit:= 1,
error_code_en:=FALSE ,
error_code:= ,
overflow_bit:= 0,
overflow_code_en:=FALSE ,
overflow_code:= ,
Bit_0:=3 ,
Bit_N:=14 ,
out_min:= -10.0,
out_max:= 10.0,
code_min:=0 ,
code_max:=32760 ,
error_output:= ,
overflow_output:= ,

Hat jemand eine Idee woran der falsche Messwertausgang des AIN1 kommen kann.

riesermauf

Hallo

ich habe auch Probleme mit dem Funktionsbaustein AIN1.
Meine Konfiguration:
Oscat Basic 333 für Twincat/CoDeSys, Codesys V2.3.9.37, Wago Controller 750-881, Analogeingangskarte 750-455 (4-20mA).

in:= %IW0
error_bit:= 1,
error_code_en:=FALSE ,
error_code:= ,
overflow_bit:= 0,
overflow_code_en:=FALSE ,
overflow_code:= ,
Bit_0:=3 ,
Bit_N:=14 ,
out_min:= 0
out_max:= 16000
code_min:=0 , (lt. Datenblatt bei 4mA)
code_max:=32764 ,  (lt. Datenblatt bei 20mA)
error_output:= ,
overflow_output:= ,

Fehlerbeschreibung:
Ich gebe mit einem Fluke Messgerät die mA vor im Bereich von 4-20mA, dabei steht am Ausgang
des AIN1 bei 20mA ein Wert von 1999,2, es sollte aber lt. out_max ein Wert von 16000 stehen.

Habe ich da in meiner Konfiguration einen Fehler oder erzeugt der Baustein AIN1 da einen Fehler
in der Auswertung.

Ich hoffe das kann jemand klären.
m.f.g.

shooter

fur riesermauf
The code is correct, however some adjustments are needed from your side.
The input should be a doubleword.
so add your code with WORD_TO_DWORD
please use a VAR as input and not just the %IW0,
in GLOBAL VAR use input at %IW0:WORD;
code max should be 4095 = 2^12-1 obvious
the input start at bit 3 and 12 higher -1 is bit14

shooter

fur jurgen
the same as above, but i changed a line in the ain1 block
on bottom it says
IF sign THEN out:=out-out_max; END_IF
for you the same inputsignal is a DWORD
bit0=3
bitn=14
outmin=0
outmax=10
codemin=0
codemax=4095

and this works.
shooter+31653300739

riesermauf

Hallo shooter

I have only changed code_max to 4095 and the result is o.k.
The datasheed of the AI 750-455 gets me confusied (20mA = 32764).

Thank you for your help.