eigene CNC - Software

  • VB.NET

Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    eigene CNC - Software

    hi leute

    habe jetzt mal ganz etwas schräges vor.
    ich würde mir gerne eine eigene cnc software zur steuerung und so programmieren.

    hier etwas genauer: es kennt sicher jeder von euch eine cnc-maschine zur holzbearbeitung.
    (wenn es von bedeutung ist: auf die, die ich es abgesehen habe, wird über xilog3 gesteuert).


    nun meine frage: auf was genau muss ich achten? gibt es etwas spezielles? ist es mit vb überhaupt möglich?

    was auch noch erwähneswert wäre: auf einem computer würde dieses programm installiert werden, um das ganze so einfach als möglich zu erstellen. dann die datei (*.pgm Endung) auf einen pc weitergeben, der das programm dann mit seinem programm einliest und es dann wiederum an die cnc weitergibt.

    zuerst einmal würde ich gerne so einen "editor" bauen (welcher auch code-schnippsel enthalten soll).
    eine schnittstellenprogrammierung zur cnc würde ich erst in einer erweiterten, neuen version einbauen.


    also, wenn ihr mir hiermit weiterhelfen könntet, wäre es echt super.

    danke bereits im voraus für eure bemühungen.
    naja, dass kann ich erst sagen, wenn ich weis, an was ich mich alles halten muss und nach was ich mich richten muss.

    hättet ihr ideen oder vorschläge, wie man so etwas umsetzen kann.
    am besten wäre ja, wenn jemand hier im forum schon erfahrung damit hat.

    also, wäre echt super, wenn ihr mir weiterhelfen könnt.

    danke für eure bemühungen wieder einmal bereits im voraus. :thumbsup:
    Also nochmal zur Auflistung weil ich ein paar verständnis Probleme habe:

    Du möchtest einen Editor schreiben für eine CNC Maschine.

    Hier solltest du nur darauf achten das du den korrekten Syntax für die Steuerung einhälst.
    Du könntest auch einen allgemeinen Syntax verwenden und beim erzeugen der Scriptdatei für CNC Maschine das ganze korrekt konvertieren.
    was auch noch erwähneswert wäre: auf einem computer würde dieses programm installiert werden, um das ganze so einfach als möglich zu erstellen. dann die datei (*.pgm Endung) auf einen pc weitergeben, der das programm dann mit seinem programm einliest und es dann wiederum an die cnc weitergibt.
    Welches Programm wird installiert? Dein Editor?
    Welches Programm wird mit wessen Programm eingelesen? Deine Scriptdatei mit der original Software oder mit deinem Editor?
    Woher kommt die Dateiendung? Vorgegeben? Wenn ja sind das Plaintext Dateien oder Typisierte?

    Zur erweiterung auf direktsteuerung durch dein Programm:
    CNC-Eigenbau
    also ...

    zuerst einmal: ich so etwas vor (natürlich in einer viel verbesserten version):
    [sucht mal in google nach xilog3]
    das ist auch so ein programm zur programmierung und verarbeitung eines cnc-programmes.

    das dateiformat kommt von meinem jetztigen programm (xilog3). habe es mal erwähnt, da ich mir nicht sicher bin, ob die maschine nur dieses übersetzen und bearbeiten kann.

    bei der installation geht es um folgendes:
    man benötigt ja einen pc (der an die cnc-maschine angeschlossen ist) um das programm zu laden und in die maschine einzuspeisen. damit diese weis, was sie überhaupt machen muss.


    sorry, aber ich weis nicht, wie ich es am einfachsten erklären soll. würde euch bitten, mal ein bisschen zu googlen, damit es leichter verständlich ist, was ich meine. also vom editor zur cnc-maschine (der ganze ablauf dazwischen). auch eine werkzeugwahl usw. gehören dazu.


    hoffe dennoch, dass ihr mir weiterhelfen könnt.

    danke.
    Du darfst ruhig ins technische Detail gehen.
    ich bin gelernter Maschinenbauer also hab auch ne CNC Ausbildung bekommen ;)

    Aus unserem Bereich kenne ich nur die Steuersysteme von z.B. Siemens oder Heidenhain.
    Da wir aber immer die Software des Herstellers verwendet haben kann ich dir nicht sagen wie sich das auf diese Datein für die Maschine auswirkt.
    Denn auf den Maschinen konnten wir Klartext schreiben ;)

    Also wir das ganze nicht so einfach wie du dachtest.
    Du brauchst die Spezifikation des Dokumentformates.
    Wenn du das nicht bekommen kannst wirst du es wohl selber her raus finden müssen.

    Wie die Daten zur Maschine kommen ist dann noch eine andere Frage.
    Dort brauchst du zu erst die Infos ob eventuell noch ein Interface zwischen geschaltet wird oder direkt per z.B. serieller Schnittstelle übertragen wird.
    Dann brauchst du dort noch die Spezifikation des Kommunikationsprotokolls.

    Ich weiß nich wie das bei Holzverarbeitung ist aber ich denke das dort zur Programmierung die DIN 66025/ISO 6983 verwendet wird.
    Fang doch erstmal beim Editor an.
    Der dann Codesnippets hat nach diesem DIN/ISO Standard.
    Vielleich kriegst du ja auch ein Snippetmanager wie IntelliSense hin :)
    hey, danke

    so etwas nenne ich mal wirklich nützliche informationen.
    achja, das steuersystem, dass ich verwenden würde, wäre von SCM.

    dach ich bereits ein programm verwende (xilog3), wollte ich noch fragen, dass doch die ganzen wichtigen informationen bereits darin enthalten sein müssen.
    xilog3 ist relativ simple (1x *.exe und etwa 10x *.dll).
    kann mir einer sagen, wie ich eventuell *.dll dateien wieder decompelieren und diese dann ausgibig in meinem visual studio betrachten kann ?
    da sollten dann ja wohl alle wichtigen informationen stehen, oder irre ich mich da ?

    naja ... also, erstmal danke

    freue mich aber auf weitere antworten. würde es gerne umsetzen.

    danke

    chief_oipoch schrieb:

    kann mir einer sagen, wie ich eventuell *.dll dateien wieder decompelieren und diese dann ausgibig in meinem visual studio betrachten kann ?
    da sollten dann ja wohl alle wichtigen informationen stehen, oder irre ich mich da ?
    100% Strafbar...

    Bei Komerzieller Software ist jede Art von Reverse-Engineering strafbar (mit Diebstahl gleich zu setzten).

    Die einzige einigermaßen legale vorgehensweise ist das "entschlüsseln" der Dateien.
    Das heißt wenn du keine Klartextdatei hast brauchst du Anhaltspunkte nach denen du suchen kannst.
    Wie zum Beispiel Klartextinformationen die in der Datei vorkommen.

    Deswegen auch die Frage nach der Dateiform (typisiert oder nicht).
    So lang es kein DotNet Code ist wirst du dort eh nur Assambler rausholen können.
    Und ob du damit was Anfangen kannst ist dann deine Sache :D
    Wollte nurmal darauf hinweisen ;)

    Hast du solche eine Scriptdatei als Beispiel?
    Dann könnte man mal rein schauen. Am besten wäre es wenn man dazu die Klartext variante auch hätte.
    naja, ist mir mal so in den sinn gekommen.

    und wollte es gerne mal versuchen. nichts werden kann es immer.

    es wird zwar noch aufwendiger, aber ich würde es gerne allgemein gestallten - also, dass man bei allen steuerungsarten damit arbeiten kann.
    ist dessen überhaupt noch möglich ?

    ich glaube nämlich, das der funktionsumfang von vb jetzt dann allmälich den bach runter geht. dann muss eine andere sprache her.

    chief_oipoch schrieb:

    es wird zwar noch aufwendiger, aber ich würde es gerne allgemein gestallten - also, dass man bei allen steuerungsarten damit arbeiten kann.
    ist dessen überhaupt noch möglich ?

    Dann bau einen Editor der nur die Befehle nach DIN/ISO verwendet.
    Dann ist das möglich. Eventuell findest du noch eine Liste mit spezial Anweisungen für die verschiedenen Systeme (Heidenhain hat z.B. tolle Taschen funktionen)

    Das noch einen Simulator dazu und dann hat man schon was brauchbares ;)

    chief_oipoch schrieb:


    ich glaube nämlich, das der funktionsumfang von vb jetzt dann allmälich den bach runter geht. dann muss eine andere sprache her.


    Was meinst du damit?
    Das DotNet Framework bietet schon einiges an Funktionen.
    Ich entwickle mit VB nur nebenbei.
    Das meiste mache ich immer noch in Delphi.
    Wobei dort die Zukunftsaussichten auch nich so rosig sind. ;(

    Und CNC ist keine Programmiersprache sondern genaugenommen ein Script welches durch einen Interpreter läuft ;)
    hallo chief oipoch

    ich selber arbeite mit cnc maschinen (okuma, mazak, haas,..) also im metalbereich nicht holz

    die meisten maschinen ausser mazak arbeiten mit G codes

    ich weiss nicht wie die cnc holzbearbeitungs maschine arbeitet aber weil es eine cnc maschine ist nehm ich an auch mit g codes oder?

    eigentlich muesste es nicht schwer sein, du schreibst einfach die codes ein und speicherst als txt datei die dann das andere program einliest und an di maschine sendet

    du kannst so vereinfachern in dem du textbox nimmts und ne combobox oder auch buttons mit zeichnungen wie eine gerade, radius, loch, usw und sobald man auf ein button druckt erscheinen die moeglichen textbo in einem neuen fenster oder auch im selben wie du willst und dort gibst die x,z,y parameter ein

    also ungefeahr so

    button mit einer gerade wird gedrueck - in textboxs schreibst (linie von x=0. y=0. z=10. zu x=5. y=5. z=10.) und dann wird der g code in die richtextbox hingeschrieben automatisch also

    T0500 S600 M3 (Tool 5, spindle speed 600 rpm, M3 = uhrzeigersinn)
    G0 X0. Y0. Z10. (Go = rapid speed, parameter)
    G1 X5. Y5. Z10. F0.5 (G1 (speacial speed), parameters, 0,5 mm fortschritt)

    also wird tool 5 ausgewehalt und die spindle mit 600 rpm gedrecht in urzeigerzinn an punkt x0 y0 z10 geschieckt und dann mit einer Forward Speed von 0,5 mm bis zum punkt X5 Y5 Z10 bewegt.

    also ich wurde dir empfehlen mit den 4 W zu arbeiten also, WAS? WIE? WO? WOHIN?

    du musst es so einfach wie moeglich machen so dass man einfach nur ausweahlt was man machen will (linie, loch,...) wie es man machen will (geschwindigkeit, tool,...) wo es man machen will (parameter) und wohin die spindle laufen soll (ziel) und das gibt der benutzer ein und dein program wandelt es in ein g code dass dann einfach auf eine txt gespeichert wird und in die maschine transporiert wird

    viel glueck :)
    Schäm dich nicht "Zu fragen", schäm dich "Nicht zu wissen". ?(
    Dann musst du dich an die DIN 66025 halten.

    • G00 Punktsteuerverhalten
    • G01 Geradeninterpolation
    • G02 Kreisinterpolation im UZ
    • G03 Kreisinterpolation im GUZ
    • G04 Verweilzeit
    • G10 Unterprogramm-Anfang
    • G11 Unterprogramm-Ende
    • G12 Unterprogramm-Aufruf
    • G21 Fahrt zum Maschinen-Nullpunkt
    • G22 Fahrt z. Parkpos. (Werkstückwechsel)
    • G23 Fahrt zum Werkstück-Nullpunkt
    • G24 Fahrt z. Wechselpos. (Wzg.-wechsel)
    • G25 Fahrt zur Hilfsposition
    • G40 Löschen der Werkzeugkorrektur
    • G41 Werkzeugkorrektur "Links"
    • G42 Werkzeugkorrektur "Rechts"
    • G43 Werkzeugkorrektur "Bis"
    • G44 Werkzeugkorrektur "Über"
    • G70 Maßangaben in Inch
    • G71 Maßangaben in mm
    • G72 Werkstückkante X- ermitteln
    • G73 Werkstückkante X+ ermitteln
    • G74 Maschinen-Initialisierung
    • G75 Werkstückkante Y- ermitteln
    • G76 Werkstückkante Y+ ermitteln
    • G77 Lochmitte X anfahren
    • G78 Lochmitte Y anfahren
    • G79 Werkzeug einrichten
    • G90 Absolute Maßangaben
    • G91 Relative Maßangaben
    • G92 Istwert setzen
    Und:

    • M00 programmierter Halt
    • M02 Programmende mit Stillsetzen
    • M03 Spindel ein
    • M05 Spindel aus
    • M06 Werkzeugwechsel
    • M07 Kühlung ein
    • M09 Kühlung aus
    • M13 Kühlung ein, Spindel ein
    • M16 Eingang 1 auswerten
    • M17 Eingang 2 auswerten
    • M18 Eingang 3 auswerten
    • M19 Eingang 4 auswerten
    • M29 Endlosmodus
    • M30 Programmende
    • M41 Motorstrom absenken
    • M42 Motorstrom voll
    • M60 Werkstückwechsel
    • M61 Ausgang 1 Ein
    • M62 bis M67 sind für Ausgang 2 bis 7 Ein
    • M68 Ausgang 8 Ein
    • M69 Alle 8 Ausgänge Ein
    • M71 Ausgang 1 Aus
    • M72 bis M77 sind für Ausgang 2 bis 7 Aus
    • M78 Ausgang 8 Aus
    • M79 Alle 8 Ausgänge Aus
    Bin mir nicht sicher ob die wirklich aktuell is die Tabelle weil ich grad zu faul bin mein Tabellenbuch zu suchen ^^

    Wie das ganze zur Maschine kommt ist so ne Sache.
    Es kommt darauf an ob die Maschine solche Klartextdateien an nimmt.
    Und dann noch auf die Art der Datenübertragung.
    Ich kenns aus der Lehre noch so das die Programmdaten per Karte (ähnlich wie CF) zwischen Rechner und Maschine getauscht wurden.
    Die direkt anbindung gabs erst kurz bevor ich gegangen bin ^^