Просмотр полной версии : Быстрые прерывания
Привет всем.
Иногда важно знать точное событие на входе, и достаточно знать, во сколько точно происходят прерывания - нет необходимости немедленно реагировать.
При очередном выполнении POU раз в 1мс, анализ переменной содержит параметр, когда произошло прерывание, и по какому входу.
Подскажите, реализовано ли такое в какой либо библиотеке?
По документации:
... максимальная частота сигнала, подаваемого на дискретный вход 1кГц при программной обработке 10кГц при применении аппаратного счётчика и обработчика энкодера
т.е. 1кГц = 1мс и нет другого варианта - только специализированные под энкодер ...
P.S. Про PRU слыхал/читал. но это уже следующий шаг.
Точное событие - if с проверкой входа. Точней не бывает.
Если не нужно немедленно реагировать - if с проверкой тогда, когда можно и отреагировать.
Нету за ненадобностью. Да и глупость сама по себе. Свои ифы меняем на ифы внизу? Даже описалово уже косячное - несколько одновременных срабатываний на разных каналах, и ? Имеем этих переменных с временем столько же сколько самих входов? Коза+баян.
И да, 1мс цикла это 500Гц да и идеального меандра.
Энкодер нифига не даст кроме самого факта срабатывания чего то там.
Если за каким то потребовалось быстрее 1мс не ждите "следующего шага" , переходите сразу. Или syslibport. Или другое оборудование
Спасибо за своё мнение, конечно, но... это точно не мнение специалиста... :)
Точное событие - if с проверкой входа. Точней не бывает. Бывает!
Если не нужно немедленно реагировать - if с проверкой тогда, когда можно и отреагировать. Да. Как общий вариант.
Нету за ненадобностью. Да и глупость сама по себе. Свои ифы меняем на ифы внизу? Даже описалово уже косячное - несколько одновременных срабатываний на разных каналах, и ? Имеем этих переменных с временем столько же сколько самих входов? Коза+баян.
Вот уж действительно, сказанное - глупость. :(
Вы собрались отменить групповое чтение всех бит порта???
AT %IB1.0: BYTE; (8 discrete imputs)
А заодно и прерывания от портов!
Т.е. входя в POU, одни раз в 1 мс, проверить байт на изменение с прошлого чтения,
и при наличии изменения, проверить время этого/этих изменений?
Валенок, вы на асме когда-нибудь хоть строку написали?
И да, 1мс цикла это 500Гц да и идеального меандра. Энкодер нифига не даст кроме самого факта срабатывания чего то там. Если за каким то потребовалось быстрее 1мс не ждите "следующего шага" , переходите сразу. Или syslibport. Или другое оборудование
Про "Энкодер" - это уже лишнее, про это я ничего не хотел.
Валенок - очнитесь.
Есть другие (https://owen.ru/forum/showthread.php?t=23013) возможности.
Цитата: "Планирую использовать ПЛК110, посмотрел на CoDeSys 2.3 и нахожусь в шоковом состоянии."
Вот это, что дико бояться "разложить по полочкам" на фирме ОВЕН,
и гробит этот самый ОВЕН. Особенно тех документация и хелпы...
И для решения ОБЫЧНЫХ задач, на очень мощной железяке,
и за хорошие деньги, приходится искать дополнительные пути.
Валенок, переходите на конструктивный диалог.
Это пойдёт всем на пользу. :)
Привет всем.
Иногда важно знать точное событие на входе, и достаточно знать, во сколько точно происходят прерывания - нет необходимости немедленно реагировать.
При очередном выполнении POU раз в 1мс, анализ переменной содержит параметр, когда произошло прерывание, и по какому входу.
Подскажите, реализовано ли такое в какой либо библиотеке?
По документации:
... максимальная частота сигнала, подаваемого на дискретный вход 1кГц при программной обработке 10кГц при применении аппаратного счётчика и обработчика энкодера
т.е. 1кГц = 1мс и нет другого варианта - только специализированные под энкодер ...
P.S. Про PRU слыхал/читал. но это уже следующий шаг.
По ссылке (https://docs.owen.ru/product/plk160m02/759/62844#topic-62844) удалось запустить на ПЛК160, и с доработкой получить то что надо.
Глюков при тактовой проца 400 МГц с заданным (100мкс) циклом 100т не наблюдается.
"Быстрые" входы действительно удалось сделать быстрыми.
На одну полуволну сетевого напряжения 50Гц ~80 опросов,
что позволило достаточно точно считать косинус фи.
Это позволило не покупать 4 шт неприлично дорогих модуля.
Как я понял, быстро возможно читать через SysPortIn(любой порт).
Выходы: есть только релейные, и 4 ADC выхода. Но там живут черепахи... :)
Управлять симисторными группами не получится с этой версией.
Осталось разобраться:
- и реализовать осциллограф лог уровней на 4 входа;
удалось построить два графика для двух полуволн - но там 1 мс шкала.
- RAM 16 мб, что там с DMA и работой со скоростью ядра;
- PRU SoC AM1808 имеет 2 независимых ядра программируемого блока реального времени;
там некий АСМ, интересно будет порыться -
- и ПЛК160 вполне сможет работать со звуком - анализировать вибрацию и шумы. :)
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot