× Projekte umgesetzt mit logi.CAD 3 und logi.RTS

Solar- und Heizungssteuerung mit logi.CAD 3 und Raspberry Pi

Mehr
2 Jahre 8 Monate her #179 von Yves
Hallo Herr Zögernitz,

Ja gut der Code selbst würde noch einiges an Optimierung vertragen... ;)

Allerdings meinte ich mit elegant eher die Lösung mit den IN und Outputs.
Ich habe aber glaube ich langsam herausgefunden wie sie dies gelöst haben.

Ich nehme an, dass dies als STRUCT gelöst haben?
Und dann mit den FB's readInputs und writeOutputs den HW-IO's gelesen resp. gesetzt?

Wäre es allenfalls möglich (auch auszugsweise) die Deklaration und die read/write Funktionen aufzuzeigen?

Zum "Mapping":
Ich bin dabei (wenn's meine Freizeit erlaubt und mein Wissen in C) einen Systemdienst für den UNIPI zu schreiben.
Eventuell wäre das Mapping da auch interessant... Aber ich glaube da werden meine Kenntnisse in C wohl nicht ausreichen..

Zum Thema emBRICK:
wird es möglich sein, das emBRICK System mit der LogiCAD 3 Compact zu verwenden?
wird LogiRTS auch direkt auf den emBRICK Masterbricks (uniCORE und uniMind) laufen?

Sorry dass ich Ihnen den Thread mit all den OffTopic Fragen fülle....
Für weitere Fragen sollte ich wohl besser ein neues Thema beginnen.

Freundliche Grüsse
Yves Ledermann

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 8 Monate her #181 von Walter Zögernitz
Hallo,


Ehrlicherweise muss ich eingestehen, dass das Ansprechen der IOs das Werk meiner Kollegen war, welches ich nu "nutze".

Hier der Auszug aus der verwendeten "Read"Routine
====================
FUNCTION_BLOCK ReadInputs
VAR_INPUT
inputs : REF_TO Inputs;
END_VAR
VAR
data : REF_TO Inputs; /* workaround */
fd : DINT := -1;
analog_in_1 : ARRAY[0..4] OF UINT;
digital_in_0 : ARRAY[0..7] OF BOOL;
END_VAR
data := inputs; /* workaround */
/* read data from I/O sub-systems */
IF fd < 0 THEN
fd := I2C_Open(bus_id := 1); /* /dev/i2c-1 */
END_IF;
/*
* 0x38 ... Input 1
*/
IF fd >= 0 THEN
analog_in_1 := I2HAE(fd := fd, address := 16#08);
data^.ai6 := analog_in_1[0];
data^.ai7 := analog_in_1[1];
data^.ai8 := analog_in_1[2];
data^.ai9 := analog_in_1[3];
data^.ai10 := analog_in_1[4];

digital_in_0 := I2C_PCF8574_read(fd := fd, address := 16#38);
data^.di0 := digital_in_0[0];
data^.di1 := digital_in_0[1];
data^.di2 := digital_in_0[2];
data^.di3 := digital_in_0[3];
data^.di4 := digital_in_0[4];
data^.di5 := digital_in_0[5];
data^.di6 := digital_in_0[6];
data^.di7 := digital_in_0[7];
ENO := TRUE;
ELSE
ENO := FALSE; /* fd < 0 */
END_IF;
END_FUNCTION_BLOCK
====================


Hier dann der Auszug aus der "Write" Routine:
====================
FUNCTION_BLOCK WriteOutputs
VAR_INPUT
outputs : REF_TO Outputs;
END_VAR
VAR
fd : DINT := -1;
cumm_do_0 : ARRAY[0..7] OF BOOL; /* cumulated digital outputs */
END_VAR
ENO := FALSE;
IF fd < 0 THEN
fd := I2C_open(bus_id := 1);
END_IF;
/*
* 0x25 ... Output 1
*/

IF fd >= 0 THEN
I2HAA(fd := fd, address := 16#68, channel := 0, value := outputs^.ao1);
cumm_do_0[0] := outputs^.do0;
cumm_do_0[1] := outputs^.do1;
cumm_do_0[2] := outputs^.do2;
cumm_do_0[3] := outputs^.do3;
cumm_do_0[4] := outputs^.do4;
cumm_do_0[5] := outputs^.do5;
cumm_do_0[6] := outputs^.do6;
cumm_do_0[7] := outputs^.do7;
I2C_PCF8574_write(fd := fd, address := 16#25, pin_values := cumm_do_0);
ENO := TRUE;
ELSE
ENO := FALSE;
END_IF;
END_FUNCTION_BLOCK
====================

Für die anderen Themen werden wir neue Topics anlegen, um es übersichtlicher zu machen.

Haushaltsqualität ist für mich zu wenig!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 11 Monate her #213 von Hubert Widmann
Gibt es mittlerweile eine Finale Version?
Würdest du den Code hier posten?
Ich hab ein ähnliches Projekt und würde mich sehr dafür interessieren.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 11 Monate her #214 von Walter Zögernitz
Hallo Hubert! Ja, ich stelle ihn morgen gerne zur Verfügung - "stolz" bin ich darauf aber noch nicht, aber es läuft sehr gut :-)

Haushaltsqualität ist für mich zu wenig!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 11 Monate her #215 von Walter Zögernitz
Hier das Hauptprogramm. Es beinhaltet alle Funktionen der Solaranlage, Heizung und Gartenbewässerung.
Ich fürchte aber, dass das in der vorliegenden Form nur für den Ersteller verständlich ist.
Gerne können Sie mich über einzelne Details dazu seperat befragen.

Haushaltsqualität ist für mich zu wenig!
Anhänge:
Folgende Benutzer bedankten sich: Jürgen Huber

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

logi.cals Österreich

Adresse

Europaplatz 7/1,
3100 St. Pölten

logi.cals Deutschland

Adresse

Postfach 1306,
40738 Langenfeld

Benutzer

Registrieren
© 1987 - 2018 logi.cals GmbH