PDA

Просмотр полной версии : настройка связи пк с плк с помощью сокетов



Sergey_Cherepovets
21.10.2010, 00:39
Здравствуйте. Пытаюсь настроить работу ПК с ПЛК через сокеты с помощью UDP-протокола. Для контроллера пишу код, используя библиотеку SysLibSockets. Для компа пишу код на C++Builder6, используя компонент NMUDP. От ПЛК на комп данные отправляются. А вот с компа на ПЛК никак.

Код для ПЛК:
CASE web_stat OF
0:
web_stat:=1;
sock_adr.sin_addr:=16#0A000602; адрес ПК
sock_adr.sin_family:=SOCKET_AF_INET;
sock_adr.sin_port:=2055; порт ПК

sock_adr1.sin_addr:=16#0A00060A;
sock_adr1.sin_family:=SOCKET_AF_INET;
sock_adr1.sin_port:=1200;
my_BUFs:='Hello from Russia!!!';
my_BUFr:='';
sock:=SysSockCreate(SOCKET_AF_INET,SOCKET_DGRAM,SO CKET_IPPROTO_UDP);
send:=FALSE;
suces:=0;
faul:=0;
count:=0;
1:
IF NOT send THEN
send:=TRUE;
resd:=SysSockSendTo(sock,ADR(my_bufs),20,0,ADR(soc k_adr),SIZEOF(sock_adr));
END_IF
tmr(IN:=start_TON,PT:=t#10s);
IF NOT start_TON THEN
start_TON:=TRUE;
END_IF
IF tmr.Q THEN
resd:=SysSockRecvFrom(sock,ADR(my_bufr),20,0,ADR(s ock_adr1),SIZEOF(sock_adr1));
IF FIND(my_BUFr,'Russ')<>0 THEN
suces:=suces+1;
ELSE
faul:=faul+1;
END_IF
my_BUFr:='';
send:=FALSE;
start_TON:=FALSE;
count:=count+1;
END_IF
IF count=1000 THEN
web_stat:=3;
END_IF
3:
finish:=SysSockClose(sock);
END_CASE

Может, кто сталкивался с этой проблемой. Дайте совет, как её решить.

Andy
21.10.2010, 09:36
брандмауэр не пускает? проверьте сниффером уходят ли пакеты (отправляйте их на другой пк)

Sergey_Cherepovets
22.10.2010, 02:15
Брэндмауэр пускает. ПК с ПЛК(и ПЛК с ПК) пингуются отлично. И проблему решил. Использоал библиотеку WagoLibEthernet.lib Теперь все работает отлично. Спасибо за помощь.

Andy
22.10.2010, 12:39
библиотеку на стороне плк? ваговская работает с овном?

Sergey_Cherepovets
27.10.2010, 22:19
Да библиотека WagoLibEthernet на стороне ПЛК (Я там взял блок UDP_Server). На стороне ПК взял компонент NMUP из палитры FASTNET(Билдер). Все работает.

lara197a
27.10.2010, 22:37
я читал про то, что ваго в кодесисе программируют, но не разу с ними не сталкивался.
не приходилось ли работать с модулями скоростного счета и
ссылочку на библиотеки сбрось пожалуйста.

Sergey_Cherepovets
27.10.2010, 23:23
Нет, с этим пока что не сталкивался. Вот ссылка на страницу, откуда я скачал библиотеку WagoLibEthernet_01http://www.wago.com/wagoweb_china/public/navigate/nm9mpl_e.htm