Страница 16 из 16 ПерваяПервая ... 6141516
Показано с 151 по 156 из 156

Тема: CODESYS V3.5. Онлайн-FAQ

  1. #151
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,230

    По умолчанию COM#33. Подключение к OwenCloud - известные проблемы

    Вопрос 1: в символьной конфигурации был включен экспорт комментариев - чтобы они отображались в OwenCloud в качестве названий параметров.
    После этого контроллер перестал подключаться к облаку. В чем может быть проблема?

    Ответ: при отправке комментариев в OwenCloud их длина обрезается до 31 символа.
    В результате такие "обрезанные" комментарии для разных переменных могут стать одинаковыми.

    Пример:

    Код:
    xVolume1_SensorFailed: BOOL; // ФС Отказ датчика уровня воды Емкость 1
    xVolume2_SensorFailed: BOOL; // ФС Отказ датчика уровня воды Емкость 2
    Для обоих переменных комментарии при их отправке в OwenCloud будут обрезаны до ФС Отказ датчика уровня воды Ем и станут одинаковыми.

    При разборе символьной конфигурации в OwenCloud в ряде конкретных случаев из-за таких повторяющихся имен могут возникнуть ошибки, из-за которых импорт конфигурации будет прерван, и связь контроллера с облаком не будет установлена. При этом всё зависит от сочетания переменных в символьной конфигурации - например, если в символьной конфигурации будут только две переменные, показанные выше (с совпадающим "обрезанным" именем) - то связь установится, но если в символьной конфигурации будут другие переменные, то при их определенном сочетании связь установлена не будет.

    Поэтому разработчик должен проанализировать комментарии к переменным, выбранным в символьной конфигурации, и исключить возможность того, что комментарии разных переменных будут совпадать (в том числе, при их обрезании до 31 символа).


    Вопрос 2: в проект была добавлена символьная конфигурация. Через некоторое время (измеряемое часами) в работе контроллера начинаются проблемы.
    Примеры таких проблем:
    • не удается подключиться к контроллеру из CODESYS
    • не отображается веб-визуализация
    • перестает работать обмен
    • на экране СПК пропадают изображения


    С чем это может быть связано?

    Ответ: в текущей реализации библиотеки OwenStorage (отвечающей за связь с OwenCloud) есть ошибка: если в символьной конфигурации нет ни одной переменной "элементарного" типа (BOOL, INT и т. д.) - то начинается утечка дескрипторов, приводящая к описанному поведению.
    Характерный признак утечки дескрипторов - отображение в логе контроллера сообщения "Could not open /dev/random: Too many open files".

    2024-05-07_12-54-55.png


    Обычно это проявляется у клиентов, добавляющих в символьную конфигурацию только экземпляры структур. Для решения проблемы достаточно добавить в символьную конфигурацию хотя бы одну переменную "элементарного" типа.
    Ошибка будет исправлена в следующей версии библиотеки, после чего данный ответ будет обновлен.

    Upd. - проблема устранена в прошивке 3.7.0228.1046.
    Ошибка исправлена в обновлении компонента OwenCloud (3.5.17.3003) в дереве проекта и библиотеки OwenStorage (3.5.17.32).

    Вопрос 3: для добавления контроллера в OwenCloud требуется указать его серийный номер.
    У моего контроллера в веб-конфигураторе серийный номер не отображается:

    sn.png

    Почему так случилось и что можно сделать?

    Ответ: такое может случиться из-за некорректно проведенной процедуры перепрошивки.
    Вам требуется отправить прибор в сервисный центр.


    Вопрос 4: для связи с OwenCloud контроллер должен быть подключен к сети, которая имеет доступ в интернет.
    Должны ли быть в ней открыты какие-то порты?

    Ответ: для связи с OwenCloud контроллер устанавливает клиентское соединение с ресурсом gate.owencloud.ru по порту 26502.
    Соответственно, никакие настройки сети не должны мешать ему это делать.

    Самый простой способ проверки - выполнить пинг до gate.owencloud.ru в веб-конфигураторе контроллера на вкладке Сеть/Диагностика:

    25-04-2024 8-57-24.png

    Если пинга нет - то проверьте корректность сетевых настроек контроллера на вкладке Сеть/Интерфейсы.
    В большинстве случаев проблема связана с тем, что не указан (или некорректно указан) IP-адрес шлюза.

    25-04-2024 9-00-55.png

    Если вы не знаете, какой адрес шлюза в вашей локальной сети - обратитесь к ее системному администратору.

  2. #152
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,230

    По умолчанию COM#34. Как увеличить максимальное число подключений для ФБ MB_TcpSlave?

    Вопрос: для настройки контроллера в режиме Modbus TCP Slave используем ФБ MB_TcpSlave из библиотеки OwenCommunication.
    Первый Modbus TCP клиент успешно опрашивает контроллер, но вот второй не может установить с ним соединение.
    Если отключаем первый клиент, то второй успешно подключается и опрашивает ПЛК.
    В чем может быть проблема?

    Ответ: по умолчанию ФБ MB_TcpSlave может обрабатывать только одно клиентское подключение.
    Чтобы увеличить максимальное число одновременно обрабатываемых клиентов - в менеджере библиотек выберите библиотеку OwenCommunication, найдите узел Settings и задайте параметру g_c_usiMaxCountClients нужное значение (в диапазоне 1...16).

    2024-06-06_8-32-03.png

  3. #153
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,230

    По умолчанию COM#35. Modbus TCP - опрос резервированных slave-устройств

    Начиная с версии плагина Modbus 4.4.0.0 стандартный компонент Modbus TCP Client поддерживает механизм Modbus Network Redundancy.

    Для его использования необходимо:

    1. Установить плагин Modbus версии 4.4.0.0 (ссылка) или выше.
    2. Установить модифицированный файл описания компонента Modbus TCP Server (ссылка) с помощью команды Инструменты - Репозиторий устройств - Установить.
    3. В проекте CODESYS настроить обмен в режиме Modbus TCP Master через стандартные компоненты: Ethernet --> Modbus TCP Client ---> Modbus TCP Server.

    Требуемая версия компонента Modbus TCP Client: 4.4.0.0 или выше
    Требуемая версия компонента Modbus TCP Server: 4.4.0.1

    В прошлых версиях плагина эти компоненты назывались Modbus TCP Master и Modbus TCP Slave соответственно.

    4. В компоненте Modbus TCP Server на вкладке Конфигурация установить для параметра fallback IP значение TRUE, а в параметре SecondIPAddress - IP-адрес резервного slave-устройства.

    2024-10-09_8-51-25.png

    В случае потери связи с slave-устройством, имеющим "основной" IP-адрес (заданный на вкладке Общее), произойдет попытка подключения к slave-устройству с "резервным" IP-адресом (SecondIPAddress) и начнется его опрос.
    Попытка обратного переключения (для опроса "основного" slave-устройства) произойдет только в случае потери связи с "резервным" slave-устройством.

    Для определения IP-адреса текущего опрашиваемого устройства используйте переменную <имя_компонента_в_дереве_проекта>.ComSettings.ipAd dress (тип - ARRAY [0..3] OF BYTE).

    2024-10-21_10-47-25.png

    Примечание: при использовании компонента Modbus TCP Client версии 4.4.0.0 или выше наблюдаются ошибки в работе шаблонов модулей Mx210:
    • канал Флаг ошибки всегда имеет значение TRUE (даже при наличии связи с модулем и успешного обмена);
    • для модулей МВ210-101/102: каналы Код статуса всегда имеют значение Нет связи с модулем (даже при наличии связи с модулем и успешного обмена);

  4. #154
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,230

    По умолчанию OTHER#17. СПК1хх [М01] и отключение подсветки экрана

    Вопрос: в СПК1хх [М01] с прошивкой 2.4.xxxx.xxxx не удается полностью отключить подсветку экрана.
    Даже при установке яркости подсветки в значение 0 на экране продолжают отображаться элементы, просто очень тускло.
    Можно ли это как-то исправить?

    Ответ: к сожалению, нет. Эта проблема устранена в СПК210.
    В СПК1хх [М01] с прошивкой 2.4.xxxx.xxxx можно использовать следующее обходное решение, которое частично исправит визуальную часть проблемы:
    создайте экран визуализации с "полностью черным" фоном и укажите его в узле Screen для параметра конфигурации Off visu name:

    2025-03-03_13-03-02.png

  5. #155
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,230

    По умолчанию DEBUG#15. СПК210-07, прошивка 3.7.0228.1046 - нельзя зайти в экранный конфигуратор

    Вопрос: после перепрошивки СПК210-07 на прошивку 3.7.0228.1046 не получается зайти в экранный конфигуратор - потому что при запуске не отображается прогресс-бар загрузки контроллера и нет надписи Режим загрузки.
    Как это исправить?

    Ответ:

    Для устранения проблемы необходимо:
    • подключиться к СПК210-07 по USB или Ethernet;
    • перейти в web-конфигуратор;
    • открыть вкладку Система/Обновление прошивки;
    • нажать кнопку Обзор и выбрать файл swu-hotfix-spk210_07-psplash.swu из архива с прошивкой 3.7.0228.1046;
    • нажать кнопку Обновить;
    • процесс установки хотфикса завершится автоматической перезагрузкой контроллера, после которой описанные выше проблемы перестанут проявляться.

  6. #156
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,230

    По умолчанию PRG#41. Как считать системное время виртуального контроллера?

    Вопрос: для получения системного времени контроллеров ОВЕН в коде программы мы используем узел OwenRTC в дереве проекта.
    Но для виртуального контроллера CODESYS Control Win V3 (и для контроллеров других производителей) данный узел недоступен.
    Как получить системное время в этом случае?

    Ответ: можно воспользоваться библиотекой SysTimeRtc. Ее потребуется добавить в Менеджер библиотек вашего проекта:

    SysTimeRtc.png

    • функция SysTimeRtcGet позволяет получить системное время контроллера;
    • функция SysTimeRtcGetTimezone позволяет получить информацию о его часовом поясе (поддерживается не во всех контроллеров; для CODESYS Control Win V3 - поддерживается).


    Пример функции-обертки для получения системного времени, которую вы можете создать в своем проекте:

    Код:
    // Функция для получения системного времени
    FUNCTION GetSystemDT : DT
    VAR_INPUT
    	// Установите TRUE, если ваш контроллер не поддерживает функцию SysTimeRtcGetTimezone...
    	xUseManuaTimeZonelOffset:	BOOL 		           := FALSE;
    	// ...и задайте смещение для вашего часового пояса сами ( в минутах); например: 180 для UTC+3
    	iTimeZoneOffsetInMinutes:	INT(INT#-12*60..INT#14*60) := 0;
    END_VAR
    VAR
    	stTimeZone:			SysTimeRtc.TimezoneInformation;
    	dwErrorCode:	  		DWORD;
    END_VAR
    
    
    IF NOT(xUseManuaTimeZonelOffset) THEN
    	
    	dwErrorCode 		 :=  SysTimeRtc.SysTimeRtcGetTimezone(stTimeZone);
    	iTimeZoneOffsetInMinutes :=  -1 * stTimeZone.iBias;
    
    END_IF
    
    {warning disable C0196}
    GetSystemDT := TO_DT(SysTimeRtc.SysTimeRtcGet(dwErrorCode) + (iTimeZoneOffsetInMinutes * 60) );
    {warning restore C0196}
    2025-04-10_6-31-07.png 2025-04-10_6-30-50.png

Страница 16 из 16 ПерваяПервая ... 6141516

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •