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

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

More
3 years 7 months ago #179 by 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

Please Log in or Create an account to join the conversation.

  • Walter Zögernitz
  • Topic Author
  • Visitor
  • Visitor
3 years 7 months ago #181 by Walter Zögernitz
Replied by Walter Zögernitz on topic Solar- und Heizungssteuerung mit logi.CAD 3 und Raspberry Pi
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.

Please Log in or Create an account to join the conversation.

More
2 years 10 months ago #213 by 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.

Please Log in or Create an account to join the conversation.

  • Walter Zögernitz
  • Topic Author
  • Visitor
  • Visitor
2 years 10 months ago #214 by Walter Zögernitz
Replied by Walter Zögernitz on topic Solar- und Heizungssteuerung mit logi.CAD 3 und Raspberry Pi
Hallo Hubert! Ja, ich stelle ihn morgen gerne zur Verfügung - "stolz" bin ich darauf aber noch nicht, aber es läuft sehr gut :-)

Please Log in or Create an account to join the conversation.

  • Walter Zögernitz
  • Topic Author
  • Visitor
  • Visitor
2 years 10 months ago #215 by Walter Zögernitz
Replied by Walter Zögernitz on topic Solar- und Heizungssteuerung mit logi.CAD 3 und Raspberry Pi
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.
Attachments:

Please Log in or Create an account to join the conversation.

LOGI.CALS AUSTRIA

Address

Europaplatz 7/1,
3100 St. Pölten

LOGI.CALS GERMANY

Address

Postfach 1306,
40738 Langenfeld
© 1987 - 2019 logi.cals GmbH