Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 24

Тема: Вопрос про математические функции

  1. #11
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,578

    По умолчанию

    Цитата Сообщение от Arimon Посмотреть сообщение
    Раз уж отредактировали сообщение, то попробуйте pack сами и увидите, что там на выходе получается экспонента или геометрическая прогрессия, а не порядковые номера в формате WORD (INT) как мне нужно.
    на картинке нарисуйте что хотите получить, какое значение подается во входную переменную "черного ящика" и какое значение получает выходная переменная

    а то реально не понять что Вам нужно, вот и выходит что поставить пак или унпак и т.п.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  2. #12

    По умолчанию

    Я в курсе двоичной математики. BOOL у меня взаимоисключающие и от них, по факту, мне нужны только значения TRUE. Пишу пример того, что надо:
    in1BOOL; (Режим поджига и разогрева котла) Вычислен в программе с помощью ФБ WINDOW по порогу температур от 0 до 65 градусов.
    in2 BOOL; (Режим 1 ступени котла) Вычислен в программе по порогу температур от 65 до 70 градусов.
    И так далее 9 режимов горения в каждом из которых in(x) принимает состояние TRUE.
    На выходе при активации каждого отдельно взятого режима должно появляться значение WORD от 0 (режим поджига) до 8 (максимальный режим). Это значение на входе ФБ MUX у меня задаёт ступени для исполнительных механизмов. То есть мне нужна одна переменная принимающая значение порядкового номера режима по сигналу BOOL. Получается, что були взаимоисключающие.
    PS: Может быть, я пошел сложным, онанистическим путём, но программа уже готова и переписывать весь код нет времени.
    Последний раз редактировалось Arimon; 30.08.2018 в 11:08.

  3. #13
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,578

    По умолчанию

    Цитата Сообщение от Arimon Посмотреть сообщение
    Я в курсе двоичной математики. BOOL у меня взаимоисключающие и от них, по факту, мне нужны только значения TRUE. Пишу пример того, что надо:
    in1BOOL; (Режим поджига и разогрева котла) Вычислен в программе по порогу температур от 0 до 65 градусов.
    in2 BOOL; (Режим 1 ступени котла) Вычислен в программе по порогу температур от 65 до 70 градусов.
    И так далее 9 режимов горения в каждом из которых in(x) принимает состояние TRUE.
    На выходе при активации каждого отдельно взятого режима должно появляться значение WORD от 0 (режим поджига) до 8 (максимальный режим). Это значение на входе ФБ MUX у меня задаёт ступени для исполнительных механизмов.
    да всё равно не понятно что Вы пишите, картинками показывайте что конкретно нужно
    Изображения Изображения
    • Тип файла: png owen.png (17.0 Кб, Просмотров: 26)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #14

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    да всё равно не понятно что Вы пишите, картинками показывайте что конкретно нужно
    Вот в очередной раз убеждаешься, что простое сделать сложнее всего. Вот, нарисовал на бумаге. Я не знаю как ещё объяснить.
    eCd0XDeWJKI.jpg

  5. #15

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Скорее всего вы не совсем в теме двоичной математики.
    8 булей в ворде, это не 8 значений а 256. (вне зависимости от места положения битов. Хоть в старшем байте)

    А для 1..8 нужно 4 буля. Че-ты-ре.
    Но так как true-кодеры с считают с нуля (0..7), то им бы хватило и 3-х булей.

    Если були у вас гарантировано взаимоисключающие то зачем упаковывать в маску ? Можно проста задать число по которому запустите нужный процесс например через case (зачем дырявой CFC-ложкой селектор хлебать - не понимаю. Видимо разновидность БСДМ)

    Если були не взаимоисключающие, то только 0...255 (стрелять в ногу размещением каких-то битов с старшем байте - тоже БСДМ)
    А как вы будете делить 256 вариантов на 8-емь процессов - это уж ваше дело.

    PS
    А с логарифмами - over-educaton. Проще надо быть

    PS-PS
    Нахождение номера гарантировано единственного бита в маске-ворде)//вот накой это ?

    N := -1; //-1 - а нету бита
    while маска <> 0 do
    N := N + 1;
    маска := маска / 2; //ror(маска,1), shr(маска,1) .. на любителя
    end_while
    Я бы с удовольствием так сделал и режимы бы выбирались отдельными кнопками, но там в алгоритме нужно предусмотреть модулируемый режим и автоматический переход на режим больше или меньше в зависимости от показаний контролируемых параметров. По-этому и использовал для задания режима вход ФБ MUX.

  6. #16
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,001

    По умолчанию

    а если mode1 и mode9 будут ture то все равно на выходе 8 ?

    математика тут конечно как у собаки 5 нога...
    Последний раз редактировалось melky; 30.08.2018 в 11:44.

  7. #17
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,001

    По умолчанию

    Валенок, ну почему же, вполне взаимоисключающее, типа старший буль всегда в приоритете... только все рано не пойму, при чем тут математика ? ее тут нет, просто обычные условия.


    Напишите свой блок в ST как на бумаге и используйте себе на здоровье в CFC....
    Последний раз редактировалось melky; 30.08.2018 в 11:56.

  8. #18

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А ТС бьёт себя ногой в грудь что взаимоисключающие.
    Ему некогда переделывать.
    Ждём новостей про очередной замерзающий поселок ))
    Во время ожидания постройки новой котельной появится время для переделки


    Слава богу что всего лишь котел а не АЭС
    А где-то у меня написано, что они могут быть не взаимоисключающие? Не выдавайте желаемого за действительное, я пишу конкретику, что нужно, а от вас пока только домыслы да не рабочие предложения.

  9. #19

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Валенок, ну почему же, вполне взаимоисключающее, типа старший буль всегда в приоритете... только все рано не пойму, при чем тут математика ? ее тут нет, просто обычные условия.


    Напишите свой блок в ST как на бумаге и используйте себе на здоровье в CFC....
    Только такой вариант и остаётся, правда особого опыта работы с ST нет. Буду доходить, если других вариантов нет. А так, по сути да, это не математика, а операция вывода по условию.

  10. #20
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,578

    По умолчанию

    Цитата Сообщение от Arimon Посмотреть сообщение
    Вот в очередной раз убеждаешься, что простое сделать сложнее всего. Вот, нарисовал на бумаге. Я не знаю как ещё объяснить.
    eCd0XDeWJKI.jpg
    Вот цитата из Вашего первого поста:"вытащить из прогрессии значений BYTE 1.2.4.8.16.32.64.128", чем Вам на моем скрине не устроил байт подающийся на вход, далее в функции CONVERT из байта получаю були, ну подавайте вместо записи ХХХ.х простой буль, будет тоже самое
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Функции String
    от @ND в разделе СПК1xx (архив)
    Ответов: 80
    Последнее сообщение: 10.08.2024, 13:40
  2. Функции.
    от Jonikk в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 13.09.2011, 17:57
  3. трм-138 мат.функции
    от мастер в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 14.07.2008, 06:47
  4. Функции
    от mettled в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 13.02.2008, 10:16

Ваши права

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