PDA

Просмотр полной версии : Нужна помощь с передачей данных от ПЛК 110 к ПК



Fudz
06.07.2012, 12:32
НУЖНА ПОМОЩЬ. Не получается настроить передачу данных между ПЛК110 и ПК по UDP. Если можно пример настройки плк.

capzap
06.07.2012, 13:19
А кто реализует на стороне ПК обмен? Или Вам только пример для плк? Если да то поищите такую библиотеку TcpUdpLib она идет с примерами использования

Fudz
06.07.2012, 13:27
нашел пример TcpUdpLibExample но в нем не хватает библиотеки TcpUdpLib.lib не могли бы вы подсказать где ее найти или выложить эту библиотеку

capzap
06.07.2012, 14:38
Помоему там должна быть и сама библиотека в виде проекта, на меня не расчитывайте, я в пути так что нет возможности ничего выложить, я её брал на оф.сайте S3

Fudz
06.07.2012, 16:03
ок спс буду разбираться с программой

Fudz
09.07.2012, 12:25
появился вопрос плк отправляет в сеть udp пакет с адресом 255.255.255.255. как сделать так чтобы плк отправлял пакет на определенный адрес?

capzap
09.07.2012, 12:32
мне кажется Вы за основу взяли пример приема UDP пакетов, для передачи адрес получателя и порт указываются при инициализации

Fudz
09.07.2012, 12:52
для отправки udp пакета я должен написать примерно такой код ?

PROGRAM UDPProducer
VAR
diSendSocket : DINT;
iPort : INT:=4343;
stDestIPAddress : STRING := '10.0.6.0';
diRecvSocket: DINT;
bySend :WORD;
bSent: BOOL;
bActive: BOOL;
cycle: INT:=0;
MV1:WORD;
END_VAR

IF bActive THEN
IF diSendSocket = 0 THEN
diSendSocket := UdpOpenSendSocket(iPort);
END_IF


MV1.0:=1;
MV1.1:=0;
MV1.2:=1;
MV1.3:=0;
MV1.4:=0;
MV1.5:=0;
MV1.6:=1;
MV1.7:=1;
MV1.8:=0;
MV1.9:=1;
MV1.10:=1;
MV1.11:=0;
MV1.12:=0;
MV1.13:=1;
MV1.14:=0;
MV1.15:=1;
bySend:=MV1;

IF diSendSocket > 0 AND bSent THEN
bSent := FALSE;
UdpSendData(diSendSocket, iPort, stDestIPAddress, ADR(bySend), SIZEOF(bySend));
END_IF;

capzap
09.07.2012, 13:07
однозначно сказать не возможно, хотя бы потому, что неизвестна маска Вашей подсети, для С это номер сети а не конкретного хоста, для других такой адрес может встречаться

Fudz
09.07.2012, 13:17
сеть только мeжду ПЛК и ПК. настройки плк следующие IP 10.0.6.10 GATE 10.0.6.1 MASK 255.255.255.0. Настройки ПК IP 10.0.6.0 маска 255.255.0.0. Может я неправильно что-то настроил???

capzap
09.07.2012, 13:44
сделайте маску у Всех одинаковой: 255.255.255.0, адрес у ПЛК оставляете, у ПК установите 10.0.6.11 и вот по этому адерсу стучитесь, должно все работать

Fudz
09.07.2012, 14:24
спс буду пробовать

Fudz
09.07.2012, 14:42
сделал все как вы сказали но все ровно шлются udp пакеты на адрес 255.255.255.255

capzap
09.07.2012, 16:50
попробуйте еще разобрать пример в библиотеке oscat-network, я сейчас не в состоянии добраться до реального плк, чтоб выложить действительно работоспособный пример