Modbus mit CCU2 via TCL

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Benutzeravatar
robbi77
Beiträge: 13905
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 747 Mal

Re: Modbus mit CCU2 via TCL

Beitrag von robbi77 » 13.12.2015, 14:30

Dann editier doch den Post...


Gruß
Roberto
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

shrimps
Beiträge: 48
Registriert: 28.11.2015, 01:00

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 13.12.2015, 17:31

Hallo Roberto
At Home hätte ich es ja gemacht aber mobil bekomme ich es nicht hin (tapatalk)
LG Shrimps

Benutzeravatar
robbi77
Beiträge: 13905
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 747 Mal

Re: Modbus mit CCU2 via TCL

Beitrag von robbi77 » 13.12.2015, 18:21

Guggst du:
ImageUploadedByTapatalk1450027290.186444.jpg
???


Gruß
Roberto
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

shrimps
Beiträge: 48
Registriert: 28.11.2015, 01:00

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 13.12.2015, 20:20

Jo
Kaum kann ich lesen [emoji85]schon geht s[emoji56]
Danke [emoji106]

Bulli
Beiträge: 494
Registriert: 29.04.2014, 18:38
Hat sich bedankt: 2 Mal
Danksagung erhalten: 9 Mal

Re: Modbus mit CCU2 via TCL

Beitrag von Bulli » 14.12.2015, 07:17

Hallo
den Befehl gibt es in der TCL Version auf der CCU2 nicht. Ist erst ab 8.5 drin.

Quelle
http://wiki.tcl.tk/9798
lassign
new in 8.5

Gruß
Bulli

shrimps
Beiträge: 48
Registriert: 28.11.2015, 01:00

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 14.12.2015, 10:50

Hallo Bulli,
Besten Dank für die Rückmeldung.
Ich versuche mal rauszufinden warum der zweite lassign in den Sourcen geht oder auch nicht.
Ersatzweise muss ich alles auf foreach umschreiben aber so gut bin ich noch nicht.
Könntest du hier ggf helfen ?
LG Shrimps

shrimps
Beiträge: 48
Registriert: 28.11.2015, 01:00

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 15.12.2015, 00:25

So, nun wieder ein kleines Stück weiter:
Bulli hatte Recht: lassign ist nicht drin, mit versionsinfo kam 8.2 raus, Ojee...

Nun versuche ich krampfhaft den lassign zu ersetzen, aber die ganzen foreach Beispiele passen hier nicht.
Ich habe zwar einige Variablen via set umformen können, aber der Vergleich mit der originalfunktion ergab dann Humbug bei mir weil dort wohl binäre Zeichenketten erzeugt werden ?!
Meinen Spaß kann man an den # Zeilen vor dem lassign gut erkennen und die Testausgabe danach...

Wenn mir einer hier helfen könnte, wäre echt prima.

Es sind nur 2 Zeilen mit lassign die ersetzt werden müssten.

Hier der Originalcode mit auskommentierten Testzeilen von mir.
Es ist nur die Einstiegsfunktion, wenn alles benötigt wird, kann ich dies auch gerne posten, war ja im Netz...

Für den Fall der Fälle: Megadank !
Shrimps

Code: Alles auswählen

proc ::modbus::cmd {fun args} {
    variable Priv

    set fun [string range 00[expr $fun] end-1 end]

    # set reqCmd ::modbus::cmd${fun}_pack
    # lappend reqCmd [lindex $args 0]
    # lappend reqCmd [lindex $args 1]
    # lappend reqCmd [lindex $args 2]
    # set rspLen [lindex $args{*}]
    # set rspLen [binary scan $args]
    # puts "reqCmd: $reqCmd"
    # puts "rspLen: $rspLen"
    # exit
    # set reqCmd [::modbus::cmd${fun}_pack] [lindex $args 0]
    # set rspLen [lindex $args 1]
     lassign [::modbus::cmd${fun}_pack {*}$args] reqCmd rspLen

    # puts "reqCmd: $reqCmd"
    # puts "rspLen: $rspLen"
    # exit

    set mode [string tolower $Priv(-mode)]

    lassign [::modbus::pack_$mode $reqCmd $rspLen ] reqCmd rspLen

    ::modbus::port_open
    set rspCmd [::modbus::port_send $reqCmd $rspLen]
    ::modbus::port_close

    set rspCmd [::modbus::unpack_$mode $reqCmd $rspCmd]
    if {$rspCmd == ""} {return ""}

    if {$mode == "tcp"} {set reqCmd [string range $reqCmd 6 end]}

    return [::modbus::cmd${fun}_unpack $reqCmd $rspCmd]
}


shrimps
Beiträge: 48
Registriert: 28.11.2015, 01:00

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 21.12.2015, 22:55

Ojee,
keiner hier der sich an zwei Zeilen TCL Änderungen ranwagt ?
Es muss auch keiner Modbus verstehen, die 2 Zeilen kann man ja gegeneinander testen !!!

Hoffnungsvoll auf einen TCLer wartend...

Ist ja bald Weihnachten !

LG
SHrimps

shrimps
Beiträge: 48
Registriert: 28.11.2015, 01:00

Erledigt: Modbus mit CCU2 via TCL

Beitrag von shrimps » 11.01.2016, 23:57

Nun ist´s vollbracht...

Mein TCL-Script kann vollständig MODBUS und läuft fehlerfrei auf der CCU2.

Hier inter. wohl kaum jemanden, ist ja auch eine SPS-Spezialität...

Schade, das mir hier von den TCL-Profis keiner geholfen hat.
Mir hat dann halt ein TCL-Profi aus der TCL-Community sehr schnell geholfen ohne Ahnung von Modbus...

Nun bastel ich weiter an der Übertragung der Daten von meiner CCU2 an meine SPS.

Bye
Shrimps

stenox
Beiträge: 1
Registriert: 05.02.2015, 20:41

Re: Modbus mit CCU2 via TCL

Beitrag von stenox » 21.01.2016, 13:31

@shrimps:
Habe hierzu volles Interesse, habe einen Controller von Systemair, welcher über Modbus RTU angebunden werden kann.
Allerdings bin ich mom. noch am Sammeln von Informationen.

http://planetaklimata.com.ua/instr/Syst ... al_Eng.pdf

Deswegen bitte deine Scripte / Beispiele / Anbindung posten, helfen tut es immer.
:D

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“