# S7-1200 analogen Eingang programmieren



## baschan (17 März 2010)

Hallo zusammen,

ich habe hier ein kleines Problem mit meiner neuen S7-1200.

Ich versuche gerade meinen analogen Eingang zu programmieren, komme da aber irgendwie nicht weiter.
Könnte mir vieleicht irgendjemand helfen??

Müßte wissen welchen Baustein man dafür nehmen muß und was man für Werte eintagen muß.

Möchte einfach nur eine Temperatur erfassen, die über einen PT100 mit nachgeschaltetem Messwandler eine Spannung von 0-10V zur Verfügung stellt.

Danke schonmal im voraus.

baschan


----------



## vierlagig (17 März 2010)

is mit 0 bis 27648 wie bei der 300er zu handhaben ... guckst du FAQ ... standardbausteine kenn ich bei der büchse nicht und in der FAQ isn AWL-code den du halt auf den scheiß da umsetzen mußt...

S7-1200 *pfui* *spuck*


----------



## baschan (17 März 2010)

Danke, werde mal nachsehen, hab mit der 300er noch nichts zu tun gehabt...


----------



## baschan (17 März 2010)

Komme trotzdem nicht weiter, bräuchte mal ein Beispiel...

Danke


----------



## vierlagig (17 März 2010)

baschan schrieb:


> Komme trotzdem nicht weiter, bräuchte mal ein Beispiel...
> 
> Danke



so in etwa *könnte* es aussehen:


```
*


|     +-------------+                +--------------+
|     | INT TO DINT |                | DINT TO REAL |
+-----+          EN0+----------------+           EN0+
|     |             |                |              |
| myIn+INT      DINT+myTemp    myTemp+DINT      REAL+myReal
|     |             |                |              |
      +-------------+                +--------------+


|     +----------+                +----------+
|     | SUB_REAL |                | MUL_REAL |
+-----+       EN0+----------------+       EN0+
|     |          |                |          |
| myHi+R1    diff+myDiff    myDiff+R1    prod+myReal
|     |          |                |          |
  myLo+R2        |          myReal+R2        |
      +----------+                +----------+


|        +----------+                +----------+
|        | DIV_REAL |                | ADD_REAL |
+--------+       EN0+----------------+       EN0+
|        |          |                |          |
|  myReal+R1    quot+myQuot    myQuot+R1    prod+myOut
|        |          |                |          |
  27648.0+R2        |            myLo+R2        |
         +----------+                +----------+
```


----------



## baschan (17 März 2010)

Leider bringt mich das so auch nicht ganz weiter.
Bei der 1200er sieht das ganze anders aus und da ich noch relativ
neu bin, was das programmieren angeht, zumidest mit analogen Eingängen
muß ich Wohl oder Übel weiter probieren.
z.B.: so Dinge wie myIn, was soll das ein??? SOll da direkt der Eingang hingeschrieben werden?? oder myReal??

Ich verstehe nur Bahnhof....


----------



## crash (17 März 2010)

In der 1200 gibts dafür den Baustein NORM_X
Der normiert auf einen Wert zwischen 0.0 und 1.0.
Den musst du dann noch mit deinem Messbereich multiplizieren.


----------



## vierlagig (17 März 2010)

crash schrieb:


> Der normiert auf einen Wert zwischen 0.0 und 1.0.



wenn ich das richtig gelesen habe, können das bestimmte karten, einige lassen eine auswahl zu, aber eine genaue übersicht habe ich nicht gefunden ... dieses ganze system ist einfach nur f*U*ck


----------



## baschan (17 März 2010)

Ich kann dann bei min. z.B den Wert "0" eintragen und bei max. den Wert 27468 eintragen??

Was kommt an VALUE?? Und das wichtigste, was schreibe ich an out??

Und von was nach was muß ich normieren?? von Int nach... was weis ich??


----------



## crash (17 März 2010)

vierlagig schrieb:


> wenn ich das richtig gelesen habe, können das bestimmte karten, einige lassen eine auswahl zu, aber eine genaue übersicht habe ich nicht gefunden ...



weiß jetzt nicht was du damit meinst.


----------



## vierlagig (17 März 2010)

crash schrieb:


> weiß jetzt nicht was du damit meinst.



das format, welches du beschreibst, also 0.0...1.0, dann das s7 format 0...27648 und noch ein drittes ... ich such die entscprechende beschreibung jetz nich nochmal raus für dieses *scheiß* system


----------



## crash (17 März 2010)

baschan schrieb:


> Ich kann dann bei min. z.B den Wert "0" eintragen und bei max. den Wert 27468 eintragen??
> 
> Was kommt an VALUE?? Und das wichtigste, was schreibe ich an out??
> 
> Und von was nach was muß ich normieren?? von Int nach... was weis ich??



Hab jetzt gerade kein Zugriff auf die Software.
deshalb...
*Baustein anklicken und F1 drücken -> Hilfe*

min: 0
max: 27648
Normieren musst du von INT nach REAL.


----------



## baschan (17 März 2010)

Zum verständns möchte ich noch ein paar Eckdaten nennen.... Also ich möchte mit meiner CPU eine Temperatur erfassen und diese dann über ein HMI ausgeben lassen, z.B. über eine Balkenanzeige.

Wenn ich den Balken im HMI programmiere fragt er mich immer nach einer Variablen, die ich aber nirgendwo finde.
Das heisst, ich müsste dann den Wert von OUT abfragen, oder verstehe ich das jetzt falsch??

Muß ich diesen Wert dann auch noch irgendwo hinterlegen??

Ich weis, soviele Fragen, aber wenn ich mir was in den Kopf gestzt habe, dann mach ich das auch...

Danke trotzdem schonmal für die Mühe....


----------



## crash (17 März 2010)

@4l: Der Baustein normiert den Eingangswert (z.B. 0-27648) auf 0.0 bis 1.0
      0 -> 0.0
13824 -> 0.5
27648 -> 1.0

Wenn der Messbereich jetzt z.B. 200°C ist
dann muss man den Ausgabewert mit 200 multiplizieren und fertig.


----------



## vierlagig (17 März 2010)

crash schrieb:


> @4l: Der Baustein normiert den Eingangswert (z.B. 0-27648) auf 0.0 bis 1.0
> 0 -> 0.0
> 13824 -> 0.5
> 27648 -> 1.0
> ...



da die russen grad down sind, kann ich es mir grad nicht in echt angucken


----------



## baschan (17 März 2010)

Ja das hab ich ja auch verstanden...

Wäre es möglich mir mal so ein kleines Testprogramm zu schreiben??

Ich glaub sonst sitze ich nächstes Jahr immer noch hier....

Könntest Du mir ja eventuell per email schicken...

DANKE.....


----------



## crash (17 März 2010)

Bei OUT musst du natürlich ein Merkerdoppelwort
oder ein Doppelwort aus einem DB dranschreiben
welches du dann auch in der Visu zum Anzeigen verwendest.


----------



## crash (17 März 2010)

baschan schrieb:


> Ja das hab ich ja auch verstanden...
> 
> Wäre es möglich mir mal so ein kleines Testprogramm zu schreiben??
> 
> ...



kann morgen auf arbeit mal nen screenshot o.ä. machen.


----------



## baschan (18 März 2010)

Ja danke , das wäre super.


----------



## Andy79 (18 März 2010)

Hallo,

ich komme wahrscheinlich etwas spät mit meiner Hilfe, aber ich hab in einem anderen Thread mal die Scale/Unscale Bausteine für die S7-1200 verlinkt.

http://www.sps-forum.de/showpost.php?p=228595&postcount=10

Die sind dann genauso handhabbar wie in der S7-300/400.

Gruß Andy


----------



## crash (18 März 2010)

auf die schnelle....



du musst bei dir folgende Werte angeben
MIN: 0
VALUE: dein Analogeingabewert
MAX:27648
OUT: der normierte Wert

den normierten Wert musst du noch mit dem Messbereichsendwert deines
Messwandlers multiplizieren also dem Temperaturwert der 10V entspricht.


----------



## baschan (18 März 2010)

Danke erstmal an alle Beteiligten. Werde es später mal ausprobieren. Falls es wiedererwarten nicht funktionieren sollte, melde ich mich nochmal.
DANKE DANKE....


----------



## baschan (18 März 2010)

habe das proggi jetzt mal in meine cpu geladen...

komme damit aber immer noch nicht klar...

1. wenn ich den bargraphen in meinem hmi programmieren will, muß ich ihm auch eine variable angeben.. welche ist dies?? 

2. #in an value ist das jetzt schon dem analogen eingan zugewiesen, oder muß ich jetzt noch was wo hinterlegen???


----------



## crash (18 März 2010)

baschan schrieb:


> habe das proggi jetzt mal in meine cpu geladen...
> 
> komme damit aber immer noch nicht klar...
> 
> ...



1. die Variable die du bei OUT angegeben hast.

2. #IN ist eine Lokalvariable aus meinem Baustein.
Statt #IN nimmst du deinen analogen Eingang.


----------



## baschan (18 März 2010)

Hab nur noch nicht geschnallt wie die heissen, kann ja nicht e2.0 sein, oder???

Und wie kann so eine Variable aussehen, die ich bei OUT angeben muß??
Muß die ein bestimmtes Vormat haben?? Muß ich die erst in der Variablentabelle anlegen??


----------



## crash (18 März 2010)

baschan schrieb:


> Hab nur noch nicht geschnallt wie die heissen, kann ja nicht e2.0 sein, oder???
> 
> Und wie kann so eine Variable aussehen, die ich bei OUT angeben muß??
> Muß die ein bestimmtes Vormat haben?? Muß ich die erst in der Variablentabelle anlegen??



1.) z.B. EW64 oder so
Die Adresse kannst du in der Hardware-konfiguration nachschauen.
(Adresse des analogen Eingangs)

2.) Die Variable musst du natürlich in der Symboltabelle vorher anlegen.
Datentyp --> REAL


----------



## baschan (19 März 2010)

Ok, das hab ich jetzt gemacht, bleiben nur noch ein paar Fragen offen:

#lo_lim???
#hi_lim???
#ret val???
#auxR

und muß überall da wo z.b. aux steht, auch die gleiche Variable eingetragen werden, oder muß überall eine andere reingeschrieben werden, dann müßte ich ja ein paar anlegen.

und welche Variable lese ich dann für meinen Bargraphen aus??

Ich weis, Fragen über Fragen...

Aber wie hieß es schon in der Sesamstrasse... Wer nicht fragt, bleibt dumm..


----------



## dwurmitzer (30 Oktober 2013)

Hallo Leute !!!
Ich versuche auch gerade eine Temperaturmessung mit der S7-1200 zu machen komm aber einfach nicht weiter ....

Wie ich das so mitbekommen habe brauche ich die Bausteine NORMX und SCALEX .. aber woher bekomme ich die und wo muss ich sie einfügen ? Im Main(OB1) ?

Bitte um Rückmeldung (der Anfänger)


----------

