Vítej, Host. Prosím přihlaš se nebo se zaregistruj.
24.04.2026, 19:55:44

Domů Nápověda Vyhledávání Přihlásit Registrovat
 
Fórum k produktům firmy ELSACO Kolín  

+  PROMOS fórum
|-+  FRED - grafické vývojové prostředí
| |-+  FRED - platforma PL2 (CCPU)
| | |-+  CCPU03-komunikace s XP170D a s čítačem LEGEND
0 uživatelů a 1 Host prohlíží toto téma. « předchozí další »
Stran: [1] Dolů Tisk
Autor Téma: CCPU03-komunikace s XP170D a s čítačem LEGEND  (Přečteno 13930 krát)
Urbánek
člen

Příspěvků: 7


« kdy: 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.
Zaznamenáno
libor
moderátor+

Příspěvků: 388



« Odpověď #1 kdy: 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.
Zaznamenáno

libor
moderátor+

Příspěvků: 388



« Odpověď #2 kdy: 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
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:

Kód:
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:

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)
number = 1 (délka = 0x0001)
offset = 256 (offset = 0x0100)
datatype = 0 (čteme 16bit hodnotu)

Analog input Evaporator (Pb2):
Kód:
function = 3 (kód 0x03)
number = 1 (délka = 0x0001)
offset = 256 (offset = 0x0100)
datatype = 0 (čteme 16bit hodnotu)

Analog input Display (Pb3):
Kód:
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):

Kód:
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.



(připojené soubory vidí pouze registrovaní uživatelé)
Zaznamenáno

libor
moderátor+

Příspěvků: 388



« Odpověď #3 kdy: 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)
Parity = 00 (žádná parita při vysílání i při příjmu)
Format = 77 (7 bitů při vysílání i při příjmu)
Timeout = 50 (meziznaková mezera v ms)
ComNr = 2

Message_tx_format0 = 4E315641I0I1I2I32A (HEX ASCII znaků příkazu N2VA1234*, kde hodnota 1234 je brána ze vstupů I0 až I3 viz obrázek legend.png)


(připojené soubory vidí pouze registrovaní uživatelé)
Zaznamenáno

Stran: [1] Nahoru Tisk 
« předchozí další »
Skočit na:  


Poháněno MySQL Poháněno PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines Validní XHTML 1.0! Validní CSS!