Генератор

Ответить
Balzamalex
Сержант
Сообщения: 102
Зарегистрирован: 07.09.2015{, 21:21}
Репутация: 0

Генератор

#1

Сообщение Balzamalex » 20.10.2015{, 17:12}

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

Аватара пользователя
scadapack
Рядовой
Сообщения: 83
Зарегистрирован: 07.09.2015{, 05:18}
Репутация: 5
Откуда: Степногорск
Имя: Вячеслав

Генератор

#2

Сообщение scadapack » 21.10.2015{, 06:31}

Очень странная задача! Противоречивое условие. Или один импульс, или каждый цикл. Если каждый цикл, то это уже не один импульс, а импульсы с частотой сканирования. Вот примитивный пример, где при каждом сканировании программы, контроллер меняет состояние выходного сигнала.
Вложения
8514364.png

Аватара пользователя
kipiaxxx
Рядовой
Сообщения: 76
Зарегистрирован: 06.09.2015{, 14:15}
Репутация: 16
Откуда: Омск
Имя: Сергей

Генератор

#3

Сообщение kipiaxxx » 02.11.2015{, 06:18}

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

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Генератор

#4

Сообщение Сергей » 02.11.2015{, 13:53}

kipiaxxx, ну, так и что намерял? Какая скорость выполнения одного цикла?

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Генератор

#5

Сообщение Oleg1345140 » 02.11.2015{, 13:59}

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

Аватара пользователя
kipiaxxx
Рядовой
Сообщения: 76
Зарегистрирован: 06.09.2015{, 14:15}
Репутация: 16
Откуда: Омск
Имя: Сергей

Генератор

#6

Сообщение kipiaxxx » 02.11.2015{, 14:46}

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

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

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

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Генератор

#7

Сообщение Сергей » 02.11.2015{, 15:00}

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

Ответить

Вернуться в «Таймеры»