Logamatic 2107

Schnittstellen

I²C-Bus

Die Steuerung besitzt einen internen I²C-Bus, welcher an 2 verschiedenen Stellen abgegriffen werden kann: * Direkt am Modulslot K4 auf der Busplatine * Am Flachbandkabel zur Bedieneinheit 150px

KM271

RS232 Schnittstelle über Zusatzkarte KM271 im Slot K4. Heizungsschnittstelle/Logamatic2107/K4

BFU

Schnittstelle zur Fernbedienungseinheit. Heizungsschnittstelle/BFU

Firmwareversionen

Kann vielleicht mal wichtig werden, hier mal eine kleine Aufstellung der bekannten Firmwareversionen: * Christian 3.14 * Rudi 3.18 * Malte 4.00

* Andreas F.: RC 35 V1.06 MC 10 V2.07 BC 10 V2.03 SAFe V5.20 BIM V1 BIM Nummer 7000

* Herby 4.00

Module

150px * K1 - Relayplatine und zur CPU (Frontpanel) * KM271 im Slot K4

Busplatine - Stecksockel ausgemessen

* K2 - FM241 - Mischer 01 1-15 02 1-8 03 1-19 04 1-12 05 + 06 1-9 07 1-6 08 1-3 09 1-18 10 1-2 11 - 12 1-13

* K3 - FM242 - 2. Stufe (klein) 01 X 02 1-6 03 1-7 04 1-2 05 + 06 1-9 07 X 08 X 09 1-5 10 1-17 11 - 12 1-13

* K4 - FM271 oder FM244 - Kommunikation oder Solar 01 1-13 (24V-) 3* 02 1-20 schwingt 03 1-16 04 1-14 05 1-12 2* 06 + 5V+ 07 1-9 (24V-)3* 08 1-10 siehe 20 schwingt 09 1-6 3* 10 1-4 11 1-2 3* 12 - -

* Legende unten -? oben +? - = - + = 5V+ 1-9 = 24V+ 1-13= 24V- Kollektorfühler FSK unterer Speicherfühler FSS

Diverses

Pinbelegung Flachbandkabel

* Pinangaben beziehen sich auf den roten Draht als Pin #1. * Input/Output ist relativ zur Bedieneinheit 01 +5V - Versorgungsspannung? An der stelle steht ein „+“ auf der Platine 02 GND 03 5V gemessen, vielleicht ein binärer E/A? 04 INPUT (0V Displayeinheit aus/ 5V Displayeinheit an + Bustraffic) 05 OUTPUT Relais Brenner (an=5V, aus=0V) 06 OUTPUT ??? (0V) 07 NC 08 OUTPUT ??? (0V) 09 OUTPUT Relais HK1 Pumpe (0V aus / 5V an) 10 OUTPUT Relais WW Pumpe (0V aus / 5V an) 11 OUTPUT Relais ZIRK Pumpe (0V aus / 5V an) 12 OUTPUT Relais MISCHER (0V aus / 5V auf) 13 OUTPUT Relais MISCHER (0V aus / 5V zu) 14 OUTPUT Relais HK2 Pumpe (0V aus / 5V an) 15 INPUT ADC (Value ⇒ Signal High Time) 16 OUTPUT ADC ADDR 0 17 OUTPUT ADC ADDR 1 18 OUTPUT ADC ADDR 2 19 OUTPUT SIGNAL UART 1200 Baud (8n1) » BFU 20 INPUT SIGNAL UART 1200 Baud (8n1) « BFU 21 OUTPUT ADC RESET ??? 22 OUTPUT ADC SYNC 23 SDA 24 SCL 25 OUTPUT 50hz sinus der fast wie dreieck aussieht 0,16V AC gemessen, ab und zu störungen messbar 26 NC

* Pin 23+24 entspricht Busplatine K4 1-10+1-20

I2C Bus

EEPROM

* Ist über den I2C BUS erreichbar * AT24C01 (Herby: ATC24C16AN) PAGE0 0xff PAGE1 0xff PAGE2 0xff PAGE3 0xff PAGE4 DATEN PAGE5 DATEN PAGE6 DATEN ein paar Byte, der Rest 0xFF PAGE7 0xff

Temperaturen

So, zu den Temperaturen bei der 2107. Leider werden nur die programmierbaren Temperaturen im EEProm gespeichert. Die eigentlichen Temperaturen werden über einen extra Bus übertragen. Es gibt 8 mögliche Temperaturen (ADC-Werte), wobei eine/r die Referenz ist. Ich konnte hier schon die Temperaturen per Hardwaresimulation durchfahren, aber die Referenz ist noch etwas undurchsichtig, geht aber in die Berechnung der Temperaturen mit ein. In der Serviceanleitung sind die Kurven und entpsrechenden Werte der Widerstände abgebildet.

ADC Adressen

0x00 KESSEL 0x01 AUSSEN 0x02 WW 0x03 ??? 0x04 ??? 0x05 ??? 0x06 VORLAUF 0x07 REF

Temperatursensoren

* Identifizierung Temperatursensoren (2107) aus den Kurven im [http://www.fuehlersysteme.de/resistance_characteristics_de.pdf Serviceheft]: Außentemperatur: NTC 10Kohm Kesselwasser : NTC 10Kohm Raumtemp : NTC 10Kohm Abgas : ??? Kollektor : ???

Telegramme

* Bei den Nachrichten handelt es sich offenbar um eine Art „ECO-CAN“ Bus. * Jeder Teilnehmer auf dem Bus hat eine Adresse und einen Speicherbereich der ausgelesen oder beschrieben werden kann. Initial sollte der komplette Speicher übertragen werden und danach nur Speicherbereiche in denen Änderungen stattgefunden haben. Da die Adressierung des Speichers noch unklar ist, sehen die Nachrichten immer gleich aus, welches Bit MSB und LSB ist, ist leider auch noch unklar … die dezimale 65 in den Daten ist wohl ein Lückenfüller für nicht vorhandene Werte bzw. Werte die nicht beschrieben werden sollen/können. *Das letzte Byte einer Nachricht ist die CRC. A8 07 : A9 65 11 20 3C 00 22 1A A8 3F : A9 65 11 20 3C 00 22 1A

  • *——— 0 Nacht, 1 Tag, 2 Auto
  • *————-Temp Nacht eingestellt (0.5 Auflösung)
  • *—————-Temp Tag eingestellt (0.5 Auflösung)

AA 57 : AB 65 FB 28 20 3C 65 D4

  • *
  • *
  • *
  • *—————-Temp WW eingestellt

CRC Berechnung

Erstmal ein funktionierender Plain code, thx Ingo & Rudi

poly = 12 crc1 = 0x00

for i in range(0,len(a)-1):

crc1 = crc1 ^ int(a[i],16)
crc2 = crc1
if crc1 & 0x80: crc1 ^= poly
d = 0
if crc1 & 0x80: d = 1
crc1 = crc1 << 1
crc1 &= 0xfe
crc1 |= d

⇒ crc2

Vereinfacht: for i in range(0,len(a)-1):

      d = 0
      if crc1 & 0x80: 
          crc1^=12
          d = 1
      crc1 = crc1 << 1
      crc1 &= 0xfe
      crc1 |= d
      crc1 = crc1^int(a[i])

Und das ganze noch in Delphi (thx Mario) function Berechne_Checksumme(data: array of integer; TelLaenge:integer): Integer; var

crc1 : integer;
i, d : Integer;

begin

  crc1 := 0;
  for i:=0 to TelLaenge-4 do
  begin
      d := 0;
      if crc1 AND $80 = $80 then
      begin
          crc1 := crc1 XOR 12;
          d := 1;
      end;
      crc1 := crc1 SHL 1; //linksschieben
      crc1 := crc1 AND $fe;
      crc1 := crc1 OR d;
      crc1 := crc1 XOR ord(data[i]);
  end;
  result := crc1;

end;

FHEM von Rudolf K.

Interface von Rudi

Error Codes

0 = "Kein Fehler",
2 = "Aussenfuehler defekt",
3 = "HK1-Vorlauffuehler defekt",
4 = "HK2-Vorlauffuehler defekt",
8 = "Warmwasserfuehler defekt",
9 = "Warmwasser bleibt kalt",
10 = "Stoerung thermische Desinfektion",
11 = "HK1-Fernbedienung defekt",
12 = "HK2-Fernbedienung defekt",
15 = "Keine Kommunikation mit HK1-Fernbedienung",
16 = "Keine Kommunikation mit HK2-Fernbedienung",
20 = "Stoerung Brenner 1",
24 = "Keine Verbindung mit Kessel 1",
30 = "Interner Fehler Nr. 1",
31 = "Interner Fehler Nr. 2",
32 = "Interner Fehler Nr. 3",
33 = "Interner Fehler Nr. 4",
49 = "Kesselvorlauffuehler defekt",
50 = "Kesselzusatzfuehler defekt",
51 = "Kessel bleibt kalt",
52 = "Stoerung Brenner",
53 = "Stoerung Sicherheitskette",
54 = "Externe Stoerung Kessel",
55 = "Abgasfuehler defekt",
56 = "Abgasgrenze ueberschritten",
87 = "Ruecklauffuehler defekt",
92 = "RESET"
infos/heizung/2107.txt · Zuletzt geändert: von 127.0.0.1
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0