PDA

Просмотр полной версии : Примеры по сокетам для ПЛК110/160 M02 и ПЛК1хх



Мастеренко Иван
05.03.2020, 13:37
Добрый день. Для контроллеров ПЛК110/160 M02 и ПЛК1хх подготовлены примеры передачи данных по сетевым протоколам TCP и UDP с помощью библиотеки SysLibSockets.lib (https://owen.ru/product/codesys_v2/libraries).
Библиотека SysLibSockets.lib содержит все необходимые функции для организации обмена на транспортном уровне. Контроллеры ПЛК110/160 M02 и ПЛК1хх имеют свои особенности при работе с библиотекой SysLibSockets.lib, которые описаны в документации CODESYS V2.3. Программная реализация обмена через сокеты (https://ftp.owen.ru/CoDeSys23/10_Sockets/CDSv2.3_Sockets_v1.0.pdf). В документации представлена совместимость функций, особенности работы для разных линеек контроллеров и описаны примеры в CODESYS.

Программы клиента и сервера для ПЛК110/160 M02 и ПЛК1хх:
● TCP ПЛК110/160 М02 (https://ftp.owen.ru/CoDeSys23/10_Sockets/TCP_PLC110_160m02.zip)
● TCP ПЛК1хх (https://ftp.owen.ru/CoDeSys23/10_Sockets/TCP_PLC1xx.zip)

● UDP ПЛК110/160 M02 (https://ftp.owen.ru/CoDeSys23/10_Sockets/UDP_PLC110_160m02.zip)
● UDP ПЛК1хх (https://ftp.owen.ru/CoDeSys23/10_Sockets/UDP_PLC1xx.zip)

Также подготовлен пример NTP клиента на базе примера UDP клиент для контроллеров ПЛК110/160 M02 – NTP_ClientPLC (https://ftp.owen.ru/CoDeSys23/10_Sockets/NTP_Client_PLC.zip).

Библиотека Modbus TCP (клиент/сервер) - Modbus_TCP (https://ftp.owen.ru/CoDeSys23/10_Sockets/modbus_tcp.zip) (бета-версия).

Для обмена по протоколу MQTT можно воспользоваться библиотекой (https://owen.ru/forum/showthread.php?t=20265&page=2&p=227644&viewfull=1#post227644) от пользователя Artshw. Пример обмена по протоколу MQTT – MQTT_OwenPLC (https://ftp.owen.ru/CoDeSys23/10_Sockets/MQTTOwenPLC_upd.zip).

Hemann
03.04.2020, 17:58
Иван, добрый день!

Может и глуповатый вопрос, но все-таки. Хотел попробовать в учебных целях подключить МК210-302 к ПЛК110[M02] через библиотеку SysLibSocket. Что нужно для этого сделать? Или это вообще глупая затея?

Мастеренко Иван
04.04.2020, 13:02
Добрый! Затея хорошая. Нужно с транспортного уровня перейти на прикладной (modbus). Для этого необходимо правильно сформировать посылку серверу (мк210-302).
Такой пример уже обсуждался на форуме (https://owen.ru/forum/showthread.php?t=26318&page=4&p=291625&viewfull=1#post291625).

Hemann
04.04.2020, 16:49
Иван, спасибо! Посмотрел, попробовал, но пока ничего не получается. На всякий случай шлю проект, может я чего-то накосячил? Забыл сказать. IP-адрес МК302 = 10.0.6.20, порт = 502, Modbus-адрес = 1. Последнее что мне удалось добиться - это то что на МК302 периодически подмигивает Eth1, а аварийный светодиод тоже горит, но подмигивает в противофазе Eth1

Hemann
05.04.2020, 12:08
Иван, приветствую!

Я переделал программу на основе примера TcpClient_PLCm02.pro, связь пошла. Но есть несколько вопросов. Во-первых, я вижу, что переменная hClientSocket типа HANDLE постоянно увеличивается. Хоть она и имеет длину 32 бита и мне на столе ее хватит на очень долго, она когда-то закончится. А если это будет уже на объекте, что произойдет? Возможно я что-то делаю не так? А во-вторых, прошу Вас посмотреть, правильно ли я разделяю вызовы чтение и запись, чтобы они не мешали друг другу? По-моему, чтение-запись начали подтормаживать, но может это только кажется (я делал 2 варианта проекта). Ну и в-третьих. Сейчас я работаю с одним модулем МК210. А если понадобится работать с несколькими, то как разделять доступ к ним, чтобы они друг другу не мешали?
Проекты прикрепляю.

capzap
05.04.2020, 17:24
Во-первых, я вижу, что переменная hClientSocket типа HANDLE постоянно увеличивается.

возможно в проекте для примера использования предполагали одно, а в итоге поучилось не очень. Но раз переход идет в закрытие сокета, то ни чего особенно страшного, главное есть ограничение на одновременно открытые сокеты. А та счетчик не сможет перепониться, начнется с другой стороны диапазона чисел

Hemann
05.04.2020, 20:18
Ну вот, что-то наваял. Теперь не перебираются постоянно хэндлы. Пожалуй, можно было и по-оптимальнее сделать, но не стал сильно переделывать программу, честно "стыренную" из примера :)
Если будет конструктивная критика - буду рад услышать.

Spawn
08.09.2020, 13:39
Может маленько не в тему, поправьте если ошибся адресом.
Подскажите, пожалуйста, на PLCWinNT V2.4.7.42, том, что вместе с CDS 2.3 ставится, получится с сокетами поэкспериментировать?

Spawn
09.09.2020, 02:01
Разобрался, всё работает...по крайней мере клиента из примеров со сторонним TCP-сервером связать удалось...только пример TCP клиента из шапки для ПЛК1хх ,на PLCWinNT, без исправлений не работает.

Евгений Кислов
09.09.2020, 06:27
пример TCP клиента из шапки для ПЛК1хх, кстати, "из коробки" не рабочий.

Вы его запускали именно на ПЛК1хх или на PLCWinNT?
Если на ПЛК1хх - на каком шаге возникли проблемы?

Spawn
09.09.2020, 07:41
Вы его запускали именно на ПЛК1хх или на PLCWinNT?
Если на ПЛК1хх - на каком шаге возникли проблемы?

Запускал на PLCWinNT.

Проблема в примере для ПЛК1хх на шаге CLIENT_STATE_CONNECT с этим:

50989

С портом те же "грабли".

Евгений Кислов
09.09.2020, 07:54
Примеры предназначены для запуска именно на ПЛК Овен - на других платформах, естественно, будут свои нюансы.

Spawn
09.09.2020, 08:52
Почему тогда с примерами для М02 (т.е. там, где используются функции SysSockHtons и SysSockHtonI) этой проблемы нет? Не понимаю какая взаимосвязь порядка передаваемых байт и конкретной платформы?

capzap
09.09.2020, 09:21
Пример здесь https://owen.ru/forum/showthread.php?t=29703&p=291852&viewfull=1#post291852 работает с виртуальным контроллером, овеновский плк работают не как все из-за неправильно понимания в свое время описания бибки

Евгений Кислов
09.09.2020, 09:26
Почему тогда с примерами для М02 (т.е. там, где используются функции SysSockHtons и SysSockHtonI) этой проблемы нет? Не понимаю какая взаимосвязь порядка передаваемых байт и конкретной платформы?

Потому что "примеры предназначены для запуска именно на ПЛК Овен".
Поэтому заявления типа "пример TCP клиента из шапки для ПЛК1хх, кстати, "из коробки" не рабочий." справедливо делать только в том случае, если вы запускаете его на ПЛК ОВЕН.

50990

Spawn
09.09.2020, 10:00
Пример здесь https://owen.ru/forum/showthread.php?t=29703&p=291852&viewfull=1#post291852 работает с виртуальным контроллером, овеновский плк работают не как все из-за неправильно понимания в свое время описания бибки

capzap, спасибо за подсказку. Я это понял еще до того, как задал свои предыдущие вопросы, когда пробовал примеры обоих версий ПЛК и увидел, что один из примеров работает без исправлений, а второй нет. Честно говоря, я ждал подобный ответ от Евгения. Задал вопросы не с целью флуда, а чтобы в будущем, если кто-нибудь будет идти по тем же шагам, по которым сейчас иду я (с PLCWinNT), прочитав эти сообщения, понял в чем загвоздка.


Потому что "примеры предназначены для запуска именно на ПЛК Овен".
Поэтому заявления типа "пример TCP клиента из шапки для ПЛК1хх, кстати, "из коробки" не рабочий." справедливо делать только в том случае, если вы запускаете его на ПЛК ОВЕН.

50990

Евгений, спасибо за наводку по документации, но я имею привычку "сначала читать документацию, а потом уже ломать". Можно же было просто указать, например, что у линейки ПЛК1хх нестандартная реализация работы с сокетами, отличающаяся от других устройств, и ПЛК1хх сами переворачивают байты. Что в документации подобные моменты ни как не упоминаются, что в Ваших ответах, и информация типа "Функция не поддержана в линейке ПЛК1хх." не привносит никакой ясности.

Всем спасибо за помощь.

Евгений Кислов
09.09.2020, 10:08
и ПЛК1хх сами переворачивают байты.

Мы дополним информацию в описании, спасибо за замечание.

Upd. - документация дополнена.

LAM
18.12.2020, 18:52
День добрый.
Что-то я запутался с MQTT, если один топик читаем, и один публикуем, как в примере, вроде все понятно.
А если необходимо несколько топиков читать и писать, работает как-то непредсказуемо.
Пробовал и несколько экземпляров MQTT_Client вызывать, и один экземпляр последовательно с разными топиками в одном цикле ПЛК, и один экземпляр последовательно в разных циклах ПЛК.
Подскажите, как правильно организовать обмен?
В идеале, в виде примера хотя бы два топика на чтение и два на запись.
Хочу прикрутить MQTT на ПЛК-110-60 М02.

Мастеренко Иван
21.12.2020, 18:42
День добрый.
Что-то я запутался с MQTT, если один топик читаем, и один публикуем, как в примере, вроде все понятно.
А если необходимо несколько топиков читать и писать, работает как-то непредсказуемо.
Пробовал и несколько экземпляров MQTT_Client вызывать, и один экземпляр последовательно с разными топиками в одном цикле ПЛК, и один экземпляр последовательно в разных циклах ПЛК.
Подскажите, как правильно организовать обмен?
В идеале, в виде примера хотя бы два топика на чтение и два на запись.
Хочу прикрутить MQTT на ПЛК-110-60 М02.

Добрый день.
Обновил пример по MQTT и библиотеку MQTTOwenPlc_udp.lib: https://owen.ru/forum/showthread.php?t=32898&p=327664&viewfull=1#post327664
Публикация выполняется последовательно в два топика (по временному интервалу) и добавлены 2 топика подписчика.

LAM
29.12.2020, 15:02
Добрый день.
Обновил пример по MQTT и библиотеку MQTTOwenPlc_udp.lib: https://owen.ru/forum/showthread.php?t=32898&p=327664&viewfull=1#post327664
Публикация выполняется последовательно в два топика (по временному интервалу) и добавлены 2 топика подписчика.

День добрый.
Спасибо за пример.
Но по идее правильнее тогда
sPublic: ARRAY [0..1] OF STRING:='Test0', 'Test1';
Публиковать ведь нужно разные сообщения.

И дальше получается что данные с брокера, из топика на который подписаны, попадают по порядку сначала в asSubscriber[0], потом в asSubscriber[1] и так далее (если массивы расширить до большего числа элементов, то это более наглядно просматривается).
(*когда получаем сообщение от издателя xMess равна TRUE)
IF xMess THEN
iNumberSubTopic:=iNumberSubTopic+1;
xSub:=TRUE;
xMess:=FALSE;
END_IF
Но ведь при большом числе топиков, они не все обновляются по порядку, и соответственно в массив получения они будут попадать по порядку обновления а не по тем топикам где находятся.
получается что необходимо доработать библиотеку и внести на выход еще одну переменную, чтоб при получении понимать в какой топик пришло новое значение.
В общем, запутался еще больше. :D

-=Vovka=-
13.01.2021, 11:24
Программы клиента и сервера для ПЛК110/160 M02 и ПЛК1хх
TCP ПЛК110/160 М02
Вот смотрю в примере есть функция StopPrg, но она нигде в коде не вызывается, а по идее по таймеру должна вызываться?

Евгений Кислов
13.01.2021, 11:27
Вот смотрю в примере есть функция StopPrg, но она нигде в коде не вызывается, а по идее по таймеру должна вызываться?

Она вызывается по событию, см. документацию к примерам, п. 4.4:
https://ftp.owen.ru/CoDeSys23/10_Sockets/CDSv2.3_Sockets_v1.0.pdf

-=Vovka=-
22.01.2021, 09:22
Добрый день!
Ничего не получается с примерами! Не могу понять в чем причина
Выложите, пожалуйста, рабочий пример для ПЛК110-30 МО2 с кодом приема и отправки данных.
И какой программной под Windows 7 можно проверить обмен с ПЛК?

Евгений Кислов
22.01.2021, 09:34
Добрый день!
Ничего не получается с примерами! Не могу понять в чем причина
Выложите, пожалуйста, рабочий пример для ПЛК110-30 МО2 с кодом приема и отправки данных.
И какой программной под Windows 7 можно проверить обмен с ПЛК?

Добрый день.
Рабочие примеры выложены в первом сообщении.
Для проверки можно использовать, например, Hercules Setup Utility.

-=Vovka=-
22.01.2021, 09:51
Рабочие примеры выложены в первом сообщении.

Скачиваю TCP ПЛК110/160 М02 и открываю проект TcpServerPLCm02.pro:
53139

Евгений Кислов
22.01.2021, 09:53
Скачиваю TCP ПЛК110/160 М02 и открываю проект TcpServerPLCm02.pro:
53139

Ресурсы - Настройка целевой платформы - выберите нужный таргет-файл

-=Vovka=-
22.01.2021, 10:12
1. В PLC_PRG по какому событию отлавливать прием от клиента?
2. В Hercules после отправки сообщения клиенту зарывается соединение - так и должно быть? Т.е. обмен по принципу: Соединились - Обмен - Закрыли соединение ?

Евгений Кислов
22.01.2021, 10:17
1. В PLC_PRG по какому событию отлавливать прием от клиента?
2. В Hercules после отправки сообщения клиенту зарывается соединение - так и должно быть? Т.е. обмен по принципу: Соединились - Обмен - Закрыли соединение ?

1. В рамках примера это не реализовано (только если не контролировать изменение sReadFromClient), вы можете добавить собственный код для этого.
2. Да, сервер закрывает соединение в случае отсутствия запросов.

LAM
06.03.2021, 09:07
День добрый.
Спасибо за пример.
Но по идее правильнее тогда
sPublic: ARRAY [0..1] OF STRING:='Test0', 'Test1';
Публиковать ведь нужно разные сообщения.

И дальше получается что данные с брокера, из топика на который подписаны, попадают по порядку сначала в asSubscriber[0], потом в asSubscriber[1] и так далее (если массивы расширить до большего числа элементов, то это более наглядно просматривается).
(*когда получаем сообщение от издателя xMess равна TRUE)
IF xMess THEN
iNumberSubTopic:=iNumberSubTopic+1;
xSub:=TRUE;
xMess:=FALSE;
END_IF
Но ведь при большом числе топиков, они не все обновляются по порядку, и соответственно в массив получения они будут попадать по порядку обновления а не по тем топикам где находятся. Попробуйте расширить количество топиков хотя бы до 10.
получается что необходимо доработать библиотеку и внести на выход еще одну переменную, чтоб при получении понимать в какой топик пришло новое значение.
В общем, запутался еще больше.

Samel
23.03.2021, 08:26
Добрый день. Для контроллеров ПЛК110/160 M02 и ПЛК1хх подготовлены примеры передачи данных по сетевым протоколам TCP и UDP с помощью библиотеки SysLibSockets.lib (https://owen.ru/product/codesys_v2/libraries).
Библиотека SysLibSockets.lib содержит все необходимые функции для организации обмена на транспортном уровне. Контроллеры ПЛК110/160 M02 и ПЛК1хх имеют свои особенности при работе с библиотекой SysLibSockets.lib, которые описаны в документации CODESYS V2.3. Программная реализация обмена через сокеты (https://ftp.owen.ru/CoDeSys23/10_Sockets/CDSv2.3_Sockets_v1.0.pdf). В документации представлена совместимость функций, особенности работы для разных линеек контроллеров и описаны примеры в CODESYS.

Программы клиента и сервера для ПЛК110/160 M02 и ПЛК1хх:
● TCP ПЛК110/160 М02 (https://ftp.owen.ru/CoDeSys23/10_Sockets/TCP_PLC110_160m02.zip)
● TCP ПЛК1хх (https://ftp.owen.ru/CoDeSys23/10_Sockets/TCP_PLC1xx.zip)

● UDP ПЛК110/160 M02 (https://ftp.owen.ru/CoDeSys23/10_Sockets/UDP_PLC110_160m02.zip)
● UDP ПЛК1хх (https://ftp.owen.ru/CoDeSys23/10_Sockets/UDP_PLC1xx.zip)

Также подготовлен пример NTP клиента на базе примера UDP клиент для контроллеров ПЛК110/160 M02 – NTP_ClientPLC (https://ftp.owen.ru/CoDeSys23/10_Sockets/NTP_Client_PLC.zip).

Библиотека Modbus TCP (клиент/сервер) - Modbus_TCP (https://ftp.owen.ru/CoDeSys23/10_Sockets/modbus_tcp.zip) (бета-версия).

Для обмена по протоколу MQTT можно воспользоваться библиотекой (https://owen.ru/forum/showthread.php?t=20265&page=2&p=227644&viewfull=1#post227644) от пользователя Artshw. Пример обмена по протоколу MQTT – MQTT_OwenPLC (https://ftp.owen.ru/CoDeSys23/10_Sockets/MQTTOwenPLC_upd.zip).

Добрый день. Есть описание библиотеки modbus_tcp? Смогу я ей читать функцией 0x01, 0x02 по одной ячейки?

LAM
08.04.2021, 18:26
Добрый день.
Обновил пример по MQTT и библиотеку MQTTOwenPlc_udp.lib: https://owen.ru/forum/showthread.php?t=32898&p=327664&viewfull=1#post327664
Публикация выполняется последовательно в два топика (по временному интервалу) и добавлены 2 топика подписчика.

Добрый день.
В том примере что вы сделали, пишет в топики отлично. а вот при чтении данные попадают куда им хочется, совсем не в те топики куда должны.
Попробуйте растяните пример на большее количество топиков, и вы увидите.

-=Vovka=-
20.05.2021, 09:54
Добрый день!
Появилась такая проблема. Обмен работает какое-то время, но потом перестает!
Посмотрел, все крутится в цикле: SERVER_STATE_CREATE - SERVER_STATE_BIND - SERVER_STATE_CLOSE
Вот код:


CASE eState OF

SERVER_STATE_CREATE:
hServerSocket := SysSockCreate( SOCKET_AF_INET, SOCKET_STREAM, SOCKET_IPPROTO_TCP );
IF hServerSocket <> SOCKET_INVALID THEN
SysSockSetOption(hServerSocket, SOCKET_SOL, c_diSoNbio, ADR(diOption), SIZEOF(diOption) );
eState := SERVER_STATE_BIND;
ELSE
eState := SERVER_STATE_CLOSE;
END_IF

SERVER_STATE_BIND:
stServerSettings.sin_family := SOCKET_AF_INET;
stServerSettings.sin_addr := SysSockHtonl(SOCKET_INADDR_ANY);
stServerSettings.sin_port := SysSockHtons(wPort);
xBinded := SysSockBind(hServerSocket, ADR(stServerSettings), SIZEOF(stServerSettings) );
IF xBinded THEN eState := SERVER_STATE_LISTEN;
ELSE eState := SERVER_STATE_CLOSE;
END_IF

SERVER_STATE_LISTEN:
xListened := SysSockListen(hServerSocket, INT_TO_DINT(c_iMaxConnections) );
IF xListened THEN eState := SERVER_STATE_ACCEPT;
ELSE eState := SERVER_STATE_CLOSE;
END_IF

SERVER_STATE_CLOSE:
SysSockShutdown(hServerSocket, c_diHow);
SysSockClose(hServerSocket);
hServerSocket := SOCKET_INVALID;
eState := SERVER_STATE_CREATE;

-=Vovka=-
20.05.2021, 11:47
Мо2 ? На результаты сетопшина, бинда и листена можно покласть. Да и за раз сделать.
Да, МО2
Как сделать? Можно пример рабочего кода?

Spawn
24.10.2021, 10:57
Товарищи форумчане, всем доброго времени суток.

Подскажите, пожалуйста, возможно ли каким-либо "волшебным" способом на ПЛК100 (сервер) определить IP-адрес подключившегося клиента?

SOCKADDRESS.sin_addr даже в процессе обмена данными равен нулю...

Вопрос так же относится и к представителям ОВЕН, потому как в том же PLCWinNT24 с этим проблем нет.

Задача организовать связь сервера с одним единственным клиентом, имеющим определенный IP-адрес.

Мастеренко Иван
25.10.2021, 14:33
Добрый день!
Появилась такая проблема. Обмен работает какое-то время, но потом перестает!
Посмотрел, все крутится в цикле: SERVER_STATE_CREATE - SERVER_STATE_BIND - SERVER_STATE_CLOSE
Вот код:


CASE eState OF

SERVER_STATE_CREATE:
hServerSocket := SysSockCreate( SOCKET_AF_INET, SOCKET_STREAM, SOCKET_IPPROTO_TCP );
IF hServerSocket <> SOCKET_INVALID THEN
SysSockSetOption(hServerSocket, SOCKET_SOL, c_diSoNbio, ADR(diOption), SIZEOF(diOption) );
eState := SERVER_STATE_BIND;
ELSE
eState := SERVER_STATE_CLOSE;
END_IF

SERVER_STATE_BIND:
stServerSettings.sin_family := SOCKET_AF_INET;
stServerSettings.sin_addr := SysSockHtonl(SOCKET_INADDR_ANY);
stServerSettings.sin_port := SysSockHtons(wPort);
xBinded := SysSockBind(hServerSocket, ADR(stServerSettings), SIZEOF(stServerSettings) );
IF xBinded THEN eState := SERVER_STATE_LISTEN;
ELSE eState := SERVER_STATE_CLOSE;
END_IF

SERVER_STATE_LISTEN:
xListened := SysSockListen(hServerSocket, INT_TO_DINT(c_iMaxConnections) );
IF xListened THEN eState := SERVER_STATE_ACCEPT;
ELSE eState := SERVER_STATE_CLOSE;
END_IF

SERVER_STATE_CLOSE:
SysSockShutdown(hServerSocket, c_diHow);
SysSockClose(hServerSocket);
hServerSocket := SOCKET_INVALID;
eState := SERVER_STATE_CREATE;



Добрый день.
Похоже на некорректное закрытие сокетов после сброса работы программы. Попробуйте привязать в системное событие "stop" закрытие сокетов. (стр. 30 https://ftp.owen.ru/CoDeSys23/10_Sockets/CDSv2.3_Sockets_v1.0.pdf )

Мастеренко Иван
26.10.2021, 16:54
Товарищи форумчане, всем доброго времени суток.

Подскажите, пожалуйста, возможно ли каким-либо "волшебным" способом на ПЛК100 (сервер) определить IP-адрес подключившегося клиента?

SOCKADDRESS.sin_addr даже в процессе обмена данными равен нулю...

Вопрос так же относится и к представителям ОВЕН, потому как в том же PLCWinNT24 с этим проблем нет.

Задача организовать связь сервера с одним единственным клиентом, имеющим определенный IP-адрес.

Добрый день!
Для старой линейки ПЛК1хх возможно только по протоколу UDP. IP-адрес клиента можно увидеть в sin_addr после выполнения функции SysSockRecvFrom.

Spawn
26.10.2021, 23:28
Иван, спасибо за подсказку.

Bahtijaro
09.11.2021, 04:41
Добрый день.
Прошу подсказать.
Имеется ПЛК 110-30 [М].
Для считывания данных с другого устройства по modbus tcp в конфигураторе ПЛК в строке состояния ошибки пишет - ошибка 84.
Модбас сканом удается считать регистры другого устройства.
Делали пустой проект с одним соединением по modbus tcp, все равно пишет ошибка 84.
Прошивка контроллера сейчас стоит 0.3.67.
Какие предпринять шаги для устранения данной проблемы?
Может быть обновить прошивку ?
Если обновить прошивку, то возможен ли даунгрейд прошивки ?

Филоненко Владислав
09.11.2021, 11:37
84 - проблемы с сокетами (например они кончились)

Валенок
09.11.2021, 18:41
У человека пустой проект. Конфигурация. Кончились ? Отлично))

Евгений Кислов
09.11.2021, 19:10
Добрый день.
Прошу подсказать.
Имеется ПЛК 110-30 [М].
Для считывания данных с другого устройства по modbus tcp в конфигураторе ПЛК в строке состояния ошибки пишет - ошибка 84.
Модбас сканом удается считать регистры другого устройства.
Делали пустой проект с одним соединением по modbus tcp, все равно пишет ошибка 84.
Прошивка контроллера сейчас стоит 0.3.67.
Какие предпринять шаги для устранения данной проблемы?
Может быть обновить прошивку ?
Если обновить прошивку, то возможен ли даунгрейд прошивки ?

Выложите ваш пустой проект с одним соединением, пожалуйста.

Филоненко Владислав
16.11.2021, 07:48
У человека пустой проект. Конфигурация. Кончились ? Отлично))

Если сделать проект где открывается сокет (но не закрывается по событию STOP), то через N перезаливок проекта они внезапно кончатся.