Motorsteuerung mit PhoenixContact und PC Worx

wee-lee

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe seit letzter Woche eine Projektaufgabe bekommen und soll im Moment erstmal meine 2 Servomotoren über den PC steuern können.

Bin total neu auf dem Gebiet und wurde jetzt quasi ins kalte Wasser geschmissen.
Hab eine Phoenix Steuerung (ILC 370 PN 2TX-IB/M) und soll jetzt irgendwie einen Befehl schicken können damit sich der Motor dreht.
Hab in PC Worx die Verbindung hergestellt und Interbus-Komponenten eingefügt, wobei ich mir nicht ganz sicher bin ob ich die richtigen gewählt habe.
Naja mein Problem ist nun das ich mir den Schnelleinstieg durchgelesen habe und alles was drin steht auch so hinbekommen hab, leider hab ich aber keine Ahnung vom Programmieren,
deshalb komm ich jetzt nicht weiter.
Ich kann ja auf der IEC-Programmierungsebene in Worx im Editor so "schaltkreise" zeichnen. da ich aber keine ahnung von den befehlen habe steck ich hier jetzt fest.
Die Frage ist also: Wie muss der Schaltkreis aussehen damit ich einen Wert eingebe(Umdrehung/Min) und die Steuerung schickt den wert an den Motor weiter.
Kann man da eventuell schon pauschal ne antwort drauf geben oder braucht ihr noch mehr infos?

Wie gesagt bin totaler anfänger und weiß nicht so recht was ich mache.

Gruss wee-lee
 
Hallo wee-lee,

also wenn du noch nie programmiert hast, wird das sehr schwierig.
Was ist das denn für ein Motor, läuft die Kommunikation über Profinet?
Was heißt über den PC steuern? Schickst du die Sollwerte mit Hilfe einer Client-Anwendung an die ILC per TCP/IP?
Läuft der Bus schon, also blinkt nix mehr an LED's? Konntest du dich schon verbinden mit der ILC?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab ich mir schon gedacht das ich vor einer für mich unlösbaren aufgabe stehe :(
Ich versuche mal deine Fragen nach besten wissen zu beantworten:
Motor: DC motor RE50 GB 200W KL 2WE
Getriebe: gear GP62 25NM 2ST KL, i = 19
Encoder: tacho ENC HEDL 5540 500IMP 3K WE Ø8
Servoverstärker: 4-Q-DC ADS 50/5
Der Servoverstärker ist bereits In betrieb genommen und hat Spannung.
Ich meine das PC Worx mir ne meldung gegeben hat das keine Profinetgeräte gefunden wurden, hab daraufhin den Interbus eingelesen und grünes licht bekommen.
dann hab ich alle geräte ausgewählt die irgendwann mal benötigt werden(nicht nur für den Motor) , also DO AO AI und danach kompiliert und da war auch keine fehlermeldung.
Ich habs auch schon geschafft die DO´s anzusteuern, was kein problem war weils ja ne bool variable ist. der nächste schritt wäre jetzt irgendwie mit dem bausteinsystem das mir bei pc worx zu verfügung gestellt wird eine schaltung zu machen in der ich quasi einen wert eintippe und der motor dreht sich entsprechend (egal wie schnell, hauptsache er läuft erstmal).
Der bus läuft schon und die verbindung ist auch da.

Ich denke nicht das das jetzt irgendwie einem weiterhilft aber schön wärs ;)

Gruss
wee-lee
 
Also laut dem Datenblatt von dem Verstärker musst du ihm ja eine Spannung von -10 bis +10 V geben. Ich weiß jetzt nicht bei wieviel Volt er welche Drehzahl hat. Das musst du dann mal messen. Erstmal musst du deine AO-Karte für -10 bis +10 V einstellen. Dafür benötigst du z.B. die IB IL AO 2/U/BP-PAC. Normalerweise ist die im Auslieferungszustand schon parametriert auf -10 bis +10 V. Ansonsten musst du sie noch parametrieren. Du kannst natürlich auch erstmal mit einem Multimeter messen was für eine Spannung rauskommt. Einfach mal in PC Worx ein Word draufgeben. 8AD0 (dez -30000) ist -10V und 7530 (dez +30000) ist +10V, dazwischen kannst dich austoben.

Aber wozu braucht ihr das Profinet?
 
Da bin ich wieder!

Profinet brauchen wir glaub ich nicht, ich bin halt wie im Schnelleinstieg von PC Worx beschrieben vorgegangen und deswegen bin ich auch auf die Profinet Konfiguration gestoßen.

Ich bin auch schon ein bisschen weiter gekommen ;)
Ich hab folgende Karten eingelesen:
IB IL 24 DO 4
IB IL AO 2/SF
IB IL AI4/EF-PAC

Im moment interessier ich mich ja eigentlich nur für die AO Karte, oder?
Ich hab jetzt aber festgestellt das, wenn ich die Motoren anschließe die SPS mir schon 4,4V rausgibt ohne das ich was mache, also die Motoren drehen sich schon.
Hab dann mal unter IEC Programmierung so ein MOVE Baustein eingefügt und als eingang die AO karte mit dem Prozessdatum CH1 U. wenn ich jetzt debug einschalte dann kann ich da eine positive zahl einsetzten. bei dem wert 13520 bleibt der eine Motor dann stehen (Spannung schwankt zw. +-0,5V) alle werte darüber lassen den motor in die andere richtung drehen.
Jetzt meine Frage: Kann ich daraus neue erkenntnisse gewinnen?
warum hab ich schon standardmäßig 4,4V aus der steuerung?
und was hat es mit dem Prozessdatum auf sich? hab da
nicht nur ch1 U sondern auch CH 1 I(0-20mA) und CH1 I(4-20mA) als Q und PDWO, H1, F1 als I. wofür sind die?

Möchte mich auch noch für die letzten antworten bedanken.

Gruss
wee-lee
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

also eigentlich ist ja die IB IL AO 2/SF für die Anwendung falsch oder. Du brauchst doch eigntlich -10 bis +10 V oder nicht? und nicht 0-10 V.

An den MOVE-Baustein kommt das Prozessdatum auf die Ausgangsseite. Du willst doch einen Wert reinschreiben.
Du kannst das aber auch ohne Baustein machen. Einfach einen INT_TO_WORD. auf die linke Seite eine Variable zum vorgeben des Wertes (max. 30000) und auf die rechte Seite das Prozessdatum.
PDW0/1 sind die Eingangs-Prozessdatenwörter um zum einen die Klemme zu parametrieren und dort wird auch das Ausgangs-Prozessdatum gespiegelt. H0/1 sind die Bits um das Ausgangsverhalten im Fehlerfall einzustellen. Und F0/1 geben das Format der Darstellung an, dies kannst du aber auf IB IL stehen lassen. H und F sind aber Bestandteil vom PDW, siehste aber schon welche Bytes und Bits sie belegen.
 
Ich werde das Problem mit der AO Karte mal ansprechen, was man sich dabei gedacht hat :)

Ansonsten muss ich sagen, das es alles bisschen kompliziert ist wenn man bei 0 anfängt. Aber danke für deine Hilfe bis hierhin.
Ab nächster Woche krieg ich hier auch unterstützung, die sich wenigstens ein bisschen auskennt, dann wird das schon alles irgendwie.

Werd jetzt mal gucken was es mit der S/F auf sich hat.


Edit// Hab da noch ne Frage. Wieso kann ich mit der S/F den Motor trotzdem CW un CCW drehen wenn ich nur Spannungen von 0-10V ausgeben kann?
Liegt das an der Spannung die von Anfang an durch kommt, also die 4,4V? Weil alle werte über 13520 drehen den Motor in die andere Richtung.
 
Zuletzt bearbeitet:
Ich stelle mir das so vor. Die 0-10V sind praktisch für den Verstärker -5 bis +5 V, da kein GND bzw. 0V Anschluss ist, beträgt dann die Spannung 10V. also läuft der Motor mit halber Drehzahl. Aber normalerweise müsste dann der Mittelpunkt bei 15000 liegen. Hast du schonmal die Drehzahl gemessen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

nach einer kurzen Urlaubsphase bin ich wieder da.
Folgende Sachen sind nun passiert:
Die Steuerung der Motoren über die Move Bausteine wurde entfernt, da ich nicht dahinter gekommen bin welche Werte ich eingeben soll damit sich a) beide Motoren nicht drehen und b) anschließend einen Wert erhöhen s.d. sich nur ein Motor dreht. Es drehten sich dann nämlich wieder beide. Sehr komisch diese Wechselwirkung.
Nach mehreren Telefonaten mit Phoenix wurde uns gesagt das wir die Bibliothek "Analog Technology" runterladen und kompilieren sollen. In dieser Bib sind nun mehrere Bausteine wobei 4 IL_AO sind.
Es sind: IL_AO_1_SF_V1_00 , IL_AO_Channel_V1_01 , IL_AO_V1_01 , IL_AO4_8_V1_12

In der Hilfe zu den FB/FU hab ich nun auch ein Schaltbild gesehen, bei dem ich glaube das ich es so übernehmen kann.

Ich hab den Baustein IL_AO_V1_01 benutzt:
Input Parameter: xActivate (Bool) auf True
xReset (Bool) auf False
dwinputAddress (DWORD) konnte ich nichts so recht mit anfangen aber hab dort das Prozessdatum ~AO 32 gesetzt
udtChannel1 und 2: (ST_Value) jeweils wie im Schaltbild einen IL_AO_Channel_V1 Baustein
iSelectChannels (INT) auf 0 für beide Kanäle
iModulType: (INT) da weiß ich leider garnicht was dort hinkommt
iOutputBehavior (INT) auf 1 (Reset)
iParameters( INT) 0(flüchtige Parametrierung) Was das heißt weiß ich auch nicht!=?
bTyp_BP_SF (Bool) auf True für IB IL 2/SF

bei den IL_AO_Channel Baustein weiß ich nicht wie ich mit den REAL Variablen umgehen soll hab rHI_Limit auf 30000.0 und rLO_Limit auf 0.0 und NormValue erstmal auf 15000.0

Beim Kompilieren gab es keine fehler aber im Debug-Modus werden mir dann folgende Output Parameter angezeigt:
xActive (Bool) 0
xError (Bool) 1
wDiagCode (word) 49664
wAddDiagCode (word) 4
dwOutputAddress (Dword) 0

Jetzt ist natürlich die frage was davon richtig ist und was falsch.
Weiter hab ich immer noch die frage warum mir die sps wenn ich sie nicht ansteuer schon 4,46V ausgibt und wie ich die SF parametrieren kann (Hab die beschriebung dazu nicht verstanden).
Im moment leuchtet die diode orange also ist die werkseinstellung noch drin, oder?

hab auch schon jetzt öfter gehört das die SF falsch ist weil die ja nur von 0-10V ausgibt. Heißt das, dass ich den Motor nur in eine richtung laufen lassen kann? oder gibt es da auch eine Möglichkeit?

So das war wieder viel text, aber hoffe mit euren antworten wieder ein stückchen weiter zu kommen.
Da ich mich in der Materie kaum auskenne bitte ich die antworten möglcisht einfach zu verfassen.
Viele dank schon mal!!!

wee-lee
 
Von welchen Klemmpunkt zu welchen Klemmpunkt an der IB IL AO 2/SF misst du denn diese 4,46V?
Meines Erachtens hast du auch die falsche Klemme.

Ich muss mir auch erstmal zu Hause die Beschreibung ansehen von dem Baustein. Nutze die kaum.
 
Gemessen wurde von 1.1 (Spannungsausgang) zu 1.2 jeweils an Stecker 1 und 3. die anderen Klemmpunkte sind nicht belegt.
Hab meinen Chef auf die SF angesprochen aber der hat gesagt das sich schlaue leute darueber gedanken gemacht haben und das so klappen sollte.

Danke fuer die Muehe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mess mal von 1.1 nach 1.3 bei verschiedenen Werten zwischen 0 und 30000. 1.2 ist für die Brücke. Wenn dein Chef meint das die dafür geeignet ist, sollen doch mal die schlauen Leute das anschliessen und in Betrieb nehmen.
 
Zuletzt bearbeitet:
So läuft das an der uni leider nicht :)
wir haben heute eine wertetabelle gemacht, also n wert eingegeben , spannung am motor, an der sps (1.1 nach 1.2) und spannung an den monitor ausgängen. werd die morgen oder am montag mal hier reinstellen.
 
Hallo Forum-Leser, hallo Mobi,

seit den letzten Einträgen ist ein bisschen Zeit vergangen.
Der Grund dafür lag zum einen an Ostern, aber auch, und das ist die gute Nachricht, an der Entdeckung vieler Fehler in der Verdrahtung. Es wird nun wahrscheinlich auch demnächst die AO-Karte ausgetauscht, da man den Fehler eingesehen hat.

Nach Änderung der Verdrahtung gibt es keine Wechselwirkungen mehr zwischen den Motoren und sie drehen sich auch nicht sofort.
Soweit so gut. Nun wollte ich ja mit Hilfe der Funktionsbausteinen ein Programm schreiben in dem ich die Drehzahl vorgeben kann und und das Drehmoment und die Position zurückbekomme.

Hier ist mein Ansatz:

1) Mit dem Prozessdatum der AO-Karte "Ch 1 U" kann ich ja einen Wert eingeben und der Motor ändert seine Spannung und damit auch die Drehzahl.
Ich hab nun mehrere Werte ausprobiert um den Proportionalitätsfaktor zu bestimmen.

10100 = 5V
20200 = 10V also ist ja U * 2020 = Q wobei Q der Wert ist den ich direkt eingeben kann.

Als nächstes ist ja die Drehzahl und die Spannung über die Drehzahlkonstante geregelt wobei ich noch eine Untersetzung von 81:1 habe. Also n * i / kn = U

Wenn ich alles zusammensetzte komme ich auf die Gleichung n* 1035,56962 = Q. Das hab ich dann mit Hilfe des MUL-Bausteins auch programmiert und es klappt wie ich finde.
Wenn ich 10 eingebe dreht sich der Motor auch 10mal die Minute usw.

Jetzt wollte ich das Feedback was ich bekomme verarbeiten: Ich habe einmal IN2 als n-Monitor und IN3 als I-Monitor.
Hab auch hier eine Tabelle gemacht.
n=10 -> IN2=490
n=20 -> IN2=980 , das ganze hab ich wieder mit nem MUL gemacht und krieg jez auch als antwort die gleiche Drehzahl raus die ich eingebe.

Bei dem Moment war es nun bisschen komplizierter da ich hier nicht wie bei der Spannung einfach messen konnte. Hab mir da ein bisschen mit Mathe versucht zu helfen.
Ich hab ja die Kennliniensteigung sowie die Drehmomentkonstante gegebenen, damit konnte ich dann wieder mit einer Tabelle n eingeben und IN3 rauskriegen. Hat auch alles wunderbar funktioniert sodass ich
denke das mir jetzt der Strom in mNm angezeigt wird. Aber sicher kann man sich da nicht sein ;)

Nun hab ich aber ein Problem mit der berechnung der Position.
Hab die aktuelle Drezahl in eine Winkelgeschwindigkeit umgerechnet also mit 2pi multipliziert und wollte nun irgendwie die Winkelgeschwindigkeit mit der Zeit multiplizieren damit ich angezeigt bekommen wie weit sich der Motor gedreht hat (In dem Fall noch in rad).
Ganz so einfach war es aber nicht wie ich mir das gedacht hab und komm an dieser Stelle nicht weiter. Hab auch versucht das über den INTEGRAL Baustein zu lösen, krieg auch ne immer höher Steigende zahl raus aber kann mit der nichts anfangen da sich die Zahl doch sehr schnell im vierstelligen bereich bewegt und das nicht mit den langsamen Umdrehungen vereinbar ist.

Gibt es hierzu irgendeinen Rat wie ich das Problem lösen kann?

Dann soll ich noch etwas anderes klären: Wenn ich die Welle mit der Hand festhalte geht der Strom runter. Ich hab gedacht das liegt an I=U/R da ich ja damit n kleiner mache und somit auch U. Ist die begründung so korrekt?

Würde mich wie immer über eine Antwort freuen,

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo wee-lee, falls Du noch mit liest:

ich bin ziemlich sicher, dass Deine Steuerungshardware inzwischen hier bei mir steht und ich in Zukunft das Teil projektiere ;-) , bei der Komponentenbeschreibung vom Anfang und der Tatsache, dass Du von einer Uni gesprochen hast, scheint das eindeutig so zu sein. Kannst ja mal per PN Kontakt aufnehmen, falls Du magst.

Gruß aus SB

Jochen
 
Zurück
Oben