INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

2xSchrittmotor und 2x SMCI33-2



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

25.09.2018, 14:55
Beitrag #11

s-vdobre Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Jun 2018

2014
2017
DE_EN



RE: 2xSchrittmotor und 2x SMCI33-2
Hi,
Sorry dass ich gerade nicht alle deine Fragen beantworten kann aber ich kann den Rechner mit LabVIEW nur in bestimmte Zeiten benutzen. Deshalb Versuche ich direkt auf das Wesentliche zu gehe.

Also so weit habe ich es geschafft. Wie soll ich 'alle anderen commands' definieren um alle Befehle nach einander in der Steuerung zu schreiben?


Angehängte Datei(en)
14.0 .vi  Test_Motor1.vi (Größe: 14,71 KB / Downloads: 188)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.09.2018, 15:19
Beitrag #12

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2xSchrittmotor und 2x SMCI33-2
Hallo s-vdobre,

Zitat:Also so weit habe ich es geschafft. Wie soll ich 'alle anderen commands' definieren um alle Befehle nach einander in der Steuerung zu schreiben?
Ich weiß ja nicht, welche "anderen Befehle" du noch benötigst - aber wenn du noch mehr senden willst, musst du ja nur das Stringarray vergrößern…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2018, 15:56
Beitrag #13

s-vdobre Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Jun 2018

2014
2017
DE_EN



RE: 2xSchrittmotor und 2x SMCI33-2
Und wenn ich es erweitere kommt so was vor...


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2018, 19:21
Beitrag #14

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2xSchrittmotor und 2x SMCI33-2
Hallo s-vdobre,

Zitat:Und wenn ich es erweitere kommt so was vor...
Warum machst du auch aus dem 1D-Array (eine Liste/ein Vektor mit Befehlen) ein 3D-Array? Was soll das bringen?
Mit erweitern meinte ich: einfach das Array nach unten aufziehen, sodass mehr Elemente sichtbar sind…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.09.2018, 09:41
Beitrag #15

s-vdobre Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Jun 2018

2014
2017
DE_EN



RE: 2xSchrittmotor und 2x SMCI33-2
Hallo Gerd,

ich bin ganz von vorne angefangen und deine erste Tipp gefolgten und zwar ein Zustandsautomat zu erstellen.
Den habe ich auch gemacht und funktioniert teilweise. Also es gibt noch ein paar Sachen die ich noch nicht hinbekommen kann und die beschreibe ich in folgenden Text.

Wie soll das Programm funktionieren:
1. Initialisierung von X und Z Achsen:
Der Schrittmotor fährt den Wagen nach links bis zum Endschalter. Wenn der Endschalter gedrückt ist hört Case Init X1/2 auf und springt zum Init X2/2. Im Init X2/2 wird der den Wagen in Gegenrichtung also nach rechts bewegt, um einen Reset der Positionsfehler des Motors zu erreichen. Also jetzt ist der Endschalter nicht mehr gedrückt und X Achse ist auf 0 positioniert.
Selbe Vorgang passiert für Z Achse auch.

2. Abtasten XZ:
Richtung und Schrittweite "Abtaste X" = Richtung und Schrittweite "Abtaste X2"= s47, links(d0)
Richtung "Abtaste Z - links"= links(d0)
Richtung "Abtaste Z - rechts"= rechts(d1)------- Schrittweite für beide = s47

2.1 Funktionsweise:
a) "Abtaste X" bewegt sich um eine Schritt und eine Wiederholung--> "Abtaste Z - links"
b)"Abtaste Z - links", macht 150 Wiederholungen(W150)--> "Abtaste X2"
c) "Abtaste X" bewegt sich um eine Schritt und eine Wiederholung--> "Abtaste Z - rechts"
d) "Abtaste Z - rechts" = "Abtaste Z - links" aber Richtungsumkehr--> "Abtaste X"

Ich habe bei "Abtaste X" und "Abtaste X2" einen Timer von 10000ms eingestellt damit der Motor erst mit "Abtaste Z-links/rechts" fertig ist und dann mit "Abtaste X/X2" anfängt ansonsten überschreibt die
Steuerung die Befehle und X startet bevor Z fertig ist.

Meine Ziel:
1.Wenn Punkt 2 ausgeführt wird und einer von der Endschalter gedrückt wird muss das Programm sofort beendet werden. Weil in meinen Fall endet der Case aber der nächste wird gleich gestartet. Einen Befehl mit dem die Steuerung zurück gibt, dass der Schalter gedrückt ist, finde ich nicht. Also wie kann ich das realisieren?

2. Bei drücken auf "Abbrechen" oder "Stop" stop soll das Programm auch beendet werden.
3. Punkt 2 "Abtasten XZ" soll 50 mal durchlaufen und dann aufhören. Hier habe ich mit Schleifen usw probiert und trotzdem komme ich nicht zum Erfolg.

Was werden Sie mich raten um meine Ziele erfüllen zu können?
Vielen Dank!

P.S. Entschuldigung für die Schreib- und Grammatikfehler, ich bin Austauschstudent und ich schreibe nur meine Bachelor-arbeit in DE.


Angehängte Datei(en)
14.0 .vi  Nanotec-Open-Visa.vi (Größe: 20,46 KB / Downloads: 177)

14.0 .vi  Nanotec-write.vi (Größe: 18,31 KB / Downloads: 171)

14.0 .ctl  States 1_1.ctl (Größe: 4,34 KB / Downloads: 155)

14.0 .vi  Zustandsautomat.vi (Größe: 42,29 KB / Downloads: 164)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.09.2018, 12:01
Beitrag #16

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2xSchrittmotor und 2x SMCI33-2
Hallo s-vdobre,

Zitat:1.Wenn Punkt 2 ausgeführt wird und einer von der Endschalter gedrückt wird muss das Programm sofort beendet werden. Weil in meinen Fall endet der Case aber der nächste wird gleich gestartet. Einen Befehl mit dem die Steuerung zurück gibt, dass der Schalter gedrückt ist, finde ich nicht. Also wie kann ich das realisieren?
Wenn dein Programm auf diesen Endschalter reagieren soll, dann musst du ihn auch abfragen.
Entweder deine Motorsteuerung bietet dir eine Möglichkeit, diesen Status abzufragen - oder du musst dir mit einer eigenen DAQ-Hardware helfen…

Zitat:2. Bei drücken auf "Abbrechen" oder "Stop" stop soll das Programm auch beendet werden.
Dann musst du diese Buttons auch in jedem State abfragen.
Oder du stellst sicher, dass die einzelnen States nur sehr kurz dauern, dann kannst du die Buttons natürlich nach jedem State abfragen…

Zitat:3. Punkt 2 "Abtasten XZ" soll 50 mal durchlaufen und dann aufhören. Hier habe ich mit Schleifen usw probiert und trotzdem komme ich nicht zum Erfolg.
Dann musst du dir ein zusätzliches Schieberegister anlegen, in dem dann ein Zähler verwaltet wird.
Wenn der Button "Abtasten XZ" geklickt wird, wird der Zähler auf 50 gesetzt. Jeder Aufruf von "Abtaste X" dekrementiert diesen Zähler. Wenn der Zähler "Null" erreicht, wird der erneute Aufruf von "Abtaste X" abgebrochen…
Das sind alles Bedingungen, mit denen du entscheidest, welcher State als nächstes aufgerufen wird. Man kann durchaus mehrere Bedingungen abfragen und daraus Entscheidungen generieren…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.09.2018, 17:26
Beitrag #17

s-vdobre Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Jun 2018

2014
2017
DE_EN



RE: 2xSchrittmotor und 2x SMCI33-2
Hi Gerd,

Erstens vielen Dank für deine Antwort und Tipps!

Für die erste Frage mit den Endschalter habe ich eine HW-Lösung gefunden

Für die zweite habe ich meine Teil-Lösung angehängt "Zustandsautomat_stop". Das Problem hier ist wenn ich der Motor Stoppen will , muss ich das Kommando "S" schicken und nach meine Versuche kann die Steuerung das nicht leisten. Also wenn der Motor schon gestartet ist und ich den Befehl S eingebe, ist das Programm schon bei Motor2. Zum Beispiel ich bin bei "Abtaste X", der Motor startet und dann sofort werden die Befehle an Motor2 also Vorgang "Abtaste Z - links" gestartet und keine Befehle mehr zum Motor1 kommen. Solche können gesendet werden,erst nach den die Befehle für Motor2 gesendet worden sind. Deshalb sehe ich keine Möglichkeit wie man das realisieren kann.

Für die dritte Frage finde ich keine Lösung....
Ich habe es so versucht: Schieberegister für die for-Schleife "Abtaste X" erstellt, dann ein Indikator am Ausgangsregister und ich möchte dieses Wert wieder am Anfang eingeben. Und dann es vergleichen (z.B. bei 50 Durchgänge: Eingangswert > 50 T/F?) und dann weiter auswählen welche Case ausgeführt wird. So einen vergleich wie in den "Zustandsautomat_stop".
Weil so wie du es beschrieben hast, verstehe ich gar nicht von wo ich anfangen soll


Angehängte Datei(en)
16.0 .vi  Zustandsautomat_stop.vi (Größe: 44,66 KB / Downloads: 173)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2018, 17:48 (Dieser Beitrag wurde zuletzt bearbeitet: 30.09.2018 17:50 von GerdW.)
Beitrag #18

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2xSchrittmotor und 2x SMCI33-2
Hallo s-vdobre,

Zitat:Zum Beispiel ich bin bei "Abtaste X", der Motor startet und dann sofort werden die Befehle an Motor2 also Vorgang "Abtaste Z - links" gestartet und keine Befehle mehr zum Motor1 kommen. Solche können gesendet werden,erst nach den die Befehle für Motor2 gesendet worden sind. Deshalb sehe ich keine Möglichkeit wie man das realisieren kann.
Das ist so, weil DU es so programmiert hast!
Niemand schreibt dir vor, wie du von "Abtaste X" zu "Abtaste Z" kommst: du musst nicht direkt in den nächsten State wechseln!
Wenn man wichtige Bedingungen prüfen will, kann man dies bei JEDEM Statewechsel tun, z.B. nach der Case-Struktur, bevor man die nächste Iteration startet…
Man kann auch, mit entsprechend vielen Bedingungen, mehr als nur 2 mögliche States als nächsten wählen.

Tipp:
Einfach mal ein Blatt Papier nehmen und einen Plan zeichnen!

Zitat:Für die dritte Frage finde ich keine Lösung....
Ich habe es so versucht: Schieberegister für die for-Schleife "Abtaste X" erstellt, dann ein Indikator am Ausgangsregister und ich möchte dieses Wert wieder am Anfang eingeben. Und dann es vergleichen (z.B. bei 50 Durchgänge: Eingangswert > 50 T/F?) und dann weiter auswählen welche Case ausgeführt wird. So einen vergleich wie in den "Zustandsautomat_stop".
Wenn du das Schieberegister an der äußeren While-Loop anlegst, dann hast du IN JEDEM State Zugriff auf die darin enthaltenen Daten.

Tipp:
Einen State durchverdrahten, dann auf den Ausgangstunnel einen Rechtsklick und diesen Tunnel als "Linked Tunnel" festlegen: es werden automatisch auch alle anderen States durchverdrahtet. Dann nur noch die "interessanten" States, die diesen Draht mit seinen Daten benötigen, editieren…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.11.2018, 18:48
Beitrag #19

s-vdobre Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Jun 2018

2014
2017
DE_EN



RE: 2xSchrittmotor und 2x SMCI33-2
Hallo GerdW, ich habe für eine Weile das Programm gelassen...

Jetzt bin ich wieder dran und ich habe die gewünschte Funktionalität erreicht. Es ist nur noch eine Sache und zwar, wenn ich den STOP-Button drücke, bleibt er auch gedrückt bis ich das Programm komplett neustarte. Ich meine Stop und wieder Run. Ich habe es wie hier( https://knowledge.ni.com/KnowledgeArticl...AU&l=de-DE ) beschrieben ist probiert. Leider wurden alle Variablen zurückgesetzt und das ist ungünstig für mich, weil die Variable "Anzahl abgetastete SChichten" soll nicht restarted werden.
Hätten Sie einen Vorschlag für mich ?


Angehängte Datei(en)
16.0 .vi  Statemachine_1.vi (Größe: 138,53 KB / Downloads: 169)

16.0 .ctl  States 1_1.ctl (Größe: 4,39 KB / Downloads: 153)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.11.2018, 20:40
Beitrag #20

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: 2xSchrittmotor und 2x SMCI33-2
Du liest schon aus einer lokalen Variable des Stop-Buttons. Da liegt es doch nahe, den Button über das Setzen der lokalen Variable wieder auf FALSE zu setzen:

   

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Nanotec SMCI33-1 USB Ansteuerung Programmierknecht 2 7.102 03.06.2013 14:10
Letzter Beitrag: Programmierknecht
  Ansteuern von zwei SMCI33 tritrap 5 7.421 11.12.2009 19:54
Letzter Beitrag: M4Z
  Schrittmotorsteuerung SMCI33 raff99 12 15.884 27.11.2009 14:18
Letzter Beitrag: Mike###

Gehe zu: