Co se týká XP170D, tak to je klasický Modbus (Modbus-RTU). V popisu
Modbus references for XR170 jsou vypsané všechny možné příkazy, které to umí, jenom je potřeba pro užití v centrále rozklíčovat offset a délku. Parametry komunikace jsou:
9600Bd, žádná parita, 8 bitů, 1 stop bit, jednotka
neumí posílat více jak 5 registrů najednou. Stejně tak
zápis je povolen pouze pro hodnoty z rozmezí dané jednotkou.
Například pro čtení analogových vstupů. V tabulce je napsáno toto:
Room(p1) 0301000001
Evaporator (Pb2) 0301020001
Display (Pb3) 0301040001
Což je část Modbus paketu, kterému předchází adresa modulu a je následován CRC. Hodnota 03 (0x03) je kód pro čtení, který je následován offsetem (2 bajty) a délkou (2 bajty). U obou se nejprve posílá horní bajt, takže rozklíčovaný výsledek je:
Room(p1) 0301000001 -> 0x03 (čtení): offset = 0x0100, délka = 0x0001
Evaporator (Pb2) 0301020001 -> 0x03 (čtení): offset = 0x0102, délka = 0x0001
Display (Pb3) 0301040001 -> 0x03 (čtení): offset = 0x0104, délka = 0x0001
Stejným způsobem lze rozklíčovat všechna čtení uvedena v tabulce.
Zápisy jsou pakety, které v tabulce začínají 10 (0x10), například nastavení Set point:
Set Point - 10036C0001020000
Opět se jedná o část Modbus paketu, kterému předchází adresa a je následován CRC. Zápis se sestává z offsetu (2 bajty), počtu bodů (2 bajty), jejich délky (1 bajt) a následují data. Vždy se posílá nejprve horní bajt, takže rozklíčovaný výsledek je:
Set Point - 10036C0001020000 -> 0x10 (zápis): offset = 036C, počet bodů = 0x0001, délka = 0x02, data = 0x0000
Stejným způsobem lze rozklíčovat všechny zápisy uvedené v tabulce.
Pro komunikaci v CCPU-03 lze tedy využít moduly Modbus Rx (čtení - kód 0x03) a Modbus Tx (zápis - kód 0x10). Pro načtení každého analogového vstupu je tedy nastavení modulu Modbus Rx dle následujících tabulek. Načtená hodnota bude uložena na výstup out0.
Analog input Room(p1):
function = 3 (kód 0x03)
number = 1 (délka = 0x0001)
offset = 256 (offset = 0x0100)
datatype = 0 (čteme 16bit hodnotu)
Analog input Evaporator (Pb2):
function = 3 (kód 0x03)
number = 1 (délka = 0x0001)
offset = 256 (offset = 0x0100)
datatype = 0 (čteme 16bit hodnotu)
Analog input Display (Pb3):
function = 3 (kód 0x03)
number = 1 (délka = 0x0001)
offset = 256 (offset = 0x0100)
datatype = 0 (čteme 16bit hodnotu)
Jednotka umí poslat maximálně 5 registrů najednou, takže pro načtení hodnoty Pb1 a Pb2 můžeme využít jedenm modul, jehož nastavení je na obrázku P1aP2read.png v příloze.
Pro zápis se použijí moduly Modbus Tx. Nastavení parametrů je pro rozklíčovaný příklad následujíci (příklad nastavení je v příloze jako obrázek setPoint_write.png):
function = 16 (zápis - 0x10)
number = 1 (počet bodů = 0x0001)
offset = 876 (offset = 036C)
datatype = 0 (zapisujeme 16bit hodnotu)
Přiložený je projekt na zobrazení hodnoty P1, P2 a Set Point. Hodnotu Set Point (požadovanou) lze nastavit.