PROMOS fórum

Další firemní SW => CW ovladače => Téma založeno: libor 06.04.2011, 07:37:39



Název: Chybovost TCP spojení
Přispěvatel: libor 06.04.2011, 07:37:39
Mám CW ovladač, který obsluhuje 6 stanic na TCP (1 stanice == 1 spojení). Komunikuji tak, že nejprve načtu hodnoty z jedné stanice (tj. počkám na dokončení komunikace se stanicí) a pak jdu teprve na další. Nekomunikuji tedy nijak často (i s prodlevou trvá jedno komunikační "kolečko" asi 45s), nebo-li síť není nijak přetížená a přesto vykazuje úspěšnost komunikace na jedné stanici i méně než 50%. V čem je problém?


Dotaz zaslaný mailem (viz výzva (http://forum.elsaco.cz/index.php?topic=13.msg112#msg112)).


Název: Re: Chybovost TCP spojení
Přispěvatel: libor 06.04.2011, 07:54:12
Problém je právě v tom "nevytěžování" komunikační linky. TCP spojení má nějaké limity, ve kterých když nepřijdou další data, tak vyhodnotí, že spojení se "rozbilo" a je přerušeno. Když komunikujete jednou za 45s, tak se první paket vždy "zahodí", protože se mezitím spojení přerušilo.

Možná řešení:
  • pokud netrváte na TCP, tak můžete změnit komunikaci na UDP (lze to u CCPU-03, XCOM jednotek atd.), u kterého se spojení nemusí trvale držet, takže delší prodleva nevadí.

Změnu provedete následovně (příklad původního nastavení pro TCP):
Kód:
[COM]
  IP "192.168.222.33"
  PORT 1998
END

které jednoduše upravíte na UDP komunikaci (nezapomeňte, že u CCPU-03 je port 1998 pro TCP a port 1999 pro UDP):
Kód:
[COM]
  IP "192.168.222.33"
  PORT 1999
  MODE UDP
END

  • nekomunikovat stanice jednotlivě, ale najedou, tj. dát požadavky na všechny kanály, jejichž hodnota se má přečíst, protože v tomto případě (1 stanice == 1 spojení) bude jejich zpracování paralelní a tak se výrazně zkrátí doba na jedno "kolečko"