Digitaleingänge in BCD wandeln und dann als Analogwert ausgeben

Gerthok

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

ich habe ein kleines Problem mit einer Aufgabe, die mir mein Ausbildungsmeister gestellt hat und hoffe ihr könnt mir dabei behilflich sein.

Die Aufgabe sieht wie folgt aus:
Ich soll mit einem BCD Schalter auf die digitalen Eingänge einer S7 gehn (315-2 DP) und dann diese Eingänge in einen Analogwert (0-10V) umwandeln, welchen ich dann weiter an einen Servoregler gebe.

Das Problem ist, wie wandel ich die digitalen Signale zunächst in eine BCD Zahl um (stichwort merkerwort ?) und dann wiederum in ein analogsignal.

Ich hoffe es war einigermaßen verständlich und ihr könnt mir helfen

danke schonmal im vorraus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort, aber das hat mich nun auch nicht viel weiter gebracht.

Nehmen wir mal an ich habe 4 Digital eingänge. Diese stehn für 1 2 4 8.
also die 1 dann 0001, 2 dann 0010.... usw.

wie sag ich der SPS das wenn Eingang 2 und 3 (also 6) TRUE sind, dass dies am Analogwert ein Wert von sagen wir mal 6V ergeben soll
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaub ich steh auf dem schlauch. das klingt so einfach :) aber ich hab mit merkerworten und sowas noch nicht wirklich viel zu tun gehabt, desshalb wäre eine kleine erklärung wie man so etwas bewerkstelligt wirklich sehr hilfreich.
 
Also:

Ein Wort besteht aus 2 Byte zu je 8 Bit.

Das MW0 besteht also aus dem MB0 und MB1 und diese enthalten die Merker 0.0 bis 0.7 = MB0 und 1.0-1.7 =MB1

Wenn du nun Merker 0.1 und 0.2 auf HIgh-Pegel legst dann steht im MW0 eine 6.
 
ok ich hab jetzt in einem FC jedem meiner 4 eingänge einen merker zugeordnet (merker 0.0 bis 0.3).
Nun geh ich mit dem MW0 auf den BCD_I Baustein. Dieser schreibt mir, so weit ich das in der Hilfedatei verstanden habe, die Integer Zahl nun auch in ein Merkerwort, in meinemfall MW1.

falls es soweit richtig ist, wie wandel ich nun die Int Zahl in einen analogwert von 0-10V um ?
 
Hallo!

kann man da nicht fc105 nehmen:

0000 als LO lim, den höchsten wert des bcd schalters als hilim, ausgang: 0 bis 27468 ergibt 0 bis 10 Volt.

odr?
 
@manni: wenn schon, dann den fc106, aber der mag nur real, da der wert aber schon in INT vorliegt, warum damit nicht weiter rechnen? ... der code da oben ist eindeutig...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die 27648 ist der faktor, den die siemensbaugruppen gerne haben... aber das kannst du auch alles in den entsprechenden unterlagen zu deiner hardware nachlesen z.b. in den baugruppendaten

4L redet hier von der Analogwandlung deines eingelesenen BCD-Wertes (nach der Wandlung eine Int). Du willst ja einen Analogwert 0-10V ausgeben. Bei Siemesn heißt das

0 in den Input für die Anaogbaugruppe = 0V Output
27648 in den Input = 10V Output

Also mußt du deinen Wert für die Analogbaugruppe entsprechend umwandeln. Um das einfacher zu machen, hat Siemens bereits den fertigen FC105 in der Standardlibrary. Lies dir mal die Hilfe zu dem FC durch, Maus drauf postieren und dann "F1".
 
Zuletzt bearbeitet:
kinners, was schmeißt ihr hier mit den fcs um euch? der 105 macht aus nem analogen eingang ne real-zahl und der 106er aus ner real ein ausgangsword ... völlig fehl am platz ... mit den grundlagen

Code:
*
      L     #hi_lim 
      L     #lo_lim 
      -R 
      T     #delta
      L     #wert               //der auszugebende Wert
      L     #lo_lim
      -R        
      L     #delta 
      /R     
      L     2.764800e+004       //Skalierungsfaktor
      *R     
      RND 
      T     #out

sollte das problem schnell gelöst sein! ... nein, ich habe kein problem damit INT und WORD in einen topf zu werfen!
 
Der FC 105 bzw 107 versteht sich doch nur auf REAL Zahlen. Aber ich hab doch nach dem BCD_I eine Integer Zahl. Die kann ich dann ja dmait nicht verarbeiten. Oder soll ich die Int Zhal noch irgendwie in eine REAL zahl wandeln ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ganze bedeutet also für dich, 0V entsprict BCD eingabe 0, 10V entspricht höchst mögliche BCD eingabe (Wieviele Stellen?) zb 2 = 99 und dann muss hierfür 27648 an die Analogausgabe übergeben werden, dh. 50 BCD entsprechen 13824.
Gruß online
 
Ist ja gut :p, er kann das natürlich leicht umrechnen, also nimm den Umrechnungsvorschlag von 4L und gut ist.

PS. Ich nehme ja den FC auch nicht, grins.
 
Zurück
Oben