S7-1200. Быстро остановить PTO

ПЛК / Децентрализованная периферия
Ответить
groznij
Дилетант
Сообщения: 5
Зарегистрирован: 05 дек 2016, 19:01

S7-1200. Быстро остановить PTO

Сообщение groznij »

Добрый день.

Есть система где выход 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мс
а побыстрее.

Спасибо.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: S7-1200. Быстро остановить PTO

Сообщение Михайло »

Возможно 60 импульсов проходят с замедлением по рампе. Рампа экстренного торможения вроде задается отдельно в настройках PTO? Нет?

groznij
Дилетант
Сообщения: 5
Зарегистрирован: 05 дек 2016, 19:01

Re: S7-1200. Быстро остановить PTO

Сообщение groznij »

Михайло писал(а):Возможно 60 импульсов проходят с замедлением по рампе. Рампа экстренного торможения вроде задается отдельно в настройках PTO? Нет?
Так согласен, я рассматривал и такой вариант.
Но:
1) Я сделал рампу 25000 Гц за 0.0001 сек. Т.е. практически мгновенно.
2) Я останавливаю шаговик командой
MC_Power с командой StopMode = 1, а единица говорит о том,
что останавливаем мгновенно без настроек рамп.
"Pulse output stop immediately"

Скан контроллера у меня 7 мс.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: S7-1200. Быстро остановить PTO

Сообщение Михайло »

groznij писал(а):1) Я сделал рампу 25000 Гц за 0.0001 сек. Т.е. практически мгновенно.
2) Я останавливаю шаговик командой
MC_Power с командой StopMode = 1
Все равно 60 импульсов проскакивают?
Может проблема не в PTO, а в HSC? Важно, чтобы HSC и PTO работали синхронно, а чтобы обеспечить эту синхронность, надо приложить мозги... Попробуй работать напрямую с ID1000:P.

groznij
Дилетант
Сообщения: 5
Зарегистрирован: 05 дек 2016, 19:01

Re: S7-1200. Быстро остановить PTO

Сообщение groznij »

Фиксирую в прерывании ID1000:P - переменная пусть = 25100, даю останов мотора
через MC_Power с параметром StopMode = 1, далее смотрю ID1000 уже после останова
в VAT таблице 25164.

Если же работать на частоте 100 Гц, то разница получается около 3х-4х импульсов.

Не понял насчет синхронности.
HSC считает импульсы асинхронно от кода работы программы.
PTO пульсирует также асинхронно от кода программы.

Команда MC_MoveRelatively работает безукрризненно на любой частоте (100, 5000, 10000).
Сколько задал в PTO, столько же и словил в НSC

А вот останов PTO занимает время.

Ответить