Abstandsmessung

Xadrosos

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
bin neu hier im Forum und hab auch gleich eine Frage.

Und zwar möchte ich mittels eines Ultraschallsensors mehrere Abstandsmessung (ca.10) machen und die Messwerte (Länge in mm) in der SPS addieren und mit dem Gesamtwert einen Motor ansteuern.

Mein Problem ist das ich nicht weiß welchen Baustein ich da verwenden muss, um die Meßwerte zu verwenden und zu addieren. Da ich die SPS nur in der Ausbildung kennenglernt hab, ist mein Wissen recht beschränkt. :D

Schon mal großen Dank im vorraus.

Xadrosos
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ins Blaue:
bei ner 300er

PEW (Peripherieeingangswort) laden zB: 756 (0 - 27tausendirgendwas)
in INT wandeln
in einem Datenbaustein zb: DB1.DBW0 speichern
den 2. genauso aber in DB1.DBW2

usw....

danach die Werte addieren (+I), und auf einen Analogausgang schreiben (je nachdem was der Motor verträgt)

evtl mit fc 106 deskalieren oder einfach die 27irgendwas dividieren, da ist´s halt etwas ungenauer.

schau mal in der FAQ hier
 
Zuletzt bearbeitet:
also es ne 312er arbeite mit Step 7 V5.4

Ausgang ist pnp 300mA

Sprache FUP

In DB1.DBW0 kann ich also addieren?
 
addieren kannst du aich in einem Merkerwort, wenn du die Werte in MW20,22,24 usw ablegst gehts genauso, im DB hat du mehr Speicherplatz.
DB1.DBW0
DB1.DBW2
...

dann 0 und 2 addieren und zb in DB1DBW12 speichern
dann 4 zu 12 und so weiter so hast du irgend wann dein endergebnis.

/edit
es gibt sicher kollegen, die das je nach geschwindigkeit und notwendigkeit indirekt addressiert lösen
/edit

aber du schreibst, dass du ja nicht der profi bist, drum mein vorschlag (bin auch kein profiI)
 
Zuletzt bearbeitet:
Hallo!

In einem Kurs hab ich mal gehört mit MOVE. also sinngemäß:
Code:
L PEW 756
T DB20.DBW0
NOP 0
Durch das NOP 0 kannst es in FUP darstellen.
Dem Peripherieword kannst du ein Symbol geben und als WORD deklarieren, und dem Speicherbereich (ob Merkerword MW oder Datenbaustein is wurscht) kannst du ebenfalls ein Symbol zuweisen und als INT deklarieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok nehmen wir an ich benutze einen FC 105.
Jetzt weiß ich nur nicht was ich unter HI_LIM und
LOW_LIM eingeben soll.

Verstehe ich das richtig das das was an IN anliegt skaliert wird?
wenn ja, was wäre denn in meinem Fall hab einen Meßbereich von 7 cm?
 
Ok nehmen wir an ich benutze einen FC 105.
Jetzt weiß ich nur nicht was ich unter HI_LIM und
LOW_LIM eingeben soll.

Verstehe ich das richtig das das was an IN anliegt skaliert wird?
wenn ja, was wäre denn in meinem Fall hab einen Meßbereich von 7 cm?

Ja das verstehst du richtig:p

Also dein US hängt an einem AI. Was bekommst du rein? 0 - 10V oder 0(4) - 20mA.
Ich nehm mal 0 - 10V an.
Dein AI macht nun aus der Spannung einen Wert von 0 bis 27648.
Wenn du diesen an den IN des FC105 hängst kannst du ihn - wie du sagt - skalieren. Aber in welchem Bereich????

Das sagst du der SPS mittels HI + LO LIM. zB. 0 - 100% dann schreibst du LO 0.0e+0 un d HI 1.0e+2
Code:
      CALL  "SCALE"
       IN     :=PEW10                   //Eingangswort
       HI_LIM :=1.000000e+002           //Skalierungsobergrenze
       LO_LIM :=0.000000e+000           //Skalierungsuntergrenze
       BIPOLAR:=FALSE                  //bi- oder unipolar - hier unipolar
       RET_VAL:=MW8                     //Fehlerinformation
       OUT    :=MD10                    //Skalierter Messwert in REAL

Wenn du zwischen 20 und 30 skalieren willst musst du halt das ranschreiben.
Aufpassen mußt du nur bei der weiteren Verarbeitung, da der FC105 dir den Wert in REAL ausgibt.

In deinem Fall schreibst du bei LO 0.0e+0 und bei HI 7.0e+0 dran. So hast du Null bei 0 und 7 bei max.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok das habe ich verstanden.
Der US gibt ein signal 4-20 mA aus. Ändet sich das was großartig?

So da ich ein beim Out einen Analogen Ausgang bekomme, wie wandle ich in in ein digitales Signal um damit ich einen Gleichstrommotor ansteuern kann?
 
Nein , ändert nix. Du mußt nur die Analogkarte richtig einstellen. Aus der kommen erst recht wieder die 0 bis 27648 raus.;)
So da ich ein beim Out einen Analogen Ausgang bekomme, wie wandle ich in in ein digitales Signal um damit ich einen Gleichstrommotor ansteuern kann?
Welcher out? Vom FC105? Da bekommst du keinen analogen Ausgang. Da verwechselst du was. Da bekommst du einen Zahlenwert in REAL, der sich zwischen deinen Limits bewegt. mit dem Kannst du rechnen und sonst tun was du willst;).
Den REAL kannst du beim FC106 "UNSCALE" an den IN hängen. Da kannst du als LO 0 und als HI 100 anschreiben, und du hast am OUT einen INT stehen zw. 0 und 100% (als Beispiel).
So nun hast du deinen Abstand eingelesen (FC105) ihn irgendwie verarbeitet (wir sagen verwurschtelt) und schließlich als Integer am OUT vom FC 106. Jetzt mußt du noch proggen was dein Analogausgang kann. Wahrscheinlich ITB INT to BCD wandeln. so kanst du es auf einen AO schreiben.

Damit das eine GM versteht muß du je nach Maschine das Erregerfeld variiren, oder die Ankerspannung. Da brauchst du aber ein Interface vom Maschinenhersteller. Sinngemäß der FU bei einer DAM.
Mach mal bis hierhin, und dann sehen wir weiter.
viel Glück
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK da jeder so gern auf die FAQ verweist, hier nochmal mein Beitrag:
Ins Blaue:
bei ner 300er

PEW (Peripherieeingangswort) laden zB: 756 (0 - 27tausendirgendwas)
in INT wandeln
in einem Datenbaustein zb: DB1.DBW0 speichern
den 2. genauso aber in DB1.DBW2

usw....

danach die Werte addieren (+I), und auf einen Analogausgang schreiben (je nachdem was der Motor verträgt)

evtl mit fc 106 deskalieren oder einfach die 27irgendwas dividieren, da ist´s halt etwas ungenauer.

schau mal in der FAQ hier
Aber jeder wie er will.
Xadrosos wie gehts weiter?
 
Hab gestern in der Hardware Den Meßbereich eingestellt
den ich brauche. Jetzt zeigt mir die sm331 SF (systemfehler)
hab dazu nen neuen thread gestartet.
 
Zurück
Oben