Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 50

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

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    capzap претензия в некотором роде к другому, если на каждый чих прибегать к помощи нейросети, ресурсов не напасешься.
    ну какой же это чих, думаю здесь все подтвердят, что если чих то его просто делают, а не берут подсказку зала
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

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

    По умолчанию

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

    Скажем так, не на ту задачу вы нейросеть натравили...

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    capzap так примеров вывода значащих битов было предостаточно уже, даже в этой теме, без применения нейросети

    Скажем так, не на ту задачу вы нейросеть натравили...
    Только мой вариант сперва прошел проверку все значения потом была построена схема, какой либо другой вариант проверялся по всему диапазону возможных значений? Во всех других вариантах сперва будет построена схема и из 1024 четырех возможных значений сколько то будет проверено, предположим 10%, человеку быстро надоедает проделывать монотонно одни и те же операции, а автотестов в ОЛ еще нет. Тех кто пишет только в ОЛ ограничены его возможностями, я же могу использовать весь спектр существующих инструментов чтоб создать выборку, которая уже без моего участия создаст работоспособную модель. Сейчас для ОЛ я сделал нейросеть на одинадцать входов, мне даже не нужно будет переделывать проект, под схожие задачи с меньшим количеством входов, просто неиспользуемые коэффициенты удалю и они не будут участвовать и задам на оставшихся нужные, взятые из модели. Если в ОЛ появиться выгрузка/загрузка переменных например в csv файл, так вообще можно даже не заниматься самому копипастом, на питоне сформировал модель в нужном формате, а в ОЛ сделал импорт
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение

    Сергей0308 понял смысл, спасибо.
    Очень рад за Вас! Вот если бы Вы ещё и смысл ваших задумок смогли объяснить, было бы вообще замечательно!
    Пока что, имеем внутреннюю переменную, 32 битную, то есть максимально возможно до 32 аварий определить(точнее номер бита аварии). Идём дальше, возможные варианты: допустим сработали все 32 аварии одновременно, у вас запишутся номера битов с 31 до 0 и займёт это 32 разряда стека! К чему я, мне кажется проще записать в стек битовую маску аварий(входов аварий) и займёт это всего 1 разряд стека в 32 раза меньше энергонезависимой памяти потребуется! А из стека забираете битовую маску аварий и делайте с ней все что угодно, можно по очереди номер каждого бита определить, как Вы хотите, а можно сразу, без волокиты, все биты аварий определить с помощью функции чтения бита, тем более это и в десятки раз проще выйдет, всё!

    Как Вам, примерно такой расклад:

    Аварии, тест.PNG

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

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

    По умолчанию

    Сергей0308 боюсь что с такими возможностями экрана и с отсутствием опроса клавиатуры вряд ли что-то получится.
    Вообще начинал давно делать журнал аварий с меткой времени (кусок на скрине выше выкладывал). Но не очень нравится идея использовать UTC время.
    Сейчас вот думаю использовать ваш макрос стека и так как он на 32 записи попробовать сделать 1 ячейку на коды аварий, а следующую на время. Так как с double time нет смысла заморачиваться в ПР, можно в один регистр впихнуть. Все равно для Scada писать скрипт хоть для UTC хоть для двух байтного времени.

    з.ы. сразу скажу, чужие макросы журналов не нравятся, тем более запароленные..

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

    Вообще идея перебирать в цикле выходную переменную попробовать вывести на экран список, но думаю тут постигнет неудача, либо экран будет сильно моргать... надо как то на железе проверить будет идею...
    Последний раз редактировалось melky; 10.05.2019 в 23:49.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Сергей0308 боюсь что с такими возможностями экрана и с отсутствием опроса клавиатуры вряд ли что-то получится.
    Вообще начинал давно делать журнал аварий с меткой времени (кусок на скрине выше выкладывал). Но не очень нравится идея использовать UTC время.
    Сейчас вот думаю использовать ваш макрос стека и так как он на 32 записи попробовать сделать 1 ячейку на коды аварий, а следующую на время. Так как с double time нет смысла заморачиваться в ПР, можно в один регистр впихнуть. Все равно для Scada писать скрипт хоть для UTC хоть для двух байтного времени.

    з.ы. сразу скажу, чужие макросы журналов не нравятся, тем более запароленные..

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

    Вообще идея перебирать в цикле выходную переменную попробовать вывести на экран список, но думаю тут постигнет неудача, либо экран будет сильно моргать... надо как то на железе проверить будет идею...
    Я же макрос выкладывал недавно, RAMP_BIT называется, он позволит, если аварии сработали абсолютно одновременно, через цикл их записать, начиная со старшего номера бита, это Вас беспокоить не должно и вроде 32 бит должно хватить для времени с дискретностью 1 секунда и кодом аварии в 5 бит(0-31), я не так давно в какой то теме это подробно подсчитывал! Что вы там аварии не каждый год смотреть будете?
    Последний раз редактировалось Сергей0308; 11.05.2019 в 00:13.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

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

    По умолчанию

    Сергей0308 если аварии одновременно в одном цикле, они и так в маску попадут. Для этого не обязательно какие либо специфические макросы нужны.
    На счет упаковки в один регистр аварий и времени - чем больше пакуем, тем больше распаковывать, я еще и о Scada думаю, как там это будет работать, так что тоже не вариант в один регистр пихать и время и аварии.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Сергей0308 если аварии одновременно в одном цикле, они и так в маску попадут. Для этого не обязательно какие либо специфические макросы нужны.
    На счет упаковки в один регистр аварий и времени - чем больше пакуем, тем больше распаковывать, я еще и о Scada думаю, как там это будет работать, так что тоже не вариант в один регистр пихать и время и аварии.
    Куда ж тогда время девать, вот смотрите: секунд в сутках(время) 86400, это 13 бит займёт, день месяца, ещё 5 бит(0-31), месяц, ещё 4 бита(0-15), код аварии(номер бита, 0-31), ещё 5 бит, остаётся 5 бит, то есть на 32 года хватит с дискретностью 1 секунда! Я надеюсь уж раз в 32 года Вы в состоянии будете аварии просмотреть?! И мне всё чаще подозрения закрадываются, это наверно Вы сами такую скаду придумали, если ПР оказывается гораздо круче такой скады?!
    Последний раз редактировалось Сергей0308; 11.05.2019 в 00:56.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

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

    По умолчанию

    Сергей0308 вы немного не поняли, Scada по умолчанию понимает время в формате double Time (8 байтный вариант, пришедший на смену UTC). Чтобы вывести любое иное время и его поняла Scada в самой Scada придется написать скрипт(формулу). Тип Scada тут не важен, если время Scada получает не в формате, известном компьютеру, придется писать скрипт для перевода чтобы Scada поняла.

    double Time для ПР даже если посильная задача, займет много места в самой программе, UTC есть, но тоже занимает место, а так как даже UTC надо переводить для Scada я и думаю, запихнуть в один регистр время.

    Как вы в 5 бит запихнете ДВЕ аварии ? по этому для маски аварий будет отдельный регистр. Scada сама разберет битовую маску, не маленькая.
    Вот тут хочу определиться, а разбирать ли маску на экране ПР??? так ли это необходимо ?, табличка в щите со списком аварий легко решает этот вопрос на административном уровне А вот был бы опрос клавиш из программы, можно было бы на экране отобразить все красиво.

    Для меня это несколько оптимальнее, чем пихать все в один регистр. А чтобы хоть в чем-то была универсальность, я время могу в регистр запаковать, как это в протоколе M-Bus сделано, тогда и формула для Scada будет в некотором роде универсальной.
    Последний раз редактировалось melky; 11.05.2019 в 10:32.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Сергей0308 вы немного не поняли, Scada по умолчанию понимает время в формате double Time (8 байтный вариант, пришедший на смену UTC). Чтобы вывести любое иное время и его поняла Scada в самой Scada придется написать скрипт(формулу). Тип Scada тут не важен, если время Scada получает не в формате, известном компьютеру, придется писать скрипт для перевода чтобы Scada поняла.

    double Time для ПР даже если посильная задача, займет много места в самой программе, UTC есть, но тоже занимает место, а так как даже UTC надо переводить для Scada я и думаю, запихнуть в один регистр время.

    Как вы в 5 бит запихнете ДВЕ аварии ? по этому для маски аварий будет отдельный регистр. Scada сама разберет битовую маску, не маленькая.
    Вот тут хочу определиться, а разбирать ли маску на экране ПР??? так ли это необходимо ?, табличка в щите со списком аварий легко решает этот вопрос на административном уровне А вот был бы опрос клавиш из программы, можно было бы на экране отобразить все красиво.

    Для меня это несколько оптимальнее, чем пихать все в один регистр. А чтобы хоть в чем-то была универсальность, я время могу в регистр запаковать, как это в протоколе M-Bus сделано, тогда и формула для Scada будет в некотором роде универсальной.
    Вообще-то 5 бит, это диапазон 0-31, 32 аварии запихиваются! Даже битовой маской, одновременно, можно до 5 аварий фиксировать, а Вы 2 не можете, первоклассникам только не рассказывайте, а то они со смеху животики надорвут!
    Идём дальше, если воспользоваться здравым смыслом и аварии просматривать не реже 1 раза в год, то от даты-времени(22 бита, расклад чуть выше), остаётся 10 бит, можно одновременно до 10 аварий фиксировать битовой маской или не одновременно(думаю проблем с этим не будет в большинстве случаев) до 1024 разных аварий(код аварий) фиксировать, всё!
    Последний раз редактировалось Сергей0308; 11.05.2019 в 15:18.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя

Похожие темы

  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

Ваши права

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