Název: CCPU jako epsnet slave Přispěvatel: libor 31.08.2010, 06:39:15 Chtěl bych použít jednotku CCPU jako epsnet slave a vyčítat data do CW s použitím vašeho epsnet ovladače. Nebyl by nějaký příklad projektu do CCPU a příklad CW aplikace, která by data načítala a zapisovala?
Dotaz zákazníka (viz výzva (http://forum.elsaco.cz/index.php?topic=13.msg112#msg112)). Název: Re: CCPU jako epsnet slave Přispěvatel: libor 31.08.2010, 06:51:26 Začneme projektem do CCPU (v příloze). Vytvoříme jednoduchý, kterým budeme nastavovat a číst analogovou a celočíselnou hodnotu, a pak také nastavovat a číst hodnotu parametrů modulu.
Pro komunikaci protokolem Epsnet se používají moduly PWPB_main, PWPB_rx, PWPB_tx a PWPBp_rx. V našem ukázkovém projektu použijeme všechny 4. Začneme u hlavního modulu PWPB_main. V něm se nastavují komunikační parametry linky, po které budeme komunikovat protokolem Epsnet. V našem případě chceme komunikovat po COM1 (parametr kanal nastavíme na 1), rychlostí 9600Bd (rychlost -> 9600) se sudou paritou (parita -> 2). Dále se v tomto modulu nastavuje, že se CCPU bude chovat jako slave, a to tak, že nastavíme parametr maxtoken na 0. Jako poslední nastavíme adresu (parametr adresa na 1) a parametr maxadresa nastavíme také na 1 (jedna stanice). Další parametry - zejména timeouty apod. - nastavujeme dle potřeby. Hodnoty parametrů v dialogu modulu je možné si prohlédnout na přiloženém obrázku. (připojený soubor vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register)) Název: Re: CCPU jako epsnet slave Přispěvatel: libor 31.08.2010, 07:03:26 Jako další si zapojíme a nastavíme modul PWPB_rx pro zápis hodnot. Výstupy jsou univerzální, takže dokáží zapisovat analogovou i celočíselnou hodnotu. Využijeme první 4 výstupy - nastavení požadované teploty, 2 hodnoty pro zobrazení na CKDM a jednu celočíselnou hodnotu, kterou budeme spouštět čítání.
Řekněme, že chceme, aby to byla data z bloku 2 a od offsetu 0. Otevřeme nastavení parametrů dialog modulu PWPB_rx a tyto parametry zadáme. Chceme blok 2, a proto nastavíme parametr blok na 2. Stejně tak nastavíme i parametr offset na 0, protože chceme, aby zapisovaná data byla od offsetu 0. Využíváme pouze 4 výstupy, takže bychom mohli nastavit parametr delka na 16 (nebo můžeme ponechat hodnotu 64). Další důležitý parametr je adresa. V tomto modulu je to adresa odkud, což je adresa, kterou bude mít dispečink v CW. Řekněme, že mu přiřadíme adresu 10, proto parametr adresa nastavíme na tuto hodnotu. Dialog pro nastavení hodnot parametrů si můžete prohlédnout v příloze. (připojený soubor vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register)) Název: Re: CCPU jako epsnet slave Přispěvatel: libor 31.08.2010, 07:47:39 Pro čtení hodnot z jednotky (např. do nadřízeného systému) protokolem Epsnet se používají moduly PWPB_tx. Vstupy jsou, stejně jako výstupy u modulu PWPB_rx, univerzální. Lze na něj připojit jak analogovou, tak celočíselnou hodnotu.
V našem jednoduchém příkladě budeme přenášet na dispečink výstupní hodnotu z modulu Ekviterm, 2 hodnoty nastavené v modulu Screen a načítanou celočíselnou hodnotu modulu Cntud. Opět nastavíme parametry. Řekněme, že tyto hodnoty budou v bloku 1 od offsetu 0, takže nastavíme parametr blok na 1 a parametr offset na 0 (délku opět můžeme ponechat na 64 nebo nastavit 16, protože využíváme 4 vstupy po 4 bajtech). Adresa je v tomto případě kam, nebol-li naše adresa, kterou jsme si nastavili na 1 (v modulu main). Nastavené parametry v dialogu si můžete prohlédnout na přiloženém obrázku. (připojený soubor vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register)) Název: Re: CCPU jako epsnet slave Přispěvatel: libor 31.08.2010, 08:13:40 Poslední modul, který využijeme pro Epsnet komunikaci, je modul PWPBp_rx. Tento modul slouží k přímé obousměrné (čtení/zápis) komunikaci hodnot parametrů ostatních modulů v projektu. My v našem jednoduchém ukázkovém projektu budeme komunikovat hodnoty parametrů posuv a sklon modulu Ekviterm.
Nejprve opět nastavíme blok a offset. Parametry umístíme například do bloku 3, takže parametr blok nastavíme na 3 a offset ponecháme na 0. Délku opět můžeme ponechat na hodnotě 64 a stejně jako u modulu PWPB_rx je nutné nastavit parametr adresa (odkud) na hodnotu adresy, kterou bude mít dispečink, tj. v našem případě je to 10. Nastavené parametry si můžete prohlédnout na prvním obrázku. Parametry, které tímto modulem chceme komunikovat, musíme zadat jako trojice hodnot objekt, instance a item. Tyto hodnoty jednoduše zjistíme tak, že na vybraný modul klikneme prostředním tlačítkem u myši (nebo v kontextovém menu modulu volíme volbu Informace o modulu...). V zobrazeném dialogu (viz druhý přiložený obrázek) lze tyto informace jednoduše zjistit. Do dialogu tedy zadáme číslo objektu, instance a itemů pro parametry posuv a sklon, nebo-li hodnoty 151, 1, 5 pro sklon a 151, 1, 6 pro posuv. Nastavení si můžete prohlédnout na třetím přiloženém obrázku. (připojený soubor vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register)) Název: Re: CCPU jako epsnet slave Přispěvatel: libor 31.08.2010, 08:24:45 Nyní máme hotový projekt do centrály, takže ho přeložíme a nahrajeme do centrály a vrhneme se na tvorbu aplikace v CW. V projektu jsme definovali bloky, takže výsledný PAR soubor bude obsahovat toto:
Kód: [COM] V PAR souboru jsme nastavili komunikační rychlost 9600Bd/sudá parita na COM5. Adresu PC (CW) jsme nastavili na 10, timeout odpovědi na 1.0s. Mód komunikace jsme nastavili na ITEM. Bloky jsme si v projektu definovali 3. V bloku 1 a 2 máme 4 položky (3x real a 1x longint). V bloku 3 máme jen 2 položky, a to real. Pokud bychom chtěli přenášet několik binárních signálů, tak je nejlepší sloučit je do jednoho longint (v CW i v projektu pomocí k tomu určených prostředků - v projektu to jsou moduly Int_to_bin a Bin_to_int). DMF soubor bude obsahovat definici kanálů pro CW. Do CW aplikace vložíme nejjednodušší prvky na zobrazení a editaci hodnoty. Výslednou aplikaci (součástí přílohy) v běhu si můžete prohlédnout na obrázku. (připojený soubor vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register)) |