Страница 508 из 709 ПерваяПервая ... 8408458498506507508509510518558608 ... ПоследняяПоследняя
Показано с 5,071 по 5,080 из 7082

Тема: CODESYS V3.5. Вопросы и ответы

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

    По умолчанию

    Шаман, как обычно, смотрит в корень - то, что события могут формироваться в разных потоках, не мешает обрабатывать их в каком-то одном потоке.

    Если чтение I/O сложить в один поток с логикой, получатся неприличные задержки.
    Использование SysFile и других библиотек с синхронными вызовами - действительно довольно простой способ получить "неприличные задержки".
    Для большинства библиотек есть асинхронные варианты - например, в случае файлов это библиотека CAA File.

  2. #5072
    Пользователь
    Регистрация
    08.02.2020
    Адрес
    Ставрополь
    Сообщений
    228

    По умолчанию

    > А что ты называешь потоками? Разные задачи?

    Ага.

    > А если сделать очередь?

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

  3. #5073
    Пользователь
    Регистрация
    08.02.2020
    Адрес
    Ставрополь
    Сообщений
    228

    По умолчанию

    > обрабатывать их в каком-то одном потоке

    Но от синхронизации записи никуда не деться, в любом случае.

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

    По умолчанию

    Цитата Сообщение от fatlortroll Посмотреть сообщение
    > обрабатывать их в каком-то одном потоке

    Но от синхронизации записи никуда не деться, в любом случае.
    Если это один поток и всё же SysFile - о какой вообще синхронизации речь?
    Вызовы SysFileOpen, SysFileWrite и т.д. - блокирующие.

  5. #5075
    Пользователь
    Регистрация
    08.02.2020
    Адрес
    Ставрополь
    Сообщений
    228

    По умолчанию

    Возможно, я некорректно представляю модель исполнения CoDeSys, но разве при вызове метода ФБ из разных потоков (задач) не может случиться коллизия, даже если функции внутри этого метода блокирующие?

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

    По умолчанию

    Цитата Сообщение от fatlortroll Посмотреть сообщение
    Возможно, я некорректно представляю модель исполнения CoDeSys, но разве при вызове метода ФБ из разных потоков (задач) не может случиться коллизия, даже если функции внутри этого метода блокирующие?
    А зачем вообще об этом думать?

    Пример реализации, совпадающий с озвученной выше Шаманом идеей ("простое лучше сложного"):
    - глобальный ARRAY [FIRST_EVENT...LAST_EVENT] OF BOOL
    - из разных потоков по событиям взводим нужные флаги массива (доступ к массиву по константным индексам - можно через красивый ENUM - все события заранее известны и определены)
    - в одном конкретном потоке: открываем файл, в цикле проходим по массиву - для каждого установленного флага вызываем SysFileWrite (и здесь же можно реализовать форматирование сообщения, если требуется) и сбрасываем флаг - после выхода из цикла закрываем файл

  7. #5077

    По умолчанию

    Да! Евгений Кислов всё рассказал!
    Я такое делал с очередью отправки СМСок: брал массив на 20-30 событий, через вызов функции пихал их туда.
    При этом инкремент счётчика занятых элементов делал именно в той функции.
    А основная задача, медленная, извлекала события из этого массива-очереди, и пихала их в модем, ожидая отправку каждого из них.
    Задумка была на тот случай, с которым ты и столкнулся: "Ой! А вдруг разом десяток аварий будет, и тонна СМСок прилетит".

    Всё-таки расскажи нам, ЧТО там у тебя ТАКОГО интересного! У меня проект (я ща как раз его дальше ваяю, в ночи), где опрашивается 9 штук модулей по SysCom (очень-очень быстро). И ещё и отслеживанием ошибок связи с ними и логгеньем в тревоги ПЛК... Вот у тебя ещё быстрее, чем у меня? Я хочу это представить! =)
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  8. #5078
    Пользователь
    Регистрация
    08.02.2020
    Адрес
    Ставрополь
    Сообщений
    228

    По умолчанию

    > ЧТО там у тебя ТАКОГО интересного

    Всего лишь промышленный станок. Ничего интересного. :-)

  9. #5079

    По умолчанию

    Добрый день, подскажите пожалуйста. Не выходит залить прошивку в виртуальный ПЛК т.к. таргет версии 3.5.6, а сам ПЛК 3.5.5. Как найти и поставить версии 3.5.5 control win? (Галочка "показать старые версии" не дает эффекта нужного)target error.png

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

    По умолчанию

    Цитата Сообщение от ADS Посмотреть сообщение
    Добрый день, подскажите пожалуйста. Не выходит залить прошивку в виртуальный ПЛК т.к. таргет версии 3.5.6, а сам ПЛК 3.5.5. Как найти и поставить версии 3.5.5 control win? (Галочка "показать старые версии" не дает эффекта нужного)target error.png
    Добрый день.
    Таргет 3.5.5.0 входит в состав CODESYS V3.5 SP5 Patch 5.
    Как я понимаю (судя по версии рантайма виртуальника) - вы эту версию устанавливали?
    Тогда см. п. 8.2 здесь:
    https://ftp.owen.ru/CoDeSys3/11_Docu..._FAQ_v.1.3.pdf

    После этого галочка "показать старые версии" действительно должна показать старые версии.

Страница 508 из 709 ПерваяПервая ... 8408458498506507508509510518558608 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3197
    Последнее сообщение: Сегодня, 13:45
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 822
    Последнее сообщение: 20.11.2023, 17:48
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 245
    Последнее сообщение: 02.10.2022, 11:34
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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