1) По поводу работы библиотеки.
Не нужно испытывать иллюзий. Стек TCP/IP в ПЛК очень ограниченный - это не виндовс и не линукс. Шаг влево-шаг вправо расстрел. Прыжок на месте провокация. Соответственно есть очень большие ограничения - один клиент - один сокет, числу открытых сокетов и т.д. Кривизна в библиотеке есть. В основном это связанно с тем что в новой версии поддержаны дополнительные фичи, а в старом заголовочном файле все было не совсем так.
2) OSCAT oscat network на Овеновских плк как после кодесис 2 , так и 3 заработала после допиливания напильником. Ничего особенного - но пришлось поработать. Библиотеку не могу дать - т.к. она часть проекта - я накопировал блоки в проект.
3) SocketAccept - не получится взять удаленный адрес клиент - ее можно вообще не использовать.
Если работать только с нужными IP используйте ...RecvFrom ...SendTo
4) Кусочек кода для клиента
CASE STATE_SEND OF
0: SOCK_OUT := SysSockCreate( SOCKET_AF_INET, SOCKET_STREAM, SOCKET_IPPROTO_TCP );
TCP_ADR_OUT.sin_family := SOCKET_AF_INET;
TCP_ADR_OUT.sin_port := port; TCP_ADR_OUT.sin_addr := server; (* 192.168.200.207 *)
PADDR_OUT := ADR( TCP_ADR_OUT );
OUT_TON( IN := FALSE, PT := T#50MS ); STATE_SEND := 1;
1: RES_OUT := SysSockConnect( SOCK_OUT, PADDR_OUT, SIZEOF( PADDR_OUT) ); OUT_TON( IN := TRUE, PT := T#2S ); (* ?????? ?? 20 ??? *)
IF OUT_TON.Q THEN
STATE_SEND := 2;
END_IF
5) Для сервера
Настойчиво рекомендую посмотреть повнимательнее пример Web сервера.