AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ablauf für Fräsmaschine programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ablauf für Fräsmaschine programmieren

Ein Thema von 100nF · begonnen am 26. Sep 2008 · letzter Beitrag vom 21. Nov 2008
 
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#11

Re: Ablauf für Fräsmaschine programmieren

  Alt 29. Sep 2008, 19:25
hmm..also ich hab das bisher völlig anders gemacht würde ich sagen. Auf diese Weise wäre ein "zu langsamer" Mikrocontroller eigentlich gar nicht schlimm, ein Fräsvorgang würde einfach länger dauern aber funktionieren würde es.

Ich poste mal den relevanten Teil meines Basic-Programms, falls du willst kannst du es ja mal anschauen.
Code:
Sub OneStep(Achse As Byte, Richtung As Byte) 'Führt einfach nur einen Schritt bei einer Achse in die gewählte Richtung aus
    Select Case Achse
      Case 1 'X-Achse, F.0
        Port_WriteBit(43, Richtung) 'Richtung angeben
        Port_WriteBit(40, 1)
       ' AbsDelay(ISpeed*SpeedFactor)        ' Verzögerung in ms
        Port_WriteBit(40, 0)
        If Richtung=0 Then
          PosX=PosX-1
        Else
          PosX=PosX+1
        End If

      Case 2 'Y-Achse F.1
        Port_WriteBit(44, Richtung) 'Richtung angeben
        Port_WriteBit(51, 0)
       ' AbsDelay(ISpeed*SpeedFactor)        ' Verzögerung in ms
        Port_WriteBit(51, 1)
        If Richtung=0 Then
          PosY=PosY-1
        Else
          PosY=PosY+1
        End If

      Case 3 'Z-Achse F.2
        Port_WriteBit(45, Richtung) 'Richtung angeben
        Port_WriteBit(52, 0)
      ' AbsDelay(ISpeed*SpeedFactor)        ' Verzögerung in ms
        Port_WriteBit(52, 1)
        If Richtung=0 Then
          PosZ=PosZ-1
        Else
          PosZ=PosZ+1
        End If

      End Case
End Sub


In der Main-Prozedur:
Do While True
    GoPosX="    "
    For i=0 To 4
      GoPosX(i)=Serial_Read(0)
    Next

    GoPosY="    "
    For i=0 To 4
      GoPosY(i)=Serial_Read(0)
    Next

    GoPosZ="    "
    For i=0 To 4
      GoPosZ(i)=Serial_Read(0)
    Next

    Speed="    "
    For i=0 To 4
      Speed(i)=Serial_Read(0)
    Next

    Text="Fahre auf Position...       "
    Serial_WriteText(0, Text)
    Serial_Write(0, LF)
    Serial_Write(0, CR)

    InZahlenWandeln()

    GoToPos() ' hier wird OneStep(...) mehrmals aufgerufen

    Text="Erwarte Befehl              "
    Serial_WriteText(0, Text)
    Serial_Write(0, LF)
    Serial_Write(0, CR)
  End While
Die Prozedur GoToPos ist nur sehr schwer verständlich wenn ich den Code poste Deshalb eine kurze Erklärung:
Istposition und Sollposition von X, Y und Z werden verglichen. OneStep wird dann mit jeder Achse so häufig aufgerufen, bis die Fräse sich in der Sollposition befinden.
Bsp: Xist, Yist, Zist = 0; Xsoll = 100, Ysoll = 50 und Zsoll=25;
--> OneStep(X) wird 100 mal aufgerufen, Jedes zweite mal wird auch OneStep(Y) und jedes vierte mal auch OneStep(Z) aufgerufen.

Zu deiner Frage noch: Anfangs konnte ich das Teil so schnell laufen lassen bis es Schrittverluste gab. Dann hab ich das Programm ein bisschen abgeändert, nun gibts (höchstwahrscheinlich sehr knapp) keine Schrittverluste mehr. Also mit der maximalen Geschwindigkeit bin ich eigentlich ganz zufrieden, ich glaub nicht dass der Schrittmotor noch schneller laufen könnte.

Mit Interrupt hab ich mich noch nicht auseinandergesetzt, dohc ich habe befürchtet dass dies für eine saubere Lösung notwendig ist


Da hab ich wohl einiges zu tun um es so ähnlich hinzukriegen wie du
Naja wenigstens wird mir so nicht langweilig^^

mfg
Urban

EDIT:
was ich schon lange fragen wollte, wie greifst du im Delphi-Programm auf die RS232 zu? Benutzt du eine Komponente?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz