Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 50

Тема: Показать значащие биты числа в цикле

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

    По умолчанию Показать значащие биты числа в цикле

    Как бы объяснить... Есть число Х, ну скажем 610 (bin 10 0110 0010), как бы отобразить на экране по очереди номера значащих битов в цикле и остановиться ?

    то есть надо отобразить 9, 6, 5, 1 применив какие-то процедуры в цикле программы ПР.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Как бы объяснить... Есть число Х, ну скажем 610 (bin 10 0110 0010), как бы отобразить на экране по очереди номера значащих битов в цикле и остановиться ?

    то есть надо отобразить 9, 6, 5, 1 применив какие-то процедуры в цикле программы ПР.
    Шутите? Вот, по-моему, если не ошибаюсь, AI делал "триста лет тому назад":

    Номера бит, подряд.PNG
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

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

    По умолчанию

    Сергей0308 и где здесь цикл ? просто раскладывание значения на биты и только.
    была идея применить cd32 и Putbit как в макросе SortBit, но как используя один cd32 и один putbit сделать цикл обработки ? вот тут у меня затык и вышел.
    когда-то что-то подобное делал с циклом, но похоже потерял файл, правда там у меня что-то другое было, но сам алгоритм может помог бы...

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Сергей0308 и где здесь цикл ? просто раскладывание значения на биты и только.
    была идея применить cd32 и Putbit как в макросе SortBit, но как используя один cd32 и один putbit сделать цикл обработки ? вот тут у меня затык и вышел.
    когда-то что-то подобное делал с циклом, но похоже потерял файл, правда там у меня что-то другое было, но сам алгоритм может помог бы...
    Так здесь за цикл всё и определяется, в следующем цикле можете заняться чем-то ещё, а вообще-то принято правила сразу писать и не менять их в процессе, короче, тогда думайте сами, как программу состряпать на двух элементах, зачем мелочиться, на одном делайте!
    Последний раз редактировалось Сергей0308; 07.05.2019 в 21:32.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

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

    По умолчанию

    Вероятно я неправильно выразился.
    В общем есть программа в целом - она выполняется ровно один цикл для ПР. Есть небольшие куски программы, вычисления которых надо разбить на несколько шагов, каждый из которых будет выполняться в рамках одного цикла ПР. Но есть неизвестное, количество значащих бит в числе. Если сделать счетчик на 32 бита, то вычисления будут выполняться 32 цикла ПР, а вот как сократить это количество используя тот же cd32 ????

    Пока это только наметки, много элементов лишние, просто чтобы было видно результат. При изменении числа Input надо начинать запись с 0 ячейки. На данный момент почему-то пишет с 1-й, что-то не допилил. Ну и потом лишние таймеры и элементы надо будет удалить. Но думаю смысл будет понятен...
    Вложения Вложения
    Последний раз редактировалось melky; 07.05.2019 в 23:40.

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

    По умолчанию

    Вопрос в догонку, на экран надо выводить время возникновения ошибки (нашел свои наработки по поводу журнала ошибок с циклической перезаписью на 8 последних).

    Время записываю в макрос EEPROM в UTC формате при помощи макросов от petera. а вот как это время потом показать на экране ???? лепить 8 макросов преобразования из UTC формата в лоб ???
    а нельзя ли обойтись одним макросом преобразования и как-то поиграться с координатами вывода ?

    Коды ошибок так же записываются во второй EEPROM и потом тут слепил макрос (из того, что было ), которые в цикле вычитывает из EEPROM и фиксирует в 8 переменных коды с защелкой. То же можно сделать и с переменными времени, но тогда однозначно делать 8 макросов, что мне не нравится...

    Хотелось бы поработать с экраном в 8 строк (или меньше, если журнал не наполнился) и как-то обойтись одним механизмом для кодов и одним для времени, а не лепить 8 одинаковых последовательностей....
    Изображения Изображения
    Последний раз редактировалось melky; 08.05.2019 в 17:00.

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

    По умолчанию

    Масок нет, все ручками. Ошибок количество ограничено, но они маскируются, то есть 2,3 или сколько будет и могут появиться вместе. В ПР и ИПП очень не хватает обработки клавиатуры, чтобы выводить одну строку журнала и просто перелистывать их.

    Работы со временем штатных нет, в прошивке ПР, хотя бы по UTC, чтобы банально на экран выводить "Метка времени" и подавать на нее время в UTC а ПР сам рисует на экране дату. Только с возможностью выбора формата.

    Короче занимаемся всякими извращениями по придумке макросов . а этот Журнал я еще год назад начинал наверное, только из-за ограничений ПР так и не доделал, да и сейчас наверное вряд ли, пока обработка клавиатуры не появится.
    Последний раз редактировалось melky; 08.05.2019 в 20:27.

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

    По умолчанию

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

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

    Для некоторых задач ПЛК часто излишен, и еще момент, например 63-му не достает выходов, что приводит к еще большему удорожанию.

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

    По умолчанию

    Валенок журнал аварий это не работа, больше хобби

    ошибок например 5, в журнале будет записана маска + время, Показать маску и время на экране ПР не проблема, а вот без пол холста fbd блоков еще и раскидать маску по отдельным авариям в текстовом виде по каждой ошибке в ПР сложно.. вот это можно было победить при использовании кодов клавиш и возможности разветвленного меню (подменю).

    На счет задач, банально - мощности ПР хватает и у него 8 выходов (и нужно 8), ставить ПЛК 63 у которого всего 6 выходов на задачу не тянет (не хватает 2 выходов).
    Ставить еще больший ПЛК или добавлять к 63-му модуль вывода ?
    В общем сравниваем цену и бюджет....
    Если задача не решается на ПР, тут и так понятно, выбираем соответствующий ПЛК и все.

    з.ы. с Днем Победы всех!...

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

    По умолчанию

    Вообще-то всё это, ваши хотелки легко(по моим меркам) разрешаются, примерно так: высчитываете разность и с помощью шифратора преобразуете в номер соответствующего бита! Всегда определение бит будет начинаться со старшего бита! У меня есть подобный макрос ограничения изменения, чтобы за 1 цикл менялось не более 1 бита! Ранее делал по другому, каждый цикл писался 1 бит переменной, короче, чтобы 32 битную переменную изменить требовалось не менее 32 циклов работы программы, теперь это занимает ровно столько циклов работы программы, сколько бит изменилось, всё! Это может уменьшить время выполнения до 32 раз! Больше ничем помочь не могу, и так всё разболтал и боюсь Вас оставил без хобби!
    Последний раз редактировалось Сергей0308; 10.05.2019 в 00:01.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 1 из 5 123 ... ПоследняяПоследняя

Похожие темы

  1. Опрос адресов в цикле
    от Mr.Space в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 28.09.2018, 07:18
  2. Не значащие нули при выводе целого числа. ПР200
    от Keldish в разделе Программируемые реле
    Ответов: 8
    Последнее сообщение: 18.03.2017, 22:15
  3. Ответов: 3
    Последнее сообщение: 21.10.2010, 11:42
  4. мв110-8ас проглатывает последние биты
    от ACE в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 21.10.2010, 11:42
  5. Условия в цикле
    от Wanted в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 23.11.2008, 11:12

Ваши права

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