HS485 Scripte von RWN

Hallo RWN,
habe deine Scriptsammlung mit IPS 2.3 getestet.
Nach etwas Anlaufschwierigkeiten (die Datenauswertung.ips.php hat das Anlegen der Kategorie/Variablen etc.verweigert.) läuft es und ich kann meine HS485S Aktoren schalten.

Nun würde ich gerne die Eingänge der HS_S oder IO4_UP abfragen- stehe da aber voll auf dem Schlauch.
Laut Logfile kommen Daten auf Tastendruck an - aber was dann?

Als ich die Aktoren ausgelöst hatte, wurden die Module und Linkvars erstellt.
Das passiert bei den Inputs nicht.

Hast Du oder jemand einen Rat?

Gruß,
kpiep

Nun würde ich gerne die Eingänge der HS_S oder IO4_UP abfragen

Dafür müsstest Du dir ein Script machen, welches deine Eingänge ständig abfragt. Ob Du damit allerdings glücklich wirst, wage ich zu bezweifeln.

In der Datenauswertung ist ja ein Beispiel vom IO127 mit 2 Eingängen drinnen. Das wertet aber nur aus, wenn ein Eingang betätigt wurde.

Habe mir die Auswertung für die 2 IO127 Eingänge angesehen.
Soweit ich das vestehe werden IO4_UP Eingänge auch berücksichtigt:


     // IO127-Module anlegen
        if($IO127Key || $IO4Key)
        {
        ......
 

Wie kann ich das auf die HS_S Eingänge umbiegen bzw. um diese ergänzen?

Gruß,
kpiep

HS_S steht doch auch drinnen.

$eingangNr = $Event.$Taste;
            if($eingangNr == 0x4B . $HSSAktor['Aktor 1'])
            {
               sendFrame("\x00\x00\x10\x98\x98\x00\x00\x00\x00\x04\x53\x00");
            }
            if($eingangNr == 0x4B . $HSSAktor['Aktor 2'])
            {
               sendFrame("\x00\x00\x10\x98\x98\x00\x00\x00\x00\x04\x53\x01");
            }

Sind das nicht die Ausgänge (Aktor) ?
Ich würde gerne die Eingänge des HS_S verwenden.
Man kann die ja von den Ausgängen isolieren, sprich unabhängig machen.

Ich kann nicht beurteilen, ob die Eingangsfunktionalität sowohl HS_S als auch IO4_UP „Eingang“ in deine Scripte gefunden haben.
Falls ja, passiert zu mindest nix auf Tastendruck.
Ausgenommen den Logfile-Eintrag…

Vielleicht habe ich da ja noch ein Verständnisproblem/Bedienungsfehler.
Müssen denn auch für die Eingänge Linkvars und Module angelegt werden?
Und eine Var für den Eingang fehlt ja auch…

Gruß,
kpiep

Die Eingänge sind 0x00 und 0x01 vom HS_S vom IO4 musst Du selber raussuchen.

Müssen denn auch für die Eingänge Linkvars und Module angelegt werden?

Wenn Du das haben willst, ja.

Und eine Var für den Eingang fehlt ja auch…

???

Hallo zusammen,
wollt mich mal an die Umstellung meiner HS485 Aktoren machen und die Skripte verwenden.
Arbeitet noch jemand damit, hat jemand noch Verbesserungen eingebracht?

mfg
Thomas

Hallo zusammen,
vielleicht etwas OffTopic:

ich möchte den HS485PCI Adapter an einem kleinen Linux System verwenden und den Bus per virtual com port auf dem (virtuellen) Ip Symcon Server einbinden.

Der FTDI Adapter wird korrekt erkannt und ist unter (Arch-)Linux unter /dev/ttyUSB0 verfügbar:

[ 17.767738] usbserial: USB Serial Driver core
[ 17.791069] USB Serial support registered for FTDI USB Serial Device
[ 17.791364] ftdi_sio 1-1.4:1.0: FTDI USB Serial Device converter detected
[ 17.794700] usb 1-1.4: Detected FT8U232AM
[ 17.794715] usb 1-1.4: Number of endpoints 2
[ 17.794725] usb 1-1.4: Endpoint 1 MaxPacketSize 64
[ 17.794735] usb 1-1.4: Endpoint 2 MaxPacketSize 64
[ 17.794744] usb 1-1.4: Setting MaxPacketSize 64
[ 17.796204] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0
[ 17.797348] usbcore: registered new interface driver ftdi_sio
[ 17.797362] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver

mit stty habe ich den seriellen Port eingestellt:

stty -a -F /dev/ttyUSB0
speed 19200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^H; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 100; time = 2;
-parenb -parodd cs8 -hupcl -cstopb cread clocal crtscts
-ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0
-isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

Nun zu meinen Fragen: Auf der Leitung sehe ich viele Daten obwohl nichts geschaltet wird . Ist das normal?

[root@alarm ~]# cat /dev/ttyUSB0 |hexdump
0000000 ffff ffff ffff 00ff ffff ffff ffff 00ff
0000010 ffff ffff ff00 00ff ffff ffff ffff ffff
0000020 00ff 00ff 00ff ffff 00ff ffff ffff ff00
0000030 00ff ffff ff00 00ff 00ff 00ff ffff ff00
0000040 ffff ffff 00ff ffff ff00 00ff ffff ffff
0000050 ffff 00ff ffff 00ff ffff ffff ffff ffff
0000060 ff00 ffff ffff ffff ffff ffff ff00 ffff
0000070 ffff ffff ffff ffff ffff 00ff ffff ffff
0000080 ffff ffff ffff ffff 00ff ffff ffff ffff

Bei Betätigung eines Schalters gibt es zwar Änderungen aber ich konnte noch kein gültiges Telegramm erkennen (oder stimmt alles?).

00002d0 ffff 00ff ffff 00ff ffff ff00 ff00 43ff
00002e0 312d 09aa 74fe c02b 0b60 f7e4 f0ff 2d79
00002f0 49a0 f500 f9a5 ffff 00ff 00ff ffff ffff
0000300 ffff ff00 ff00 ffff ffff ff00 00ff ffff
0000310 ffff ffff 0dfd ff89 fdff 7461 c020 0dff
0000320 4320 f02d 00ff ffff ffff ffff ff00 00ff
0000330 ffff 00ff 00ff 00ff ffff ffff ffff ffff
0000340 00ff ffff ff00 ffff ffff ffff ffff 00ff
0000350 00ff ffff 00ff ffff ff00 ff00 ffff 00ff
0000360 ffff ff00 00ff ffff ffff ff00 00ff ffff
0000370 ffff 00ff ffff ffff ffff ffff ffff 00ff
0000380 ffff ff00 ffff ffff ffff ffff ffff ff00
0000390 ffff ffff ffff ffff ffff ff00 ffff ffff
00003a0 ffff ffff ffff 00ff 00ff 00ff 00ff ffff
00003b0 ffff ffff ffff ffff ff00 ffff ffff ffff
00003c0 ffff ffff c574 8440 0102 f7aa 00ff 655d
00003d0 4310 00ff ffff fdfd 04fd e008 09fa fffe
00003e0 ffff ffff ffff ffff ff00 ffff 00ff ffff
00003f0 ffff ffff ff00 ff00 00ff 00ff ffe9 ff00
0000400 61fd 2b74 fefe fe59 ffff ffff ffff ffff

Jemand einen Tip für mich ob und was ich falsch mache?

Danke
Ata

Kenn mich mit Linux jetzt nicht so aus aber ich vermute das serielle Schnittstelle falsch eingestellt ist muß Even Parity sein.
19200,E,8,1
Dann sollte was sinnvolles erscheinen.

Gruß Thomas

Hallo,

ich hab es nun wie folgt ohne socat analog dem Vorgehen auf http://robosavvy.com/forum/viewtopic.php?t=7578 hinbekommen.

Ich habe das HS485 Interface an einem kleinen Linux Device (Archlinux auf Pogoplug) angeschlossen und über Python (Paket: pyserial) freigegeben. Der „Trick“ ist die Freigabe über RFC2217 was eine „Fernkonfiguration“ des seriellen Ports auf dem aufrufenden System ermöglicht.

Das Interface wird als /dev/ttyUSB0 erkannt.

Nach der Installation von Python und pyserial kann man über ein enthaltenes Script die Schnittstelle freigeben:

python2 rfc2217_server.py /dev/ttyUSB0

Auf meiner (virtuellen) Windows 7 Maschine habe ich folgende Software installiert:

com0com (Quelle: http://com0com.sourceforge.net/)
hub4com (Quelle: http://sourceforge.net/projects/com0com/files/hub4com/2.0.1.0/)

Nach der Installation habe ich ein neues virtuelles Paar in com0com erstellt (vorher die Beispiele gelöscht):
com0com-config.PNG
COM3 = lokaler Comport
HS485 = Remote Com Port

Jetzt muss „nur noch“ der Port HS485 über RFC2217 mit dem TCP Server verbunden werden:

com2tcp.bat \\.\\HS485 192.168.111.26 2217

In meinem Fall ist die IP Adresse des Linux Device 192.168.111.26. Der Port 2217 ist der Default für pyserial.

Danach konnte ich das ELV Konfigurations-Programm starten und die Module abfragen.

Ata