Analogeingabe an S5 100 U, CPU 100

T

teasy

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, bin neu hier und Anfänger. Meine Frage lautet:
Wie kann ich einen Analogwert an der S5, CPU 100 einlesen und weiterverarbeiten? Die Analogeinbaugruppe ist eine 6ES5 464-8ME11. Ich habe etwas von einem FB 250 gehört. Kann die SPS überhaupt mit dem FB umgehen??
Die Aufgabe welche ich lösen möchet lautet, den Wert eines Temp.fühlers einlesen und bei unterschreiten bzw. überschreiten von z.B. 35 °C soll ein Schütz (für Heizung) ein bzw. ausgeschaltet werden. Es soll damit eine Flüssigkeit in einem Behälter auf Temperatur gehalten werden. Am besten wäre das ganze noch zeitabhängig, als bei Erreichen der Temp. soll das Ganze 30 min ablaufen.
Es brauch mir keiner den ganzen Code zu schreiben. Wäre nett, wenn ich ein paar Erklärungen bekommen würde.
Danke im voraus.
 
deine baugruppe ist für 4..20 mA. musst du also schon einen speziellen fühler haben. besser ist eine 6ES5 464-8MF21 (2 x PT100)

FB 250 Normiert einen Analogeingabewert

BG Typ: KF Steckplatznummer 0...7
KNKT Typ: KY Kanalnummer 0..3,3..6
3: Betragsdarstellung (4..20mA)
4: unipolare Darstellung
5: Betragsdarstellung bipolar
6: Festpunktzahl bipolar
OGR Typ: KF Obergrenze Ausgangswert -32768...+32767
UGR Typ: KF Untergrenze Ausgangswert -32768...+32767
EINZ nicht relevant
XA Typ: Wort Ausgangswert 0 = Drahtbruch
FB Typ: Bit Fehler 1 = Drahtbruch o. Kanal-/Steckplatznr. o. Kanaltyp
BU Typ: Bit Bereichsueberschreitung 1 = ueber Nennbereich

z.B. 4mA,__________,12mA______,20mA
/ ! !
UGR /_____________!__________! OGR

Code:
     :SPA FB 250
Name :RLG:AE
BG   :    KF +1
KNKT :    KY 0,3
OGR  :    KF +100
UGR  :    KF +0
EINZ :    M    1.0
XA   :    DW   1
FB   :    M    1.1
BU   :    M    1.2
Code:
L   DW   1
L   KF +34
<F
S   A    0.0

L   DW   1
L   KF +36
>=F
R   A    0.0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich meine FBs laufen erst ab CPU 102.
Also den AE einlesen über

L EW64 ; 1.Kanal auf Steckplatz 0

Die Baugruppe sagt mir im Moment nichts.

Liest sie Byteweise ein? Dann 0=Drahtbruch,1=4mA, 255=20mA.

Ansonsten wortweise:
0-511=Störung (Drahtbruch), 512=4mA, 2560=20mA

Eventuell muß der Rohwert noch um 3Bits nach recht verschoben werden, um oben angegebene Werte zu erhalten (SRW 3). Da der Schiebebefehl aber nur in FBs funktioniert, denke ich, dass dies bei o.g. Baugruppe nicht nötig sein wird.

Gruß
raika
 
stimmt. die fbs 240-251 sind erst ab der 102 vorhanden.
in der 100 kann man fbs nutzen 0 bis 63.

die 3 fehlerbits muss man auf jeden fall nach rechts rausschieben.

ohne fb250 muss man sich das halt selber normieren.
mit ein bisschen 3-satz ist das kein problem.

Einheiten 4-20 mA
0,00 4,00
512,00 8,00
1024,00 12,00
1536,00 16,00
2048,00 20,00
 
@volker,

bei 4-20mA beginnen doch die Werte nicht bei 0. Sie verschieben sich um 512.

0 = 0 mA
512 = 4 mA
2560 =20 mA

Oder fällt diese Baugruppe aus dem Rahmen?

Gruß
raika
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das ist falsch.

eine bauruppe liefert 2048 einheiten. immer.

die rechten 3 bits sind fehlerbits. die 2048 hast du natürlich erst nach dem srw3

Einheiten 0-20 mA 4-20 mA 0-10 V

0,00 0,00 4,00 0,00
102,40 1,00 4,80 0,50
204,80 2,00 5,60 1,00
307,20 3,00 6,40 1,50
409,60 4,00 7,20 2,00
512,00 5,00 8,00 2,50
614,40 6,00 8,80 3,00
716,80 7,00 9,60 3,50
819,20 8,00 10,40 4,00
921,60 9,00 11,20 4,50
1024,00 10,00 12,00 5,00
1126,40 11,00 12,80 5,50
1228,80 12,00 13,60 6,00
1331,20 13,00 14,40 6,50
1433,60 14,00 15,20 7,00
1536,00 15,00 16,00 7,50
1638,40 16,00 16,80 8,00
1740,80 17,00 17,60 8,50
1843,20 18,00 18,40 9,00
1945,60 19,00 19,20 9,50
2048,00 20,00 20,00 10,00

EDIT: Nachtrag.
bei einer baugruppe -10 bis +10 V hast du natürlich auch 2048. 0= -10V, 1024= 0V, 2048= +10V
 
@volker,

demnach fällt diese Baugruppe doch aus dem Rahmen?
Denn bei den 115 und größeren AGs liefert die AE-Baugruppe 0-2048 im Normbereich und bis 4096 im Überlaufbereich (Ü-Bit gesetzt).

Oder gilt der Versatz um 512 nur bei der Ausgabe?

Gruß
raika
 
ich bestreite ja auch gar nicht, das 2049-4096 der überlauf ist. eine 0-10V baugruppe hat bei 4096 20V.

es gibt keinen versatz von 512. NIE

das mit den 2048 einheiten ist bei ALLEN s5-baugruppen gleich.
 
Hallo Volker,

zu meiner Schande muß ich gestehen, bei S5 noch nie mit 4-20mA gearbeitet zu haben.
Wenn ich mir jetzt überlege, dass das Ü-bit bereits bei 2049 kommt, kann es natürlich auch keinen Versatz geben.
Doch Dein NIE möchte ich noch nicht so hinnehmen. Wie bereits mein Hinweis auf die Analog-Ausgabe im vorigen Beitrag, denke ich, dass hier ein Versatz um 512 erforderlich ist.

Edit:
wie ich gerade sehe, habe ich meinen Beitrag zu lange offen gehabt (nebenbei telefoniert).
Ich rede beim Versatz nicht mehr von 100-er Baugruppen, sondern 115 und größer und von 4-20mA. Bei 0-10V und 0-20mA brauche ich natürlich keinen Versatz.


Gruß
raika
 
Also ich habe nun doch mal in Handbüchern gestöbert und mußte feststellen,
dass es bei den kleinen Steuerungen nirgends einen Hinweis auf Versatz gibt.

Doch für teasy hier aus dem Support von Siemens:

Code:
FRAGE:
Wie kann ich einen Analogwert einlesen, ohne den integrierten Funktionsbaustein FB 250 zu verwenden? 

ANTWORT: 
Sie können den Analogwert auch ohne den FB 250 auslesen. Bei den AGs 90U-100U wird der Analogbereich in das Prozeßabbild der Eingänge (PAE) abgelegt und mit dem Befehl ”L EW” geladen. Das Ü-Bit, F-Bit und X-Bit des eingelesenen Analogwertes müssen Sie ausblenden, indem Sie das Eingangswort um 3 Stellen nach rechts schieben. Wenn der Analogwert negativ ist, müssen Sie nach dem Schieben die Vorzeichenbits setzen. 

Beispielprogramm: Einlesen eines Analogwertes mit Festpunktdarstellung (unipolar oder bipolar). 

     :L   EW 64   Laden des Analogwertes  
     :T   MW200   Ins Merkerwort 200 abspeichern (Schmiermerker)  
     :UN  M 200.7 Abfrage ob Analogwert positiv ist  
     :SRW 3 3 mal schieben (Ü-Bit, F-Bit und X-Bit ausblenden)  
     :SPB =M001   Wenn positiv, springe nach M001  
     :L   KH F000 Maske für Vorzeichenbits laden  
     :OW          Vorzeichenbit setzen  
M001 :T MW 64 Wert in den Zielbereich transferieren


Für die 115U habe ich folgendes Handbuch dowgeloadet: 6ES5 988-OUH11.pdf

Auf Seite 195 steht:

Code:
Analogwerteingabe:
Darstellung bei Strommeßbereichen 4..20 mA, Kanaltyp 3: Betragsdarstellung

Der Meßbereich  4..20 mA wird auf 2048 Einheiten im Intervall 512...2560 Einheiten aufgelöst.
Für eine Darstellung im Bereich 0...2048 Einheiten müssen softwaremäßig 512 Einheiten subtrahiert werden.

Für Ausgabebaugruppen habe ich keinen Hinweis gefunden.

Gruß
raika
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok. das handbuch wird wohl nicht lügen.
zu meiner schande muss ich gestehen, dass ich das nicht wusste. bei einer 115er hab ich immer die ob's genommen.
 
Danke, hat geklappt.

Es hat geklappt. Den FB250 kann ich nicht benutzen. Mußte es wie unten lösen, alles in einem FB und den dann im OB mit spa aufrufen.
Jetzt würde mich noch interessieren wie man das Ganze noch mit Zeiten realisiert, d.h. wenn 35°C erreicht, dann soll das ganze Prozedere 40 Minuten ablaufen.
Code:
0005      :L   EW 80
0006      :SRW    3
0007      :L   KF +1109                             35°C
0009      :<F
000A      :S   A  1.0
000B      :L   EW 80
000C      :SRW    3
000D      :L   KF +1109
000F      :>F
0010      :R   A  1.0
0011      :BE
 
mit zeiten kann man das machen. würde ich aber nicht empfehlen. wenn du mit zeiten arbeitest weisst du nie genau wie warm das medium nach der heizphase ist, da das von etlichen faktoren abhängig ist.

besser ist du definierst ein fenster. heizung ein bei 1109 und heizung aus bei 1200. so wie du das oben gamacht hast, wird der ausgang an der schaltschwelle schwer flattern.

mit zeiten z.b. so:
ersetze a 1.0 durch m1.0
Code:
u m 1.0
l kt 240.3
sv t 1

u t 1
= a1.0
 
Code:
0005      :L   EW 80 
0006      :SRW    3 
0007      :L   KF +1109                             35°C 
0009      :<F 
000A      :S   A  1.0 
000B      :L   EW 80 
000C      :SRW    3 
000D      :L   KF +1200                             37°C 
000F      :>F 
0010      :R   A  1.0 
0011      :BE
so einfach
 
Code:
0005      :L   EW 80 
0006      :SRW    3 
0007      :L   KF +1109                             35°C 
0009      :<F 
000A      :S   A  1.0 
000B      :L   EW 80 
000C      :SRW    3 
000D      :L   KF +1109 

          :L   KF +100               nimm einen Wert, der Z.Bsp. 2°C entspricht
          :+F

000F      :>F 
0010      :R   A  1.0 
0011      :BE
 
Zurück
Oben