Добрый день.
Есть система где выход Q0.0 настроен как PTO1
и выдает частоту 6000 HZ и он же заведен на I0.0,
который настроен как HSC1 (High Speed Counter).
Задача - быстро остановить PTO1(аварийный стоп)
по внешнему входу, например I0.2
Алгоритм работы такой:
1.Обнуление HSC1
2.Запуск PTO1 на частоту 6000 Гц
3. Ожидание в прерывании фронта по I0.2
4. Быстрый (аварийный останова) PTO1.
Останов делал как в ядре программы, так и в прерывании
по фронту I0.2 (команды MC_Halt и/или MC_Power),
получается после желаемой остановки PTO1 мой
HSC1 насчитывает еще 60 импульсов
(60 импульсов при 6000 Гц это 10 mS)
Стоит задача, как быстро остановить PTO1, чтобы он останавливался не 10мс
а побыстрее.
Спасибо.
S7-1200. Быстро остановить PTO
Re: S7-1200. Быстро остановить PTO
Возможно 60 импульсов проходят с замедлением по рампе. Рампа экстренного торможения вроде задается отдельно в настройках PTO? Нет?
Re: S7-1200. Быстро остановить PTO
Так согласен, я рассматривал и такой вариант.Михайло писал(а):Возможно 60 импульсов проходят с замедлением по рампе. Рампа экстренного торможения вроде задается отдельно в настройках PTO? Нет?
Но:
1) Я сделал рампу 25000 Гц за 0.0001 сек. Т.е. практически мгновенно.
2) Я останавливаю шаговик командой
MC_Power с командой StopMode = 1, а единица говорит о том,
что останавливаем мгновенно без настроек рамп.
"Pulse output stop immediately"
Скан контроллера у меня 7 мс.
Re: S7-1200. Быстро остановить PTO
Все равно 60 импульсов проскакивают?groznij писал(а):1) Я сделал рампу 25000 Гц за 0.0001 сек. Т.е. практически мгновенно.
2) Я останавливаю шаговик командой
MC_Power с командой StopMode = 1
Может проблема не в PTO, а в HSC? Важно, чтобы HSC и PTO работали синхронно, а чтобы обеспечить эту синхронность, надо приложить мозги... Попробуй работать напрямую с ID1000:P.
Re: S7-1200. Быстро остановить PTO
Фиксирую в прерывании ID1000:P - переменная пусть = 25100, даю останов мотора
через MC_Power с параметром StopMode = 1, далее смотрю ID1000 уже после останова
в VAT таблице 25164.
Если же работать на частоте 100 Гц, то разница получается около 3х-4х импульсов.
Не понял насчет синхронности.
HSC считает импульсы асинхронно от кода работы программы.
PTO пульсирует также асинхронно от кода программы.
Команда MC_MoveRelatively работает безукрризненно на любой частоте (100, 5000, 10000).
Сколько задал в PTO, столько же и словил в НSC
А вот останов PTO занимает время.
через MC_Power с параметром StopMode = 1, далее смотрю ID1000 уже после останова
в VAT таблице 25164.
Если же работать на частоте 100 Гц, то разница получается около 3х-4х импульсов.
Не понял насчет синхронности.
HSC считает импульсы асинхронно от кода работы программы.
PTO пульсирует также асинхронно от кода программы.
Команда MC_MoveRelatively работает безукрризненно на любой частоте (100, 5000, 10000).
Сколько задал в PTO, столько же и словил в НSC
А вот останов PTO занимает время.