Страница 69 из 81 ПерваяПервая ... 1959676869707179 ... ПоследняяПоследняя
Показано с 681 по 690 из 810

Тема: Макросы в онлайн базе OWEN Logic

  1. #681

    По умолчанию

    Добрый день! Не могу понять, что происходит с макросом INT MAX10? Всегда макрос работал, а теперь что? Или у меня с симуляцией что-то не так?
    Изображения Изображения
    • Тип файла: jpg jpg.jpg (136.9 Кб, Просмотров: 31)
    Вложения Вложения
    • Тип файла: owl max.owl (500.3 Кб, Просмотров: 9)

  2. #682
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,138

    По умолчанию

    Цитата Сообщение от iasakov Посмотреть сообщение
    Добрый день! Не могу понять, что происходит с макросом INT MAX10? Всегда макрос работал, а теперь что? Или у меня с симуляцией что-то не так?
    Макрос неверно выполнен - там внутри все десять блоков сравнивают на большее значение первый вход, поэтому и не работает. Насчет раньше, не знаю

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

    По умолчанию

    Изначальный макрос, насколько я понимаю и как утверждает ТС, выполнен правильно(как и было задумано), просто ТС не понимает как он работает(алгоритм работы). Если это чужой макрос можно обратится к автору или тому кто осведомлён по этому вопросу. Всё равно не до конца понятно, как можно было использовать макрос, в алгоритме работы которого не до конца разобрался, короче, надо начать сначала, надеюсь суть понятна?!

    И по решению конкретной задачи хотелось спросить: диапазон сравниваемых значений какой, он более значения "268435455"(28 бит) или нет?
    Это я к тому, чтобы можно было метку(4 бита) добавить в значения на каждом входе, затем отсортировать в порядке возрастания(убывания) значений, если не ошибаюсь, "капзап" предлагал макрос сортировки и останется посмотреть метку у наибольшего(наименьшего) значения, в метке содержится номер входа на который подано это значение, всё! Это я один из вариантов решения предлагаю, но для окончательного решения нужны уточнения от ТС.

    Вот совсем другой, принципиальный(без учёта модификации ПР) вариант решения:

    MAX_1.PNG

    MAX_1.owl
    Последний раз редактировалось Сергей0308; 23.08.2022 в 05:43.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  4. #684

    По умолчанию

    Такие вещи наверное проще теперь на ST сделать (есть конечно проблема с тем, что это будет функция и выход только один - но можно также выделить несколько бит в выходном значении под номер входа)

  5. #685

    По умолчанию

    Вы шутите? Макрос выгружен из менеджера компонентов и он не находит максимальное int

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

    По умолчанию

    Мой чем не устраивает, Вам шашечки или ехать?
    Вот даже макрос состряпал, находит большее из 16 и номер входа показывает, вроде даже превосходит ваши хотелки?!
    Так он ещё и на порядок проще вашего "монстра", можете же Вы находить худшее из худшего к тому же и неработающее!
    Короче, проверяйте:

    MAX_2.PNG

    MAX_2.owl

    Совсем забыл, в отличии от вашего, мой макрос можно и легко расширить, до пределов диапазона, практически ничего не меняя: расширить мультиплексор на входе(поставить 2-3 экземпляра имеющегося макроса, короче, сколько понадобится) и изменить пару значений, в настройках счётчика и константе, всё!
    Если два и более максимальных значения, будет показывать номер входа с меньшим порядковым номером!
    Последний раз редактировалось Сергей0308; 24.08.2022 в 13:00.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  7. #687
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,138

    По умолчанию

    Цитата Сообщение от iasakov Посмотреть сообщение
    Вы шутите? Макрос выгружен из менеджера компонентов и он не находит максимальное int
    Так менеджер компонентов - это большая помойка, в которой куча устаревших и неоптимизированных макросов. А сейчас выясняется, что есть еще и не рабочие

  8. #688
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    MAX10 в базе существует в двух версиях
    собственно MAX10.tpl
    и MAX10_old.tpl

    MAX10_old - работает, а в новом MAX10 что-то пошло не так!
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #689

    По умолчанию

    Функция:

    function Max: udint;
    var_input
    IN1,IN2,IN3,IN4,IN5,IN6,IN7,IN8 : udint;
    end_var

    var
    num : udint := 1;
    end_var

    Max := IN1;
    num := 1;

    if IN2 > Max then Max := IN2; num := 2; end_if;
    if IN3 > Max then Max := IN3; num := 3; end_if;
    if IN4 > Max then Max := IN4; num := 4; end_if;
    if IN5 > Max then Max := IN5; num := 5; end_if;
    if IN6 > Max then Max := IN6; num := 6; end_if;
    if IN7 > Max then Max := IN7; num := 7; end_if;
    if IN8 > Max then Max := IN8; num := 8; end_if;

    Max.28 := num.0;
    Max.29 := num.1;
    Max.30 := num.2;
    Max.31 := num.3;

    end_function
    Изображения Изображения

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

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Функция:

    function Max: udint;
    var_input
    IN1,IN2,IN3,IN4,IN5,IN6,IN7,IN8 : udint;
    end_var

    var
    num : udint := 1;
    end_var

    Max := IN1;
    num := 1;

    if IN2 > Max then Max := IN2; num := 2; end_if;
    if IN3 > Max then Max := IN3; num := 3; end_if;
    if IN4 > Max then Max := IN4; num := 4; end_if;
    if IN5 > Max then Max := IN5; num := 5; end_if;
    if IN6 > Max then Max := IN6; num := 6; end_if;
    if IN7 > Max then Max := IN7; num := 7; end_if;
    if IN8 > Max then Max := IN8; num := 8; end_if;

    Max.28 := num.0;
    Max.29 := num.1;
    Max.30 := num.2;
    Max.31 := num.3;

    end_function
    и как решается проблема двух максимумов?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

Страница 69 из 81 ПерваяПервая ... 1959676869707179 ... ПоследняяПоследняя

Похожие темы

  1. Универсальные макросы для OWEN Logic
    от rovki в разделе Среда программирования OWEN Logic
    Ответов: 827
    Последнее сообщение: 22.12.2023, 13:20
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  3. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  4. ПО OWEN Logic !!!
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 11.10.2011, 16:33
  5. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16

Ваши права

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