Показано с 1 по 3 из 3

Тема: Component Manager удаление компонента

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию Component Manager удаление компонента

    Вечер добрый, форумчане!

    Внимательно изучил документ "Работа c логами в CODESYS V3" (автор Евгений Кислов) и сопутствующую информацию (документацию Кодесис по библиотекам CmpLog и Component Manager).

    Наткнулся на следующую ситуацию.
    Если вызываешь функцию CMRemoveComponent для уже удаленного компонента (т.е. сначала создал компонент, затем его удалил и затем еще раз пытаешься), то происходит исключение.
    Что в общем логично. Не логично только, то что нигде никаких записей об этом не остается! Более того после этого действия подключиться к панели из среды разработки не получается. Помогает только или перезагрузка по питанию или перезагрузка кодесис из веб-конфигуратора (ПЛК -> Настройки -> "Перезапустить CODESYS").

    Для аналогии попробовал как будет вести себя система при делении на 0. В этом случае также вылетает по исключению, но и в журнале веб-конфигуратора (ПЛК -> "Файлы журналов") и в журнале из под CODESYS видно исключение. Более того, если после этого подключаться из среды, то тебя выбрасывает на строчку, где произошла ошибка (см. фото).
    ВебЖурнал при делении на 0.png
    Кодесис при подключении после деления на 0.png

    Для возможности повторить эксперимент выкладываю проекта (архив проекта грузить не стал, так как проект стандартный, добавлены только системные библиотеки - CmpLog, ComponentManager, CmpErrors).
    Среда разработки - Codesys V3.5 SP17 Patch 3 (32 bit).
    СПК - СПК М01 (3.5.17.31).

    Собственно, вопросы:
    1. Почему никаких следов о причина возникновения ошибки?
    2. Как в целом грамотно обрабатывать исключения в Codesys V3.5?
    3. Как понимать, что компонент уже удален? Только самому следить за этим фактом? Тут нужно пояснение. После вызова CMRemoveComponent ни указатель не обнуляется, ни номер компонента, которые были созданы функцией CMAddComponent2.

    Спасибо.
    Вложения Вложения

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

    По умолчанию

    Добрый день.

    0. Ситуация, которую вы описываете - это баг.

    11.png

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

    Как понимать, что компонент уже удален?
    Возможно (не проверял), CMGetComponentByName поможет.

    После вызова CMRemoveComponent ни указатель не обнуляется, ни номер компонента, которые были созданы функцией CMAddComponent2.
    И не должны - это же ваши переменные.
    Можете обнулить их сами, если вызов CMRemoveComponent вернул ERR_OR.

  3. #3
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию

    Евгений, спасибо за ответ.

    В целом все понятно.

    2. Для начала следует определить критерии "грамотности". Можете связаться со мной через телеграм, чтобы подискутировать на эту тему.
    Вы лучше статью напишите на эту тему, а мы (форумчане) прочтем!

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 24.11.2021, 14:07
  2. Номинал компонента DA1 ТРМ 138
    от Алексей24 в разделе Сервисное обслуживание приборов ОВЕН
    Ответов: 6
    Последнее сообщение: 15.04.2021, 09:08
  3. Менеджер компонентов - невозможно прочитать описание компонента
    от K123 в разделе Среда программирования OWEN Logic
    Ответов: 5
    Последнее сообщение: 25.12.2020, 09:34
  4. удаление компонента
    от Vladimir-B в разделе Программируемые реле
    Ответов: 10
    Последнее сообщение: 28.12.2015, 20:43
  5. Создание ActiveX компонента для MasterSCADA.
    от 42ia в разделе Master SCADA 3
    Ответов: 32
    Последнее сообщение: 30.05.2012, 09:17

Ваши права

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