Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Theoretisch möglich schon, aber das sieht nach einer ziemlichen Sauerei aus..
Kernelmodule (Treiber) sind entweder auf kernel.org oder es hat meist einen verdammt guten Grund, warum sie das eben nicht sind
Ich bin mir allerdings ziemlich sicher, das man den Treiber garnicht braucht, TCP/UDP dort und socat tuts vermutlich genauso, was soll denn an die Moxa dran?
Dann mach ich mal ein Beispiel..
Linknx (1.28 ) aus dem CVS kann jetzt direkt über eine serielle Schnittstelle angebunden werden.
Die ttyS0 und ttyS1 benötige ich für was anderes.
Die KNX Anbindung läuft über LAN ( Siemens IP Schnittstelle ).
Wenn das einbinden der Moxa Schnittstelle ein "großer" Aufwand ist,
versuche ich es mal mit USB ( habe ich noch nicht getestet ).
Ich bin für Eure Unterstüzung dankbar. Um Swiss KWL-Ansteuerungs-Plugin zum Laufen zu bringen, habe ich günstig eine MOXA NPort 5410 ( Datasheets for NPort 5410 ) ersteigert. Diese hängt mit der fixen IP-Adresse 10.0.0.227 im Netz. Über Windows kann das Lüftungsgerät, das an einem der vier RS-232 Ports hängt ansteuern.
Leider habe ich es noch nicht geschnallt, wie ich das Wiregate davon überzeugen kann, mit den MOXA-Ports zu kommunizieren, zumal Makki eher davon abrät, die LINUX-Treiber zu installieren.
Ich bin für jede Hilfestellung dankbar.
Beste Grüsse
Diego
Die "Realport"-Treiber braucht man nicht!
Man stelle sich die Moxa mal nur wie einen etwas "schöner einzurichtenden" socat+RS232-USB vor, was anderes passiert da auch nicht: serielle Daten<->TCP/UDP
(was übrigens sowohl mit WG als auch IP-Extender und genanntem auch geht..)
Ich kenne nun die Parameter der KWL nicht, aber das sollte easy sein (und ich habe aus Historie/Faulheit auch noch ne 8port-Moxa daliegen )
Nun geht das KWL-Plugin aber auf den seriellen Port direkt (wovon ich u.a. deswegen seit jeher abrate), nicht via TCP/UDP; Problem.. Sowas ist via LAN - OS-unabhängig - so ähnlich wie Lotto, man hat Chancen, aber keine grossen
Plugin umstellen auf IP, geht dann fast immer und überall.
Mal am Beispiel der Russound anbei, die Port-Settings wären natürlich anzupassen aber im Kern ists immer dasselbe.. Selber mit dem seriellen Port zu reden ist eklige Blutsuppe..
Einmal mehr ganz herzlichen Dank für Deine rasche Antwort. Bevor ich versuche das Plugin anzupassen, möchte ich sicherstellen, dass die Einstellungen Wiregate seitig korrekt sind. Leider sind Schnittstellendefinitionen für mich böhmische Dörfer.
Hättest Du die Freundlichkeit, kurz zu prüfen, ob meine Wiregate-Einstellungen Sinn machen? Der Moxa-Nport hat die IP-Adresse 10.0.0.227.
Das "broadcast" stört mich da beim zweiten lesen gerade, muss nicht stören aber ist ja keiner und soll auch keiner sein.
Nebenbei (auch nicht kriegsentscheidend) aber pot. Problemquelle: immer unterschiedliche UDP-Ports für Versand&Empfang verwenden. Also nicht beide 16011 - ohne das jetzt gross auszuführen (weil technisch ist es nicht falsch): man spart sich phänomene..
Leider bringe ich die Sache nicht auf die Reihe und bin Euch deshalb für jegliche Hilfe dankbar:
Das erste Bild zeigt die Einstellungen auf der Moxa, die erste Destination IP Adresse ist das Wiregate, die zweite eine Windows-Workstation, auf der ich ein UDP-Programm parallel laufen lasse (und wo ich erfolgreich die Befehle absetzen kann). An der Moxa hängt eine KWL, versuchsweise verändere ich die Lüftungsstufen (was - wie gesagt - von Windows her klappt).
Möglicherweise sind meine Socketeinstellungen auf dem Wiregate nicht vernüftig.
Ich arbeite mit folgendem Plugin:
Code:
my $socknum = 92; # Eindeutige Nummer des Sockets
my $send_ip = "localhost"; # Sendeport (UDP, siehe Socket-Einstellungen)
my $send_port = "16010"; # Sendeport (UDP, siehe Socket-Einstellungen)
my $recv_ip = "localhost"; # Empfangsport (UDP, siehe Socket-Einstellungen)
my $recv_port = "16011"; # Empfangsport (UDP, siehe Socket-Einstellungen)
my $command = pack("H*","07F0009901044B070F");
my $reciv= '';
my $ack = pack("H*","07F3");
#***** Ende Definitionen***************
if (!$socket[$socknum]) { # socket erstellen
$socket[$socknum] = IO::Socket::INET->new(LocalPort => $recv_port,
Proto => "udp",
LocalAddr => $recv_ip,
PeerPort => $send_port,
PeerAddr => $send_ip,
ReuseAddr => 1
)
or return ("open of $recv_ip : $recv_port failed: $!");
$socksel->add($socket[$socknum]); # add socket to select
$plugin_socket_subscribe{$socket[$socknum]} = $plugname; # subscribe plugin
return "opened Socket $socknum";
}
plugin_log($plugname, $command);
my $commandhex = $command;
$commandhex =~ s/(.)/sprintf("0x%x ",ord($1))/eg;
plugin_log($plugname,'transmit : ' . $commandhex); #Zeigt im Pluginlog das fertige Datenpaket, dass ?bertragen wird
syswrite($socket[$socknum], $command);
return;
Zum Ausführen speichere ich das Plugin ab. In der Plugin-Log-Datei erscheinen folgende Einträge (obwohl ich das Plugin nur einmal gespeichert habe):
Irgendwas passt da nicht zusammen:
localhost ist nicht gut (ausser es ist ein socat auf eben jenem localhost)
Müsste ich jetzt testen aber die IP kann AFAIK einfach weglassen, dann sollte das werden, $send_ip muss die der Moxa sein und $send_port dann der 16011
(nicht localhost/WG..), der socat (Socket-Eintrag) ist hier überflüssig..
Einmal mehr bist Du eine Wucht! Da übt man ein Wochenende lange immer wieder und kommt auf keinen grünen Zweig und mit Deiner Hilfe schafft man es innert einer Minute:
Für das Protokoll: Ich habe folgendes gemacht:
1.) Die Socketverbindung deaktiviert.
2.) im Plugin die ersten Zeilen wie folgt angepasst:
Code:
my $send_ip = "10.0.0.227"; # Sendeport (UDP, siehe Socket-Einstellungen)
my $send_port = "16012"; # Sendeport (UDP, siehe Socket-Einstellungen)
my $recv_ip = "10.0.1.10"; # Empfangsport (UDP, siehe Socket-Einstellungen)
my $recv_port = "16011"; # Empfangsport (UDP, siehe Socket-Einstellungen)
Damit kann ich nun den Befehl aus dem Plugin senden und die KWL reagiert wie gewünscht; der einzige Schöheitsfehler ist die Tatsache, dass das Plugin statt einmal durchzulaufen in eine Schlaufe fällt und sich laufend wiederholt. Das ist aber ein Schöheitsfehler, den ich wohl sehr rasch beheben kann.
Dann hats ja was gebracht das so ca. anno 1994 die TCP/IP-Schinken von Netware 3.12 sich am Strand von Bibione fest im Hirn eingebrannt haben (die ich bis heute jedem Azubi nahelege, weil da war die IPv4-Welt noch "einfach" und es hat sich seither eigentlich wenig geändert, nur die Erklärung wurde immer komplexer..)
TCP/IP ist wirklich wesentlich einfacher als mitteleuropäisches Steuerrecht (eines Landes!), wenn man das mal innehat, läuft das ganz alleine
Und vor allem: das ändert sich nicht jedes Jahr oder spätestens bei einem Regierungswechsel
(Sorry, Ich musste gerade an jenen Urlaub in Bibione denken und an Lalula, der mir inital versuchte Subnetzmasken zu erklären - das hatte dann noch 1-2 Jahre gedauert aber dann wars das auch, bisschen Bits zählen, in Bytes umrechnen, fertig..)
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar