Instruction Sequence K8056

Gast #5857363
Lesenswert?

Hallo.

Ich bräuchte bitte eure Hilfe. (mal wieder)

Ich möchte per serieller Schnittstelle eine Sequenz an meine K8056 
senden um ein Relais zu schalten (ganz einfach gehalten um zu testen und 
zu lernen) (Raspberry 3B+ und Python3)

Die Anleitung wie diese Sequenz aufgebaut sein muss habe ich als link 
kopiert:

https://www.velleman.eu/downloads/0/illustrated/illustrated_assembly_manual_k8056.pdf

und die Programmzeilen hab ich aus meinem Python-Lehrbuch:

###
import serial

ser = serial.Serial("/dev/ttyUSB0", 2400, timeout = 10)

ser.write(13, card adress, instruction, adress, checksum)

ser.close()
###

Adresse der Karte müsste 1 sein.
Instruktion wäre S um das erste Relais einzuschalten
Adresse wäre dann 1 für 1.Relais

Wie schreibe ich das dann damit es auch richtig ankommt und wie bilde 
ich die "checksum"?
Gast #5857394
Lesenswert?

Der Python Code entspricht der Doku. Du solltest hier nicht 
verschweigen, dass du auch mit dem Programm von Vellemann keine Reaktion 
erreichen konntest.

Wenn zwei völlig unterschiedliche Programme nicht funktionieren, sollte 
man mal in eine andere Richtung denken. Dann ist wohl etwas an der 
Hardware nicht in Ordnung.

Hast du ein Oszilloskop oder einen Logic Analyzer? Wenn nicht, kaufe Dir 
einen, damit kann man das prima untersuchen. Kostet keine 10 Euro.
Gast #5857590
Lesenswert?

Das Python Script sendet wie du die Kanalnummer binär. Die Nummer des 
Relais sendet es hingegen als Zeichen (n+48), also nicht 1 sondern '1'.

Im Zweifelsfall könntest du unabhängig vom Algorithmus einfach mal alle 
256 Möglichkeiten durchprobieren. Ich würde außerdem mal probieren, nach 
der Checksumme einen zusätzlichen Zeilenumbruch (13) zu senden.

Ich würde mich allerdings erst mal auf das Programm von Vellemann 
konzentrieren. Vielleicht ist dein USB-UART Adapter irgendwie 
inkompatibel.

Auf https://forum.vellemanprojects.eu/t/serial-cable-to-k8056/5727/5 und 
https://forum.classic-computing.de/forum/index.php?thread/8581-apple-c-f%C3%BCr-robotik-nutzen/ 
steht, dass der COM-Port COM1 oder COM2 heißen muss. Das kann man ja 
irgendwo in der Systemsteuerung beeinflussen (lang ist's her, dass ich 
das mal machen musste).
Persönliche Seite #5857730
Lesenswert?

Stefanus F. schrieb:
> steht, dass der COM-Port COM1 oder COM2 heißen muss.

Diesen Fehler in der Software könnte man ja auch beheben, und dann 
auch dafür sorgen, daß Schnittstellen > COM9 mit der korrekten Syntax 
("\\.\COMx" statt "COMx") angesprochen werden, wie es seit über einem 
Vierteljahrhundert in der Windows-API-Dokumentation steht. Kann 
natürlich sein, daß das der Python-Wrapper schon erledigt, aber den 
kenne ich nicht.
Gast #5858948
Lesenswert?

Stefanus F. schrieb:
> Hast du ein Oszilloskop oder einen Logic Analyzer? Wenn nicht, kaufe Dir
> einen, damit kann man das prima untersuchen. Kostet keine 10 Euro.

Ich hab mir jetzt mal ein kleines oszilloskop besorgt. Auf dem Bild das 
Ergebnis wenn ich zwischen txd und gnd vom Adapter Messe. Messfehler 
oder kommt hier wirklich kein richtiges Signal an?

Wenn ich das Programm starte kommen diese kurzen ausschläge aber mehr 
passiert da nicht.
Angehängte Dateien:
Gast #5858971
Lesenswert?

Stefanus F. schrieb:
> dass der COM-Port COM1 oder COM2 heißen muss.

Es gibt bereits eine überarbeitete Version die auch andere com's 
erkennt. Wenn ich relais schalte in der vellemansoftware wird auch etwas 
über den Adapter gesendet. Ich kann zwar mit meinem langsamen oszi nicht 
sehen was gesendet wird aber es gibt bei jedem Klick eine Reaktion.
Gast #5859026
Lesenswert?

Matthias schrieb:
> Es gibt bereits eine überarbeitete Version die auch
> andere com's erkennt.

> Ich kann zwar mit meinem langsamen oszi nicht
> sehen was gesendet wird aber es gibt bei jedem Klick eine Reaktion.

Na das ist doch schon mal eine wertvolle Information. Jetzt wäre 
wirklich interessant, das Signal in seiner ganzen Pracht zu sehen.
Gast #5859233
Lesenswert?

Hab jetzt mal txd und rxd verbunden um auszulesen was da überhaupt 
gesendet wird. Auf dem Bild sieht man was dabei rauskommt. Wörter und 
Buchstaben kommen 1zu1 an aber aus dem befehlsarray wird so ein 
komisches 'ding'. Hat das schon mal jemand gesehen? Soll das so sein? 
Oder ist der Konverter überfordert?
Angehängte Dateien:
Gast #5859512
Lesenswert?

Das hilft mir dann bei der Fehlersuche schon mal weiter. Mit binärdaten 
und der ASCII Tabelle bin ich schon etwas vertraut aber das ausgelesene 
binärdaten als kraklige Vierecke im terminal erscheinen ist mir neu.
Gast #5859569
Lesenswert?

Matthias schrieb:
> aber das ausgelesene
> binärdaten als kraklige Vierecke im terminal erscheinen ist mir neu.

Da verhält sich jedes Programm anders, dafür gibt es keine einheitliche 
Regelung. Du kannst Binärdaten recht gut mit dem Hammer Terminal 
darstellen. Überhaupt ist dieses Programm für solche Diagnose-Aufgaben 
meiner Meinung nach das Beste.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren