Добрый день. В данный момент таких планов нет.
Вид для печати
Добрый день!
Прошу помочь разобраться.
Контроллер ПЛК210-13CS (выпуск 11.25) -2 штуки.
Прошивка 3.7.0331.0614 таргет в МЕНЕЖДЕР ПАКЕТОВ 3.5.17.35 (где УСТАНОВКА СОЕДИНЕНИЯ правда почему то пишет 3.5.17.30 / Там где можно обновить устройство выбрано PLC210-13 версия 3.5.17.3004)
Все компилируется, вроде работает. Но беспокоит то что в вкладке RightSide (RightSide-13) в строке Связь CPU c устройством каждые 5-10 сек прибавляется счетчик ошибок.
Взял второй контроллер без всяких настроек залил в него пустой проэкт и не нем такая же история.
Как с этим побороться?
Добрый день.
Напишите, пожалуйста, на support@owen.ru, чтобы мы смогли более детально изучить вашу проблему.
На наших стендовых образцах она не воспроизводится.
Добрый день! Имеется автоматизированная система управления освещением на базе ПЛК210 (Master) и МВ210-311 (Slave tcp/ip). Управление программой происходит с помощью панели оператора СП315Р (панель Slave через tcp/ip). Спустя некоторое время пропадает связь с контроллером, пинг не идёт. Если во время потери связи переставить кабель из Ethernet 1 в другие свободные Ethernet 2,3 связь восстанавливается, но спустя сутки теряется связь и на другом порте Ethernet. Если отключить плк от общей сети, ничего не меняется, пинг через Ethernet не идёт. При доступе через micro USB, в настройках Ethernet указан как рабочий.
Здравствуйте!
ПЛК210-03
Хочу 1 массив с переменными "Panel: ARRAY[0..350] OF WORD;" (которые взаимодействуют с панелью через библиотеку OwenCommunication) писать в файл при необходимости, а так же восстанавливать эти данные из файла в обратно массив.
А то при глобальных изменениях конфигурации массив бывает обнуляется, несмотря на то что он объявлен как VAR_GLOBAL PERSISTENT RETAIN
Какими средствами это можно реализовать, желательно самым простым способом? Если есть пример, буду очень благодарен
Добрый день.
Если вы руками прописали этот "VAR_GLOBAL PERSISTENT RETAIN" в каком-то вашем списке глобальных переменных - то это ожидаемое поведение.Цитата:
несмотря на то что он объявлен как VAR_GLOBAL PERSISTENT RETAIN
Для использования PERSISTENT-переменных нужно создавать специальный объект и объявлять переменные именно в нем.
Вложение 87431
См. библиотеку SysFile.Цитата:
писать в файл при необходимости, а так же восстанавливать эти данные из файла в обратно массив. <...> Какими средствами это можно реализовать, желательно самым простым способом?
Пример записи показан здесь:
https://oscat.ru/wp-content/Video/Co...35_SysFile.mp4
Чтение происходит аналогичным образом с помощью функции SysFileRead.
PERSISTENT- переменные конечно созданны в специальном объекте, как вы показали
Пробовал разобраться с библиотекой SysFile и CAA File - Оказалось для меня сложновато, нашел более простое решение в https://youtu.be/u3xxEx9WEts?si=CBtkXOy-ygm_o2aJ
PROGRAM PLC_PRG
VAR
xSaveRetainToFile: BOOL;
xRestoreRetainFromFile: BOOL;
sPathToRetainFile: STRING:='Retain.bin';
pApp: POINTER TO CmpApp.APPLICATION;
udiResult: UDINT;
END_VAR
-------------------------------------------------------
IF xSaveRetainToFile THEN
pApp:=CmpApp.AppGetCurrent(ADR(udiResult));
udiResult:= CmpApp.AppStoreRetainsInFile(pApp, sPathToRetainFile);
xSaveRetainToFile:=FALSE;
END_IF
IF xRestoreRetainFromFile THEN
pApp:= CmpApp.AppGetCurrent(ADR(udiResult));
udiResult:= CmpApp.AppRestoreRetainsFromFile(pApp, sPathToRetainFile);
xRestoreRetainFromFile:=FALSE;
END_IF
***********
2 кнопки и все работает! Если кто то искал решение то есть готовое
Встречаются проблемы когда почти невозможно подключиться к плк по ssh, через вэб-интерфейс. Иногда удается зайти в консоль, но максимум можно выполнить одну две команды, потом все зависает на мертво. Мне удается воспроизвести это состояние при подключенном ssh выполнить команду: /etc/init.d/network restart После этого начинается тягомотина которую я описал. Как её решить это добиваться входа в консоль и выполнить последовательно
и закрыть сессию желательно раньше чем отведенные 10 секундЦитата:
1) /etc/init.d/owen-cloud-proxy stop
затем если удастся вторую команду, если нет то в следующем удачном сеансе
2) (sleep 10 && /etc/init.d/network restart) &
после этого все восстановиться, отклик будет адекватный и можно вернуть подключение к овен-облаку
/etc/init.d/owen-cloud-proxy restart, возможно можно использовать start ведь был перевод в стоп
как я к этому пришел
выполнил команду logread | grep -i "network\|bridge\|error"
там было полностью забито строчками: Fri Mar 06 08:23:39 2026 daemon.err owen-cloud[32160]: 2026/02/06 8:23:39 error: socket(8) closed by other side
сперва пытался убить процесс который искал ps | grep owen-cloud ни чего не выходило, потому что процесс создавался по новой
пробовал остановить /etc/init.d/owen-cloud stop но возвращалось -sh: /etc/init.d/owen-cloud: not found
пришлось искать командой find / -name "*owen-cloud*" -type f 2>/dev/null
список большой, но из-за зависания увидел только первые две строчки, ну и дальше уже избавился от проблемыЦитата:
/etc/init.d/owen-cloud-proxy
/rom/etc/init.d/owen-cloud-proxy
/rom/usr/bin/owen-cloud
/rom/usr/bin/owen-cloud.sh
/rom/usr/lib/opkg/info/owen-cloud-proxy.control
/rom/usr/lib/opkg/info/owen-cloud-proxy.list
/rom/usr/lib/opkg/info/owen-cloud-proxy.postinst
/tmp/lock/procd_owen-cloud-proxy.lock
/usr/bin/owen-cloud
/usr/bin/owen-cloud.sh
/usr/lib/opkg/info/owen-cloud-proxy.control
/usr/lib/opkg/info/owen-cloud-proxy.list
/usr/lib/opkg/info/owen-cloud-proxy.postinst
PS что касается eth1, продолжил я творить зависания и в одном из логов, было так
Ключевые сообщения:Цитата:
logread | grep -i "network\|bridge\|error"
Fri Mar 06 13:57:53 2026 daemon.notice netifd: Network device 'lo' link is up
Fri Mar 06 13:57:54 2026 daemon.notice netifd: Network device 'eth0' link is up
Fri Mar 06 13:57:54 2026 daemon.notice netifd: Network device 'eth2' link is up
Fri Mar 06 13:57:54 2026 user.info mstpd: init: reloading (bridge = 'br-lan')...
Fri Mar 06 13:57:57 2026 daemon.info mstpd[3071]: create_br: Add bridge br-lan
Fri Mar 06 13:57:57 2026 daemon.info mstpd[3071]: create_if: Add iface eth1 as port#1 to bridge br-lan
Fri Mar 06 13:57:57 2026 daemon.info mstpd[3071]: error, rtnl_talk: RTNETLINK answers
Fri Mar 06 13:57:57 2026 daemon.info mstpd[3071]: error, MSTP_OUT_set_state: br-lan:eth1 Couldn't set kernel bridge state blocking
Fri Mar 06 13:57:57 2026 daemon.info mstpd[3071]: create_if: Add iface eth2 as port#2 to bridge br-lan
Fri Mar 06 13:57:57 2026 daemon.info mstpd[3071]: create_if: Add iface eth3 as port#3 to bridge br-lan
daemon.info mstpd[3071]: error, rtnl_talk: RTNETLINK answers
Ошибка взаимодействия с ядром Linux через Netlink‑сокет.
Указывает на проблему при выполнении сетевой операции на уровне ядра.
daemon.info mstpd[3071]: error, MSTP_OUT_set_state: br-lan:eth1 Couldn't set kernel bridge state blocking
Не удалось перевести порт eth1 в состояние blocking (блокировка) в рамках протокола MSTP.
Это может привести к образованию сетевых петель или некорректной работе STP.
daemon.notice mstpd: init: reloading (bridge = 'br-lan')...
Сервис mstpd (Multiple Spanning Tree Protocol daemon) выполняет перезагрузку конфигурации моста br-lan.
Перезагрузка может быть вызвана изменением конфигурации или ошибкой.
Остальные сообщения (create_br, create_if) показывают, что мост создаётся и порты добавляются, но с ошибками на eth1.