Analogwertverarbeitung Rob3i

Smax95

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

ein Kollege und ich haben ein kleines Problem. Wir sind im 3 Lehrjahr und machen eine Ausbildung zum Mechatroniker. In der Berufsschule haben wir leider kaum Analogwerte im Unterricht besprochen und unsere Ausbilder haben davon genauso wenig Ahnung wie wir...
Naja jetzt mal zu dem Problem. Wir haben bei uns in der Firma einen alten "Rob3i" gefunden der schon seit über 10 Jahren in der Ecke steht und haben uns gedacht, dass man den bestimmt auch mit Analogwerten programmieren kann. Wir haben ihn soweit umgebaut dass man ihn mit der SPS schonmal steuern kann (über die normalen Ausgänge mit Tastern). In dem Rob3i sind Servomotoren mit Potis verbaut die die Position bestimmen. Unser folgendes Problem ist nun, dass wir nicht wirklich Ahnung haben wie wie die Werte von den Potis auslesen und verarbeiten können. Wir wollen ihn programmieren, dass wenn er eine bestimmte Position erreicht, stehen bleibt und nicht mehr weiter fährt.
Beispiel: Wir verfahren ihn in Richtung des Grenzwertes (15V ; 5V). Wenn er diesen Wert erreicht bleibt er stehen und lässt sich nur noch in die andere Richtung verfahren bis er wieder unter/über dem Grenzwert ist (<15V ; >5V).
Wir haben einen Spannungsbereich von 0-24V der vom Poti ausgeht, wir brauchen jedoch nur einen Bereich von 5-15V.

Ich hoffe ihr könnt uns bei dem Problem helfen. Wir haben schon viele Foren durchsucht aber leider nichts brauchbares gefunden. Auch das Thema von "Vierlagig" hat uns leider nicht weiterhelfen können. Bitte erklärt es so einfach wie möglich erklären, da wir noch nicht so gut in der SPS Technik sind.

Unsere SPS ist eine S7 300 (CPU 314C-2 PN/DP) mit dem Erweiterungsmodul ET 200s (IM 151-3PN)
Wir arbeiten mit TIA Portal V11


Mit freundlichen Grüßen
Smax95
 
Zuletzt bearbeitet:
Was ist denn jetzt konkret eure Frage?

Zur Siemens-Welt kann ich leider nichts beitragen. Ganz allgemein: Wenn der Potiwert an einem Analogeingang anliegt, kann er über den Eingang eingelesen werden. Man bekommt dann allerdings i.A. keinen Spannungswert (also Fließkomma-Wert), sondern einen Int ("Counts"). Die Skalierung muss man dann in seinem Programm machen.

Beispiel:
Eingangswert: 0-10V, Klemmenauflösung 12 bit. 2^12=4096
Messwert(analog)=Messwert(counts)/4096*10.0
Hinweis: Variablentypen beachten und geeignete Typumwandlungen durchführen.

Letztlich interessiert euch aber auch nicht der Spannungswert, sondern die Position (Weg oder Winkel). Da müsst ihr dann nochmal umskalieren. Damit habt ihr dann den Ist-Wert für euren Lageregler. Ob ihr den selbst programmieren müsst hängt wieder davon ab, was eure Siemens-Steuerung schon bietet. Bei Beckhoff würde ich die Beckhoff-NC verwenden und denn Istwert dort einspeisen.

Mit freundlichen Grüßen
Thorsten Ostermann
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Antwort.
Unsere Frage die uns am meisten beschäftigt ist jedoch wie wir sie programmieren, also dass unsere SPS mit den INT Werten arbeiten kann.
Wir wollen ja Grenzwerte einstellen ab welcher Position der Arm nicht mehr weiter fahren soll.
Also grob gesagt suchen wir jemanden, der uns erklärt welche Bausteine wir nehmen müssen und wie diese Funktionieren.
 
1. Schritt:
Ihr müsst das Poti mal mit 10V versorgen, die Meisten Analogeingänge sind 0-10V. (ev. gibt es auch welche mit +-10V)

2. Schritt:
mal das an die SPS anschließen und dann schaut ihr den entsprechenden Eingang (zB PEW 8) mal mit Variablen beobachten / steuern an ob hier glaubwürdige INT Werte ankommen.

3. Schritt:
zB mit Scale (FC105) den INT Wert auf vernünftige Werte skalieren (zB.: 0-100% oder 0-360°, . . .)

4. Schritt:
in euer Programm eine Positionsregelung erstellen -> Sollwert mit Istwert vergleichen, entscheiden in welche Richtung gefahren werden soll, Fahrbefehl ausgeben, SW/IW vergleichen, bei = Fahrbefehl aufheben :)
 
Wir brauchen jemanden der uns erklärt welche Bauteile wir benötigen und wie sie funktionieren.
Als Beispiel den Scale, wir müssen unseren Analogen Eingangswert erstmal Skalieren, soweit waren wir auch schon.
Wir wissen nur nicht genau wie wir ihn Skalieren, bzw wie wir dann weiter machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Smax95

hier findest Du die benötigten Handbücher:
http://support.automation.siemens.c...tandard&viewreg=WW&objid=10805161&treeLang=de

z.b. die Baugruppendaten:
http://support.automation.siemens.c...m=0&extranet=standard&viewreg=WW&load=content

und die Daten Deiner CPU (Analoganschlüsse)
http://support.automation.siemens.c...art=11&csSort=-DOCDATUMBEITRAG&subtype=133300

Abschnitte:
7.6.1 Anordnung und Verwendung der integrierten Ein-/Ausgänge
7.6.2 Analogperipherie

Zur Skalierung nimmts Du den FC105 wie winman schon geschrieben hat, oder etwas eigenes (Dreisatz) .

Grüße
Peter
 
Programm.png
Ich habe hier mal ein Programm erstellt, jedoch funktioniert es nicht... Also der Arm bewegt sich trotzdem, obwohl er den Grenzwert erreicht haben sollte...
 
Ich habe hier mal ein Programm erstellt, jedoch funktioniert es nicht... Also der Arm bewegt sich trotzdem, obwohl er den Grenzwert erreicht haben sollte...

Du darfst nicht auf == vergleichen.
Es wird wohl nie der Fall sein dass der Wert absolut exakt erreicht wird.
Du musst auf größer und kleiner als Sollwert vergleichen.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Abfragen auf Gleich ist immer schlecht. Besser abfragen auf größer-gleich oder kleiner-gleich, je nach Anwendungsfall. Du brauchst nur eine Einheit über oder unter den Vergleichswert kommen, dann stimmt der Vergleich bei gleich nicht mehr. Der Arm bleibt ja nicht sofort stehen, wenn der Vergleich erfüllt ist, sondern fährt ein kleines bißchen drüber.
 
und ausserdem liegt dein retval und out aus der fc105 im gleichen merkerbereich

md20 besteht aus mw20 und mw22
nimm als out mal md22
 
Unbenannt-neu.png

Ich habe das Programm mal nach euren Verbesserungen geändert. Nur funktioniert es leider trotzdem noch nicht...
Sobald ich den Arm in eine Richtung verfahre (->) zeigt er mir im Programm an dass ein Grenzwert erreicht wird und blockiert die andere Richtung (<-) dass ich nicht mehr zurückfahren kann.
Was ist nun falsch? bzw habe ich irgendwas vergessen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ist der merker tag_3 und tag_4 die verriegelung?
der vergleicher vergleicht den oberen wert mit dem unteren. tausche das mal. also dein md22 oben und den wert unten eintragen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das tauschen bei den Vergleichern hat auch nicht wirklich was gebracht...
Hier mal 2 Bilder wie es im Beobachten Modus aussieht ohne dass ich den Arm verfahren habe.
Bild.pngBild2.png
 
Dein IW800 ist 0, was soll also passieren?
Analogkarte richtig verdrahtet?
Profinet-Verbindung OK zur ET?

Mfg
Manuel
 
Du kannst doch jetzt mit TAG_4 die Bewegung in die eine Richtung sperren.
Dann mit TAG_3 in die andere.

Ich gehe schon davon aus, dass bei Bewegung sich der Wert ändert.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@MSB Wir haben ein SPS-Übungsboard, also weis ich nicht ob sie angeschlossen sind oder nicht.
Die Buchsen sind vorhanden also gehe ich davon aus dass diese auch angschlossen sind, bzw. funktionieren sollten...

@bike ja das habe ich auch schon verändert und nachgeschaut aber dann wird nur das andere Signal gesperrt..
 
Es geht doch darum, ob Du richtig vergleichst. Beispiel Vergleich auf >=.
Es wird verglichen, ob der Wert von IN1 grösser oder gleich dem Wert von IN2 ist. Diesen Vergleich würde ich für die Abwärtsfahrt nehmen, d.h. abwärtsfahren, solange der Vergleich erfüllt.
Bei Aufwärtsfahren den Vergleich auf <=.
Aus den Codeschnipseln (ohne Kommentare) kann man ja nicht ersehen, wie Du welchen Merker wo einbindest.
 
Du solltest dich einmal für eine Lösung entscheiden.
Im ersten Bildchen ist Tag_3 = 1 im zweiten Tag_4.

Im ersten Teil kannst du die Bewegung nach Minus mit Tag_3 sperren und nach Plus dann mit TAG_4

Zum Versuch kannst du ja ein MW als Istwert nehmen, das noch nicht im Programm verwendet wird, und dieses mit Werten vorbelegen.
Sann versteht Ihr wie ein Vergleicher funktioniert


bike
 
Zurück
Oben