Страница 1 из 1

Генератор

Добавлено: 20.10.2015{, 17:12}
Balzamalex
Собственно, в заголовке весь вопрос :-)
Подскажите, как сделать, чтобы генератор выдавал только один импульс, но каждый цикл.

Генератор

Добавлено: 21.10.2015{, 06:31}
scadapack
Очень странная задача! Противоречивое условие. Или один импульс, или каждый цикл. Если каждый цикл, то это уже не один импульс, а импульсы с частотой сканирования. Вот примитивный пример, где при каждом сканировании программы, контроллер меняет состояние выходного сигнала.

Генератор

Добавлено: 02.11.2015{, 06:18}
kipiaxxx
Спасибо, scadapack, за идею!
Подключил эту переменную к цифровому выходу. С помощью осциллографа измеряю длительность выполнения цикла в FLProg. Это очень важно для некоторых скоростных проектов.

Генератор

Добавлено: 02.11.2015{, 13:53}
Сергей
kipiaxxx, ну, так и что намерял? Какая скорость выполнения одного цикла?

Генератор

Добавлено: 02.11.2015{, 13:59}
Oleg1345140
Сергей писал(а):kipiaxxx, ну, так и что намерял? Какая скорость выполнения одного цикла?
Я так понимаю, эту же переменную он подал на один из цифровых выходов. И подключив осциллограф к данному пину он смотрит частоту. Получается что удвоенная частота на осциллографе это частота выполнения программы.

Генератор

Добавлено: 02.11.2015{, 14:46}
kipiaxxx
Сергей писал(а):kipiaxxx, ну, так и что намерял? Какая скорость выполнения одного цикла?
Результаты любопытные. Можно диссер писать...
Кроме осциллографа вполне корректно можно задействовать скоростной счетчик с выводом результата в СОМ-порт. Например, так:
9341328.gif
 

Здесь результат в микросекундах.

Время выполнения цикла существенно зависит от объёма программы, а также наличия в ней некоторых блоков.
Простые программки выполняются быстрее 1 мс, а объёмные - более 100 мс. Но всё очень индивидуально, причём по ходу выполнения это время также меняется заметно.

Генератор

Добавлено: 02.11.2015{, 15:00}
Сергей
kipiaxxx писал(а):Время выполнения цикла существенно зависит от объёма программы, а также наличия в ней некоторых блоков.Простые программки выполняются быстрее 1 мс, а объёмные - более 100 мс. Но всё очень индивидуально, причём по ходу выполнения это время также меняется заметно.
Правильно. Если бы счетчик был основан на внутреннем счетчике контроллера, который настроен на самое маленькое время счета. По окончанию счета вызывал прерывание, а в подпрограмме обработки прерывания, несколько команд меняющих состояние переменной. То частота была бы стабильна. В ПП обработки прерывания при помощи команд сравнения можно организовать делитель и результат выводить еще в одну переменную (болеан).