Martin JS Programování Mosaic 19. 8. 2022 9:09 19. 8. 2022 8:51

Mám napsané dva programy s Epsnet. Každý samostatně pracuje bez chyby.

Jeden s fbEpsnetLongEth, kterým čtu data ze tří PLC CP 1091, ETH1, UNI1

Druhý v případě potřeby zapisuje do těchto tří proměnou BOOL, takže fbEPSnetEth ETH1, UNI2

Pokud nezapisuji, tak čtu bez potíží. Pokud zapíši, a to se povede až na 2. nebo 3. pokus, tak se zastaví čtení a nejde rozeběhnout.

Hlásí chybu 1 timeout. Prodloužil jsem tento čas, ale je to k ničemu. PLC se musí restartovat, aby se čtení obnovilo.

Blok se snaží číst, ale vždy to končí chybou na timout. V IO konfigurátoru OUT data "stojí" nic neodchází.  Blok se tedy tváří, že něco dělá. Generuje mi na výstupu chyby, ale na vlastním kanálu se nic neděje. Vypadá to na problém mezi funkčním blokem a samotným kanálem. 

Předem děkuji za řešení  

Odpovědi 2

M.B. 19. 8. 2022 8:15

Dobrý den,

problém by mohl být v tom, že příkazy (EpsnetEthCmd, apod.) obsahují parametr LocalPort přednastavený na výchozí hodnotu 17744. Pokud použijete více jak jeden blok, je potřeba v příkazech pro druhý blok tuto hodnotu změnit. Jinak dojde k tomu, že obě UNI spojení mají stejný port, na kterém čekají odpověď. Odpověď pak může skončit v UNI spojení druhého bloku, a proto se první blok jí nemůže dočkat.

Martin JS 19. 8. 2022 8:51

Ano, pomohlo, děkuji.

Tento dotaz je vyřešený.