Denkovi USB 8 Relay Board

Hallo,

ich habe ein Denkovi USB Board. Es ist per FTDI in IPS eingebunden und reagiert auf Befehle.
Doch leider nicht wie gewünscht.

Als Beispielprogramm habe ich eine c# Anwendung gefunden mit folgendem Code (Beispiel für eine Zahl)

 
public void start_program [....] {
        [...]
       sentBytes[0] =0;
}
 
private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked)
               sentBytes[0]=(byte)(sentBytes[0] | 1);           
            else            
                sentBytes[0]=(byte)(sentBytes[0] & 254);             
            myFtdiDevice.Write(sentBytes, 1, ref receivedBytes);
        }

Dabei ist 1,2,4,8,16,32,64,128 der Decimal Wert für EIN. Und jeweils 255-Wert der für aus.
Gesendet wird das ganze dann als Byte (hex).

In IP-Symcon sieht das ganze jetzt so aus:

$vars = array("48460","52434","48228","40271","45629","59613","35448","56356");
$wert = array(1,2,4,8,16,32,64,128);

$gespeichertedaten = GetValueString(33915 /*[sendData]*/ );
$temp = hexdec($gespeichertedaten);
$data=0;
for ($i=0; $i<sizeof($vars); $i++) {
        //print $vars[$i]."
";
    //if(GetValueBoolean($vars[$i]+0)){
    //   $data = $data + $wert[$i];
    if($vars[$i]+0 == $_IPS['VARIABLE']){
       if(GetValueBoolean($vars[$i]+0)){
            $data =($gespeichertedaten  | ($wert[$i]));
        }else{
           $data  = ($gespeichertedaten & (255 - $wert[$i]));
        }
 }
}
$data = dechex($data); // Testweise auch deaktiviert
}
FTDI_SendText(32218 /*[FTDI]*/,"$data");

SetValue(33915 /*[sendData]*/, $data);

Die Schleife ist ein Relikt aus den ersten Versuchen und wird mit der 1. If Abfrage quasi übergangen.
Meiner Meinung nach sind die Programme identisch von der Funktionsweise. Leider funktioniert es nicht wie gewünscht.

Hallo tobiasr,

ich habe eine Register Variable an den FTDI_uart gehängt und dann folgendes gesendet

$text = Chr(255).Chr($rel).Chr($an_aus); // für $rel das entsprechende Relais (0-8) und für $an_aus 1 oder 0

RegVar_SendText(34606 /[FTDI_uart\Register Variable Rel]/, $text);

bei 0 schalten alle 8 Relais entsprechend an(1) oder aus(0).

so hat es bei mir geklappt.

Also ich habe es getestet, leider tut sich nun nichts mehr. Vielleicht hat noch jemand eine Idee dazu.

Hallo Tobias,
mein Vorschlag:

Beide Versionen mit einen Serial-Sniffer belauschen, dann sieht man, was die Baugruppe bekommt und mit was für Daten es funktioniert.

Gruß Helmut

Hallo,

ich habe bereits versucht das Board über den virtuellen Com Port zu belauschen, auf dem aber leider keine Daten kommen. Daher müsste man wohl die FTDI Verbindung abgreifen. Ich kann auch gerne noch ein paar Programme morgen zur Verfügung stellen, an denen man vielleicht ablesen kann, welche Befehle über FTDI gesendet werden.

Vielleicht könntest du mir mal etwas genauer erklären, wie du die FTDI Verbindung belauscht hast.

So ein Programm, oder ähnlich.
Gruß Helmut

Das Programm kommt auf den FTDI Datenstrom des Geräts aber irgendwie nicht drauf. Bevor ich die c# Programme gefunden habe, habe ich es bereits damit getestet.

Muß gehen, ich hätte dann noch einen Logikanalyser.
Aber eigentlich… es muß mit dem Sniffer gehen.

Gruß Helmut

Werde alles morgen Testen und melde mich dann hier wieder.

Servus.
Ich habe mich mal damit beschäftigt, weil ich auch noch so eine Karte bei mir rumfliegen hatte.
Für diejenigen die es noch interessiert habe ich ein kleines WIKI geschrieben.
So klappt es bei mir, mit der Denkovi USB 16 Relais Karte.

http://www.ip-symcon.de/wiki/Denkovi_Relais_Karte_%28USB%29

Mich würde noch interessieren, wie du die weiteren Relais ansprichst.
Mit 02;03;04;05;06;07;08
oder 1,2,4,8,16,32,64,128

Servus.
Das zweite Relais mit 02, das dritte mit 03, usw.

Sent from my iPhone using Tapatalk - now Free

Hat leider nicht funktioniert. Es hat kein Relais geschaltet. Weder mit dem einzel, noch mit dem alle Befehl.

Servus,

konntest du denn bei der FTDI Einstellung, deine Denkovi Karte auswählen und aktiv setzen?

Es wäre einfacher wenn du das, was du bisher gemacht hast (Scripte, Screenshots) posten würdest.
Es geht bei mir auf jeden Fall und zwar so wie ich es beschrieben habe.
Das bekommen wir bei dir auch hin.

Servus.

Bist du schon weiter gekommen? Kannst du das Relais Board denn über die DMR Software steuern? Wenn nicht melde dich mal.

Gruß Sascha.

Hallo,
Ich habe mir vor wenigen tagen eine c#.Net Software geschrieben, welche mir einen server socket auf das denkovi relais board umsetzt.
Bei Interesse stelle ich die Software gerne hier ein.

Achtung: die 8 Kanal boards arbeiten mit einem Usb-parallel wandler und können daher nicht über Ip-Symcon und die ftdi Funktion angesprochen werden.