Modbus mit CCU2 via TCL

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

Moderator: Co-Administratoren

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

Modbus mit CCU2 via TCL

Beitrag von shrimps » 03.12.2015, 23:44

Hallo an die Experten,
ich suche schon lange eine Möglichkeit via Modbus auf meine SPS zu schreiben...
Mit einigen Hochsprachen bekomme ich dies hin (Bsp.: PHP)
Nun würde ich gerne einige Stati via Modbus zu der SPS senden.
Nach einigen Recherchen bin ich auf TCL und TCP Sendekommandos gekommen.
Ich möchte ja nicht das ganze Modbusprotokoll haben, sondern nur einen Sendstring einer speziellen Funktion:
"Write Single oder Multiple Holding Register"
Dazu müsste man nur den exakten Telegrammaufbau, ca. 10-20 Bytes wissen, zusammenschrauben und via Port 502 an die SPS senden.

Nun die Profis:
Kann mann das mit der CCU2 machen ?

Wenn ich kann, helfe ich gerne...
Ich scheitere z.Zt. daran, mir mal mein Protokoll meines PC zur SPS mitzuschneiden wenn ich mit dem Testprogramm MODPOLL erfolgreich sende...

Habt ihr da eine Idee ?

LG
Shrimps

tschombe
Beiträge: 270
Registriert: 18.04.2013, 12:00

Re: Modbus mit CCU2 via TCL

Beitrag von tschombe » 04.12.2015, 08:30

ich kann dir leider nicht sehr viel weiterhelfen bzgl der Möglichkeiten auf der CCU,
aber der Aufbau einer Modbus-Nachricht ist hier ganz gut beschrieben:

http://www.simplymodbus.ca/TCP.htm

damit solltest du rausbekommen, welche "Bytes" die Modbus-Relevanten
Teile der TCP/IP Telegramme sind.

Falls du planen solltest IOBroker einzusetzen, da gibt es einen
fertigen, funktionsfähigen Modbus Adapter für ModbusTCP

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

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 05.12.2015, 00:00

Hallo tschombe,
besten Dank für den Link.

Habe zwar etliche andere wie die "original.org" gelesen, aber da sthet doch einiges vereinfachter drin...

Nun muss ich nur noch bei mir unter win7 lernen wie ich so eine Kommunikation hinbekomme...

Dann noch lernen wie auf der CCU2 sich das gleiche abspielt, wie ich z.Bsp. an eine systemvariable, welche ich selber gesetzt habe, drankomme...

Wird alles wohl etwas dauern, aber es wird ja kälter draussen :lol:

Bis demnächst
Shrimps

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

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 09.12.2015, 12:20

Hallo an weitere SPS-Modbusfreunde...

Ich versuche mich gerade in TCL einzuarbeiten...
Ich habe bereits diverse Testscripte um das Protokoll rudimentär nachzubilden...

Ich teste das z.Zt. von meinem Win7 zu einer echten SPS.

Wenn ich es dort geschafft habe, einen Wert in die SPS zu schreiben will ich es auf der CCU2 versuchen.

Nun meine Bitte/Frage:

Wer hat Lust sich hier zu beteiligen ?
Ich weiss z.bsp. nicht, wie die CCU2 in Bezug auf Systemvaribalen etc tickt.

Nun ja, es geht langsam weiter...

Ich halte euch am laufenden.

LG
Shrimps

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

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 10.12.2015, 00:19

Hurra,
seit gerade habe ich einen eigenen Wert erfolgreich in meinen BC9000 in das MW0 geschrieben !!!

Dann den Wert in der SPS geändert und zurückgelesen, ebenfalls korrekt.

Benutzt habe ich die Modbusfunktionen 16 / 03.

Alles in reinem TCL.

Morgen / nachher :lol:
werde ich mal versuchen, ob ich auf die CCU2 komme und dort das script laufen lassen kann...

Spannung steigt.

Falls jemand mitliest
LG Shrimps

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

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 11.12.2015, 18:01

Ojee,
Nun benötige ich die Hilfe der TCL-Profis...

Unter win7 läuft mein script einwandfrei und unter tclsh auf der ccu2 bekomme ich folgenden fehler:
# /bin/tclsh read_write_v1.tcl
extra characters after close-brace
while compiling
"lassign [::modbus::cmd${fun}_pack {*"
(compiling body of proc "::modbus::cmd", line 4)
invoked from within
"::modbus::cmd 16 0x00 0x4000 32767"
etc.

Codeausschnitt:

Code: Alles auswählen

lassign [::modbus::cmd${fun}_pack {*}$args] reqCmd rspLen
Wo muss ggf. welches Space hin oder liege ich ganz falsch ?

Danke für die Mühen.

PS: Ich hoffe, das ich hier im richtigen Forenbereich bin ?

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

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 12.12.2015, 17:49

Hallöchen
Kein TCL Profi hier ?
Muss an Syntax liegen...
Hoffnungsvoll wartend
Shrimps

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 » 13.12.2015, 09:49

Hallo
alle Angaben ohne Gewähr da ich kein Profi bin.

Ich würde mal behaupt lassign gib es in dieser TCL Version nicht.

Code: Alles auswählen

# uname -a
Linux homematic-bulli 3.4.11.ccu2 #1 PREEMPT Fri Oct 16 10:43:35 CEST 2015 armv5tejl GNU/Linux
# /bin/tclsh
% lassign
invalid command name "lassign"
% foreach
wrong # args: should be "foreach varList list ?varList list ...? command"
% foreach {a b c} {1 2 3} {break}
% ^C
#

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

Modbus mit CCU2 via TCL

Beitrag von shrimps » 13.12.2015, 12:10

Hmm
Kann leider nicht sein...
Wenn ich diverse Spaces einfüge macht der Compiler weiter jedoch stimmen dann die Ausdrücke nicht mehr !?
Zuletzt geändert von shrimps am 13.12.2015, 20:19, insgesamt 1-mal geändert.

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

Re: Modbus mit CCU2 via TCL

Beitrag von shrimps » 13.12.2015, 12:11

Sollte Hmm werden
Doofe Autokorrektur

Antworten

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