Вот здесь посмотрите, мне кажется "костюмчик" как по вам шитый:
Вложение 46960
https://owen.ru/forum/showthread.php?t=31113&page=7
Вид для печати
Вот здесь посмотрите, мне кажется "костюмчик" как по вам шитый:
Вложение 46960
https://owen.ru/forum/showthread.php?t=31113&page=7
Спасибо. Посмотрю завтра. Но все таки, как в Event_Log они решили проблему одновременного срабатывания входов?
Stanislau тут Сергей 0308 делал макрос кто первый встал того и тапки. В макросе 8входов и выходов. При появлении 1 на входе на этом же выходе весит 1. Если появится 1еще на каком то входе то на Выходе будет 0 пока не пропадет самая первая еденичка. Макрос есть на компе. Могу скинуть сюда вечером. Или спроси у Сергея.
Поищу тут на форуме, где-то в какой-то теме было.
А чем Вас не устраивает вариант, что я чуть выше выложил: там для этого случая(если одновременно сработало 2 и более аварии) предусмотрен макрос RAMP_BIT, если на его входе одновременно изменятся сразу даже все 32 бита(каждый бит соответствует определённой аварии), то на его выходе будет менятся по одному биту каждый цикл, начиная с самого старшего и далее по мере уменьшения старшинства(весового коэффициента), процесс изменения займёт количество циклов соответствующее количеству изменённых бит, короче, этим разруливается построчное построение аварий в порядке поступления, надеюсь, понятно объяснил?!
Сегодня посмотрю. Но вроде получилось самому придумать. Вечером выложу, что получилось.
https://owen.ru/forum/showthread.php...l=1#post320436
Вот общими усилиями был сделан архив аварий с меткой времени. Время можно убить... макрос ПЗУ можно взять на большее количество ячеек.
Правда аварии пишутся в биты все, но если происходит изменение числа (например сперва бит 3 - произойдет фиксация, потом бит 5, так же произойдет фиксация 3 и 5 битов, так как 3 уже срабатывал)
Вот, что у меня получилось.
У Вас очень неэффективно используется энергонезависимая память, например код аварии, до 32 аварий достаточно 5 бит из 32 у вас, то есть используется около 15% памяти, остальные около 85% присутствуют, но стоят мёртвым грузом!
Я ранее в какой то из тем, даже не одной, подробно расписывал что можно поместить в 32 битах переменной, короче использовать во много раз эффективней, так как энергонезависимой памяти у ПР не так и много, но если Вам хватает, то нет и проблем, когда не хватит, тогда есть смысл над этим задуматься, например по моим прикидкам, я бы смог сделать архив на 160 аварий(код аварии и дата время в одной переменной), у Вас пока 8, для начала тоже не плохо, я так думаю!
Мне вот интересно, вы когда пишите макросы, вам самим нравится, что вы забабахали макрос на 32 бита, а используете всего 8-12 из них ?
Почему не сделать тот же макрос всего на 8 бит с возможности изменения положения бит и не стыковать их вместе при необходимости ?