Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:ems:ems-telegramme

Telegrammaufbau

Es gibt mehrere Telegrammtypen auf dem Bus. Jedes Telegramm wird mit einem Break beendet. Dieses Break ist ein 0-Byte bei dem das Stopbit auch auf „0“ ist. Mit dem Startbit zusammen also 10 Bitlängen „0“.

Hier eine kleine Übersicht:

Polling

Das Polling ist die Adresse bei dem das Bit7 gesetzt ist. Das Polling wird vom Busmaster gesendet und mit einem Break beantwortet.

Antwort auf Polling

Wenn der Busteilnehmer der durch das Polling angesprochen wurde nicht zu senden hat wird das Polling mit der eigenen Adresse und einem Break beantwortet.

Telegramme

Die Telegramme werden nach dem Polling gesendet. Der Busmaster kann dann Telegramme selber an alle Busteilnehmer senden. Wenn keine Telegramme mehr gesendet werden sollen wird das Polling beantwortet. Dabei ist das Bit7 der Zieladresse nicht gesetzt.

CRC

Die CRC ist eine XOR-Verknüpfung mit Rotation. Wenn der Datenwert größer als 0x7f ist wird der Wert mit 0x12 zusätzlich mit XOR verknüpft: Hier ein Beispiel-Code zur CRC-Berechnung:

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 

Anfragen

Wenn Der Busteilnehmer nach seinem Polling Anfragen an andere Busteilnehmer senden will wird bei der Zieladresse das Bit7 gesetzt. Die angesprochenen Busteilnehmer müssen dann sofort mit einem Telegramm an den Anfragenden antworten.

Empfangsbestätigung

Wenn Anfragen gesendet wurden werden diese Positiv bestätigt (0x01) oder ein Fehler gemeldet (0x04)

Beispiele

Polling an an 0x10:
0x90 <break>

Antwort „Nichts zu senden“:
'0x10 <break>'

Abfrage eines anderen Gerätes:

Setzen eines Wertes:

Busadressen (EMS)

Jeder Busteilnehmer hat eine eindeutige Adresse. Auf dem Bus wird in größeren Abständen einmal jede unbekannte Adresse abgefragt. Die Busteilnehmer werden beim Beantworten des Pollings häufiger abgefragt und werden dann auf der RC30/35 mit der Bezeichnung als Busteilnehmer angezeigt.

@#dddddd:Adressen:@#dddddd:Anzahl@#dddddd:Anzeige RC30@#dddddd:Bemerkung
@#dddddd:von@#dddddd:bis@#dddddd:@#dddddd:@#dddddd:
0x04 RS232 Gateway
0x08 MC10
0x09 BC10
0x0A Handterminal
0x0B Computer Serice Key
0x0C Kaskade
0x0D Modem KM200
0x0E Konverter
0x0F Zeitmodul
0x10 RC30 / RC35
0x11 WM10 Hydr. Weiche
0x12 ZM EED Zusatzmodul External Error Detection
0x13 0x16 4 Gerät
0x17 RC20 Heizkreis
0x18 0x1F 8 RC20 HK1 bis HK8
0x20 0x27 8 Mischer HK1 bis HK8, MM10
0x28 0x2F 8 Warmwasser HK1 bis HK8
0x30 0x37 8 Solar HK1 bis HK8, SM10
0x38 0x5F 40 Gerät

Busadressen (EMS+)

beim EMS-Plus Bus gibt es weitere/andere Adressen:

@#dddddd:Adressen:@#dddddd:Anzahl@#dddddd:Anzeige RC35@#dddddd:Bemerkung
@#dddddd:von@#dddddd:bis@#dddddd:@#dddddd:@#dddddd:
0x04
0x08 UBA 3
0x09 MC10
0x0A
0x0B Servicekey
0x0C Kaskade
0x0D Easycom Modem
0x15 MMxxx Mischer HK2
0x18 RC200
0x1E
0x38 RC100
0x48 KM200
wiki/ems/ems-telegramme.txt · Zuletzt geändert: 2019/06/09 12:10 von ingof