PROMOS fórum

FRED - grafické vývojové prostředí => FRED - platforma XCom => Téma založeno: libor 13.09.2010, 10:51:03



Název: XCOM-21 + panel MT6050i
Přispěvatel: libor 13.09.2010, 10:51:03
Jak propojit XCOM-21 a panel MT6050i a jak číst a zapisovat data?

Dotaz zákazníka (viz výzva (http://forum.elsaco.cz/index.php?topic=13.msg112#msg112)).


Název: Re: XCOM-21 + panel MT6050i
Přispěvatel: libor 13.09.2010, 10:58:30
Panel MT6050i má na výběr komunikační protokol ModBus, kde se chová jako server a disponuje jednou sériovou linkou, kterou se lze připojit k XCOMu. Propojení tedy provedeme po sériové lince protokolem ModBus (XCOM bude slave zařízení).

V konfiguraci panelu vybereme výše zmíněný protokol a například sériovou linku RS-232. Zapojí kabelu je potom následující:
Kód:
signál    XCOM (RJ)    panel (DBF)
RxD              6                  6
TxD              3                  9
GND              4                  5

Součástí tohoto vlákna bude ukázka projektu pro panel a projekt pro XCOM-21.


Název: Re: XCOM-21 + panel MT6050i
Přispěvatel: libor 13.09.2010, 13:43:01
V naší jednoduché aplikaci si předvedeme čtení/zápis floatových a celých čísel. Protokol ModBus definuje registry jako dvoubajtové, takže 4 bajtová čísla (jako např. float) jsou rozdělena do více registrů.

Na přiloženém obrázku je vidět ovládací panel: budeme načítat hodnoty požadované teploty, posuv, sklon a výstupní hodnotu ekvitermu (všechno float). Dále budeme načítat hodnotu čítače (celé číslo). Změnit půjde požadovaná teplota, posuv a sklon (float) a "binární" hodnotou budeme ovládat čítání (start/stop).

Výsledný projekt pro panel je v příloze.

(připojené soubory vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register))


Název: Re: XCOM-21 + panel MT6050i
Přispěvatel: libor 13.09.2010, 13:47:19
XCOM se bude chovat jako ModBus slave, tj. komunikační část obstarají moduly Modbus Rx slave a Modbus Tx slave. Ovládat a na čítat budeme hodnoty modulu Ekviterm a modulu pro čítání hodnoty (Cntud), který bude připojen na generátor pulzů.

Jelikož ModBus definuje registry jako dvoubajtové, tak musíme floatová čísla rozdělit na 2 dvoujbajtové části. K tomu nám poslouží modul BitConvertFromFloat. A stejně tak musíme z přijatých hodnot složi výsledné floatové číslo. K tomu použijeme inverzní modul BitConvertToFloat. Použití obou modulů je vidět na přiloženém obrázku (panel MT6050i posílá floatové číslo v opačném pořadí dvoubajtů než např. jednotka CCPU, takže se musí zapojit kříženě).

Zapisovaná hodnota se musí dostat i do čtecího modulu, aby si panel mohl hodnotu znovu načíst a tím i zkontrolovat. Hodnoty parametrů proto musíme zapisovat i číst, požadované hodnoty a povely je nutné přímo zapojit z modulu Modbus Rx slave na modul Modbus Tx slave. V obou nastavíme stejné počáteční offsety, takže se hodnoty budou zapisovat a číst na stejné resp. ze stejného místa.

(připojené soubory vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register))


Název: Re: XCOM-21 + panel MT6050i
Přispěvatel: libor 14.09.2010, 05:24:33
Hodnotou z komunikace můžeme nastavovat i parametry, které jsou takto označeny. U modulu Ekviterm jsou to například parametry Posuv a Sklon. Tyto parametry vybereme (např. přes minitlačítko v pravém dolním rohu daného modulu) a připojíme ho na hodnotu z komunikace. Každý takový parametr má i vstup pro povolení nastavení, kterým můžeme řídit, kdy nastavení provedeme. Z komunikace by se takový parametr mě nastavit v případě, že dojde k jeho změně, aby se dal měnit i z jiného místa např. z CKDM (v příkladu nepoužito). K detekci změny hodnoty (float) parametru slouží modul CtrlSetValue (float), který se přímo připojuje na nastavovací a blokovací vstup. Zapojení je vidět na přiloženém obrázku.

(připojené soubory vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register))


Název: Re: XCOM-21 + panel MT6050i
Přispěvatel: libor 14.09.2010, 05:29:29
Spojení s panel je přes RS-232 (COM0 na XCOM-21) - rychlost jsme ponechali implicitně nastavenou, tj. 9600Bd, 8 bitů, sudá parita.

Pro slave komunikaci se používají tzv. buffery. V případě této sériové komunikace musíme použít modul COMbuffer. Nastavení komunikačních parametrů je vidět na obrázku obrázku. Zapojení modulu (vyvedení bufferu na label) je vidět na druhém obrázku. Tento signál (buffer) se musí připojit na všechny slave moduly, které se daný bufferem mají obsloužit.

V příloze je i kompletní projekt pro XCOM-21.

(připojené soubory vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register))