Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:udp:overview

Linux CNC Daten -> Heimnetz

zwei kurze Scripte, ein Python Programm und das zugehörige HAL File, senden wichtige Maschinendaten ins lokale Netzwerk.

Das ist die Basis für alle hier vorgestellten Projekte, welche diese Daten im Netzwerk empfangen und dann entsprechend verarbeiten.

Viele Projekte sind damit möglich, wie:

  • CNC Ampel
  • TFT-Display für z.B. Handrad
  • Webseite zur Darstellung der Maschinendaten im Browser (PC, Handy usw)

Python Programm

ein kleines Python Programm stellt LinuxCNC-Pins zur Verfügung. Diese können mit Signalen verknüpft werden.
Diese Signale werden vom Python Programm via UDP zu den externen Geräten übertragen und dort angezeigt.

ext_udp.py.zip

Das Python Programm kopiert man in einen beliebigen Ordner. Damit das Python Programm beim Start von LinuxCNC geladen wird, muss folgender Eintrag im HAL File gemacht werden:

loadusr ~/linuxcnc/myPython/ext_UDP.py

Der Pfad muss natürlich auf den tatsächlichen Pfad geändert werden.

HAL Verknüpfungen

das Python Programm bietet einige PINs an, welche mit Daten beschickt werden müssen:

Dazu legt man ein HAL File an mit folgendem Inhalt an:

# send machine data to ext_UDP PINs
# XYZA-Position, absolute and relative (G54)
net km_xposabs halui.axis.x.pos-commanded => ext_UDP.in_x_abs
net km_yposabs halui.axis.y.pos-commanded => ext_UDP.in_y_abs
.... siehe Datei:

ext_udp.hal.zip

Diese neue HAL Datei muss natürlich im ini File angegeben werden damit sie geladen wird.

[HAL]\\
HALFILE = ext_UDP.hal

Hier werden einfach diverse Maschinen-Pins and die Pins des Pythonprogramm verknüpft. Ein paar davon sind speziell von meiner Maschine und können bei anderen Maschinen evt. andere Namen haben.

Funktionsprüfung

mit einem Netzwerkmonitor (am besten wireshark) beobachtet man den Nachrichtenverkehr im Heimnetz.

Sobald LinuxCNC gestartet wird, werden alle 250ms eine UDP Nachricht mit den Maschinendaten zu sehen sein. Diese ist als Broadcast Nachricht an alle adressiert, somit muss man sich um IP Adressen keine Gedanken machen und kann auch mehrere Zusatzgeräte (Ampeln usw) gleichzeitig betreiben. Wer lieber eine feste IP für seine externen Geräte benutzen will, kann im Pythonprogramm natürlich auch eine feste IP eintragen, oder auch an mehrere IPs senden.

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
de/udp/overview.txt · Zuletzt geändert: 2022/01/14 13:58 (Externe Bearbeitung)

Seiten-Werkzeuge