Vítej, Host. Prosím přihlaš se nebo se zaregistruj.
06.12.2022, 15:16:54

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

+  PROMOS fórum
|-+  Další firemní SW
| |-+  CW ovladače
| | |-+  CCPU jako epsnet slave
0 uživatelů a 1 Host prohlíží toto téma. « předchozí další »
Stran: [1] Dolů Tisk
Autor Téma: CCPU jako epsnet slave  (Přečteno 5186 krát)
libor
moderátor+

Příspěvků: 388



« kdy: 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).
Zaznamenáno

libor
moderátor+

Příspěvků: 388



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

libor
moderátor+

Příspěvků: 388



« Odpověď #2 kdy: 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é)
Zaznamenáno

libor
moderátor+

Příspěvků: 388



« Odpověď #3 kdy: 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é)
Zaznamenáno

libor
moderátor+

Příspěvků: 388



« Odpověď #4 kdy: 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é)
Zaznamenáno

libor
moderátor+

Příspěvků: 388



« Odpověď #5 kdy: 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]
  DRIVER SYSTEM 5
  BAUD 9600
  PARITY EVEN
  STOP 1
END

[GLOBAL]
  ADDRESS 10
  MODE BLOCK
  ANSWER_TIME 1.0
  REFRESH_PERIOD 0
  SILENCE_WAIT 10
  IDLE_TIME 10
END

[STATION]
  ADDRESS 1
  NAME "Projekt1" ""  
  BLOCK 1 OFFSET 0
    REAL READ 10000 { Out }
    REAL READ 10001 { edit0 }
    REAL READ 10002 { edit1 }
    LONGINT READ 10003 { citac }
  END  
  BLOCK 2 OFFSET 0
    REAL WRITE 20000 { Pozadovana }
    REAL WRITE 20001 { show1 }
    REAL WRITE 20002 { show2 }
    LONGINT WRITE 20003 { start }
  END
  BLOCK 3 OFFSET 0
    REAL BIDIR 30000 { sklon }
    REAL BIDIR 30001 { posuv }
  END
END

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é)
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!