PDA

Просмотр полной версии : работа по прерыванию + условие старта



sv1234pr
06.08.2015, 12:34
Добрый день!

Имеется ПЛК110-24-32 [m01] , в проекте необходимо обрабатывать два сигнала , информационный и тактовый (синхронизированы между собой) ,
время 1 импульса=1мс ;
прерывание использую из списка задач timer_20mks с прерыванием в 1000мкс .

Проблема в том , что импульсы поступают непрерывно ( система антена - датчик ) и возможно в момент включения плк ( с уже установленной программой) ,
прерывание начнет работать в "середине импульса" например 0.7мс , т.е. дальнейшие приходящий сигналы будут неправильно обрабатываться ....

Что можно сделать ? Заранее спасибо за подсказки ! :)

murdemon
06.08.2015, 12:39
сделай прерывание раз в 500мкс и точно не пропустишь сигнал только потом повторения надо убрать

sv1234pr
06.08.2015, 12:54
сделай прерывание раз в 500мкс и точно не пропустишь сигнал только потом повторения надо убрать

Я неправильно написал , импульс длится 1мс , за 1мс тактовый "сигнал"(скачок напряжения ~24В) длится примерно 330мкс , сразу после него идет инф-ый тоже около 330мкс (~24В) , далее 340мкс (ничего, низковольтовый сигнал по обоим каналам (~1.5В помехи обычные))


А что можете сказать про Start ( в списке задач) , к сожалению не работал до этого с этим . Там есть dwEvent и еще три переменные ;
к примеру можно сделать так , чтобы как только будет обнаружен тактовый сигнал включится Init в основной проге (plc_prg) ?
П.С. пишу на st

murdemon
06.08.2015, 15:45
сделай таймер на минимум... собирай все данные в массив, а в основной программе разбирай что там и куда.. синхронизировать запуск таймера в codesys 100% не получиться