Показано с 1 по 10 из 4481

Тема: разные вопросы новичка

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Подскажите как реализовать счетчик ошибок. Например хочу знать сколько у меня ошибок, именно общее количество. Есть n булевых переменных, хочу на экран вывести количество сработанных ошибок на данный момент, то есть оно будет динамическое, 1,2,3...n ошибок. То есть, если есть ошибка "+" в счетчик, нет "-" в счетчик. Напрашивается счетчик CTN, но входа там только два на + и -, а как объединить несколько переменных не могу понять.
    Спасибо.

  2. #2
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,438

    По умолчанию

    Цитата Сообщение от RomanKk Посмотреть сообщение
    Подскажите как реализовать счетчик ошибок. Например хочу знать сколько у меня ошибок, именно общее количество. Есть n булевых переменных, хочу на экран вывести количество сработанных ошибок на данный момент, то есть оно будет динамическое, 1,2,3...n ошибок. То есть, если есть ошибка "+" в счетчик, нет "-" в счетчик. Напрашивается счетчик CTN, но входа там только два на + и -, а как объединить несколько переменных не могу понять.
    Спасибо.
    Какой-то очень странный вопрос, в смысле, преобразовать значения булевых переменных в целочисленные значения и сложить разве нельзя?!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #3

    По умолчанию

    А сколько аварий?
    2, 4, 16, 32, 256?
    От количества и решение будет разным.
    Если два или четыре, то можно
    2023-01-26_00-36-21.png
    А если больше, то может почитать статью https://habr.com/ru/post/276957/ и сделать элегантную функцию, которую можно будет выложить на форуме и возможно ее включат в библиотеку макросов.
    Последний раз редактировалось Николай Суриков; 26.01.2023 в 00:41.

  4. #4

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    А сколько аварий?
    2, 4, 16, 32, 256?
    От количества и решение будет разным.
    Если два или четыре, то можно
    2023-01-26_00-36-21.png
    А если больше, то может почитать статью https://habr.com/ru/post/276957/ и сделать элегантную функцию, которую можно будет выложить на форуме и возможно ее включат в библиотеку макросов.
    Интересная статья. Плохо, что в ST на ПР логические операции с целочисленными значениями не работают
    Вложения Вложения

  5. #5
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,065

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    .. Плохо, что в ST на ПР логические операции с целочисленными значениями не работают
    Очень плохо. Реально заколебало.
    Но применительно к задаче - накой ? Особенно в свете ПР и цикла минимум в 1мс ?
    То что в статье потребуется только тогда, когда будете оптимизировать что-то на уровне тактов камня. Нету для ПР таких задач.

    А 4 указанные выше мною строчки - это и есть самое первое из статьи:
    4строки.png
    что в местном варианте:
    Код:
    function cntbit: udint; 
        var_input
            mask : udint;
        end_var
       
        while mask <> 0 do
            cntbit := cntbit + bool_to_udint(mask.0);
            mask := shr(mask,1);
        end_while
    end_function

  6. #6

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Очень плохо. Реально заколебало.
    Но применительно к задаче - накой ? Особенно в свете ПР и цикла минимум в 1мс ?
    То что в статье потребуется только тогда, когда будете оптимизировать что-то на уровне тактов камня. Нету для ПР таких задач.

    А 4 указанные выше мною строчки - это и есть самое первое из статьи:
    4строки.png
    что в местном варианте:
    Код:
    function cntbit: udint; 
        var_input
            mask : udint;
        end_var
       
        while mask <> 0 do
            cntbit := cntbit + bool_to_udint(mask.0);
            mask := shr(mask,1);
        end_while
    end_function
    Этот вариант тоже интересен (если бы ST в ПР мог делать AND)

    изображение_2023-01-27_084750763.png

  7. #7
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,065

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Этот вариант тоже интересен (если бы ST в ПР мог делать AND)..
    Этот вариант интересен для применения именно в ПР или вообще ?

  8. #8

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Этот вариант интересен для применения именно в ПР или вообще ?
    Он вообще интересен своей идеей.
    А для ПР будет интересен, когда допилят ST

Похожие темы

  1. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 15.04.2025, 16:38
  2. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  3. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 09:29

Ваши права

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