PDA

Просмотр полной версии : ПЛК150 и TCP



Алексей Терентьев
09.02.2015, 16:11
Здравствуйте. На одном объекте потребовалось реализовать обмен данными между двумя контроллерами. Конечно на форуме, да и на диске (Пример обмена по протоколу Modbus TCP через порт Ethernet), нашел пример как это сделать. Взял 2 контроллера ПЛК150 и попробовал реализовать обмен данными через Modbus TCP. Один контроллер- мастер, второй слейв. Мастер постоянно показывает ошибку 85. Попробовал в качестве слева использовать ПК, на котором запустил TCP сервер. В результате выяснил, что мастер даже не пытается подключаться. Отличие от примера - другой контроллер
PLCInfo
PLC model MODEL PLC 150
Binary VERSION 2.14.0
Need Target version 2.10
Compiled: 10:35:48 May 16 2011
MAC 6A:77:00:00:A0:AF
IP 192.168.1.13
GATE 192.168.1.1
MASK 255.255.255.0
PIC upper version is 07
Licence unlimited
Current DAC
PIC lower version is 0f

Что я делаю не так?


Попробовал реализовать обмен при помощи SysLibSockets. Результат лучше. Происходит подключение, хотя результат функции SysSockConnect() = FALSE (SysSockBind() = TRUE), а при передаче данных результат = SOCKET_INVALID, хотя данные на ПК приходят. Сервер на ПК шлет обратно полученные данные и функция SysSockRecv() показывает принятые данные.

Получается не совсем корректная работа библиотеки. Стоит ли ей вообще пользоваться?

Scream
09.02.2015, 19:55
Пользоваться или нет решать вам.
Поиск по форуму разъяснит ваши предположения насчет этих функций.
Моё мнение - бибка работает не совсем так как описанно в руководстве, но все проблемы решаются и работает, в целом, на ура.

Алексей Терентьев
10.02.2015, 04:40
Ну с библиотекой я справлюсь. Основной вопрос в том, почему не работает запрос от Modbus мастера, реализованный "штатными" средствами. На форуме есть несколько тем об этом и везде ссылка на вышеуказанный пример.