|
Název: CCPU03-komunikace s XP170D a s čítačem LEGEND Přispěvatel: Urbánek 20.03.2014, 09:31:26 1)Sestava s CCPU03 řídí VZT(vizualizace PROMOTIC).Chladící box má regulátor DIXELL XR170D s komunikační rozhraní RS485.Komunikační protokol mám.Zákazník požaduje vyčítání teplot,zadání teplot a ovládání.Je možnost komunikace s CCPU03.
2)Sestava s CCPU03 řídí technologii (vizualizace PROMOTIC).Zákazník požaduje přestavování hodnot čítače LEGEND,komunikační rozhraní RS485,protokol ASCII. Je možnost komunikace s CCPU03. Název: Re: CCPU03-komunikace s XP170D a s čítačem LEGEND Přispěvatel: libor 20.03.2014, 10:28:58 add 1) Pošlete mi, prosím, popis tohoto protokolu (fred@elsaco.cz).
add 2) Pro realizaci jednoduchých (ASCII) protokolů je v knihovně CCPU-03 modul SerialComm. Komunikace s CCPU-03 nejspíše možná bude, ale spíše bych Vám doporučil nasadit místo ní novou centrálu CCPU-34. Cenově vychází tato centrála podobně, ale má větší komunikační a programovací možnosti. Programování se provádí opět ve FREDovi. A pokud máte visualizaci pomocí PROMOTICu, tak můžete s CCPU-34 použít například protokol Modbus TCP. Název: Re: CCPU03-komunikace s XP170D a s čítačem LEGEND Přispěvatel: libor 20.03.2014, 13:33:43 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: Kód: Room(p1) 0301000001 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: Kód: Room(p1) 0301000001 -> 0x03 (čtení): offset = 0x0100, 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: Kód: 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: Kód: 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): Kód: function = 3 (kód 0x03) Analog input Evaporator (Pb2): Kód: function = 3 (kód 0x03) Analog input Display (Pb3): Kód: function = 3 (kód 0x03) 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): Kód: function = 16 (zápis - 0x10) Přiložený je projekt na zobrazení hodnoty P1, P2 a Set Point. Hodnotu Set Point (požadovanou) lze nastavit. (připojené soubory vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register)) Název: Re: CCPU03-komunikace s XP170D a s čítačem LEGEND Přispěvatel: libor 20.03.2014, 14:26:58 Čítače LEGEND komunikují jednoduchým ASCII protokolem, který opravdu půjde v CCPU-03 realizovat modulem SerialComm.
Komunikační parametry jsou následující: rychlost dle nastavení - 1200, 2400, 4800 nebo 9600Bd, počet datových bitů je 7, počet stop bitů je 1 a parita opět dle nastavení (žádná, lichá nebo sudá). Příkazy jsou posílány jako ASCII řetězec zakončený znakem hvěždička (*). Příkaz vždy začíná písmenem 'N', který následuje adresa (jeden nebo 2 znaky, tj. např. N1 nebo N98 apod). Pokud je adresa čítače 0, tak se znak 'N' a '0' neposílá (začíná se rovnou příkazem). Za adresou (pokud to není 0) se pokračuje příkazem. Čítače umá 4 příkazy: P - požadavek na výpis nastavení R - nulování, platí pro identigikátory E, I, J, O, 1, nebo 2 T - čtení hodnoty, platí pro identifikátory A až O V - změna hodnoty, platí pro identifikátory A až E nebo O Následuje identifikátor (neplatí pro výpis nastavení 'P', ten ho nepotřebuje): A - PRESET 1 P1 B - PRESET 2 P2 C - SCALE FACTOR COUNT SFC D - SCALE FACTOR RATE SFR E - COUNT CNT H - RATE RT I - PEAK PEK J - VALLEY VAL O - COUNTER LOAD CLD 1 - OUTPUT 1 N/A 2 - OUTPUT 2 N/A za kterým následuje odpovídající hodnota. Například změna hodnoty PRESET 1 na hodnotu 123.4 s čítačem s adresou 2 se provede příkazem: Kód: N2VA1234* nebo čtení hodnoty čítače z čítače s adresou 3 se provede příkazem: Kód: N3TE* Nastavení pro modul SerialComm je tedy následující (příklad pro COM2, 9600Bd, žádnou paritu): Kód: Baudrate = 55 (9600Bd při vysílání i při příjmu) (připojené soubory vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register)) |