Отображение на графе переходов в прерываниях

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы

Отображение на графе переходов в прерываниях

Сообщение Автоматизатор » 30 сен 2013, 17:54

При написании программы для контроллера (Step7 v11) возник вопрос: как отобразить на графе переходы, выполняемые в прерывании?

Описание задачи:
- есть вал, на который установлен датчик угловых перемещений (энкодер) ЛИР158 (разрешение 600 имп/оборот)
- необходимо вращать вал с разной скоростью (используется преобразователь частоты), которая изменяется в зависимости от количества выполненных оборотов
- в программе перед началом вращения вычисляется количество импульсов, при котором требуется переключить скорость
- в итоге вал должен вернуться в исходное положение

Как реализовано управление вращением
- энкодер подключен к контроллеру, сконфигурирован скоростной счетчик HSC1
- перед началом цикла счетчик сбрасывается (CV=0), задается опорное значение (CR=X2, где Х2 количество импульсов, при достижении которого надо включить скорость 2) и разрешается прерывание по событию счетчика HSC1 CV=CR,
- включается вращение вала на скорости 1
- когда счетчик HSC1 насчитает CV=X2, то выполнится прерывание, в котором надо изменить скорость с 1 на 2, загрузить новое значение в CR
- и т.д.

Как лучше оформить граф? Надо ли отображать команды разрешения прерываний?
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 895
Зарегистрирован: 09 окт 2012, 05:18

Re: Отображение на графе переходов в прерываниях

Сообщение CHANt » 30 сен 2013, 18:30

Прерывание вызывает переменная?
На мой взгляд, подпрограмма (граф) в прерывании, это уже другой граф - подчиненный
Аватара пользователя
CHANt
Профессионал
 
Сообщения: 531
Зарегистрирован: 13 окт 2012, 15:24
Откуда: Orenburg

Re: Отображение на графе переходов в прерываниях

Сообщение Михайло » 30 сен 2013, 18:48

Нужен ли в данном случае вообще граф, если он у тебя по особому реализован? СтОит ли вообще заморачиваться? Может можно написать прогу в типичном LD и довольствоваться? Такое не прокатит?

На мой взгляд, методика Шалыто - это лишь инструмент. Если нужно забить гвоздь, то необязательно использовать для этого молоток, можно иногда и пассатижами забить...
Михайло
Администратор
 
Сообщения: 3403
Зарегистрирован: 19 сен 2012, 19:16

Re: Отображение на графе переходов в прерываниях

Сообщение Автоматизатор » 01 окт 2013, 05:55

Михайло писал(а):СтОит ли вообще заморачиваться?

Пока думали как оформить граф, нашли косяк в программе. Граф - это не самоцель, конечно. Граф дает наглядность, удобно обсуждать работу по графу, а не по коду. Поэтому продолжаем работу.

CHANt писал(а):Прерывание вызывает переменная?

Прерывание вызывается по условию: значение скоростного счетчика равно предустановленному значению.

CHANt писал(а):На мой взгляд, подпрограмма (граф) в прерывании, это уже другой граф - подчиненный

Сейчас написана и отлаживается программа, в которой переходы между состояниями были вначале были сделаны в основном блоке, а потом перенесены в прерывания для увеличения быстродействия. Кроме этого для увеличения скорости реакции добавлены команды непосредственного сброса выходов, которые выполняются в переходах.

Переход в прерывании.JPG
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 895
Зарегистрирован: 09 окт 2012, 05:18

Re: Отображение на графе переходов в прерываниях

Сообщение Автоматизатор » 01 окт 2013, 16:16

В процессе отладки выявилась одна непонятная вещь. В программе для удобства были сконфигурированы два счетчика, считающие импульсы от одного энкодера: абсолютный и относительный. Абсолютный автоматически обнуляется по сигналу от нулевой метки, т.е. показывает отклонение вала от нулевой метки. Относительный счетчик обнуляется программно и используется для расчета относительных перемещений.

Так вот: если в настройке HSC выбрать у одного счетчика тип однофазный, а у другого А-В, то счетчики считают по-разному. Причем не получается вычислить закономерность рассогласования. Если выставить один тип - то счетчики станут считать одинаково.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 895
Зарегистрирован: 09 окт 2012, 05:18

Re: Отображение на графе переходов в прерываниях

Сообщение Михайло » 01 окт 2013, 17:12

Автоматизатор писал(а):Абсолютный автоматически обнуляется по сигналу от нулевой метки, т.е. показывает отклонение вала от нулевой метки.

Это как реализовано? Прерыванием?

P.S. Вообще рассказал бы, как настраиваются оба HSC-счетчика. A/B-счетчик с настройкой учетверения 4Х?
Михайло
Администратор
 
Сообщения: 3403
Зарегистрирован: 19 сен 2012, 19:16

Re: Отображение на графе переходов в прерываниях

Сообщение Автоматизатор » 02 окт 2013, 16:42

Михайло писал(а):Это как реализовано?

Один счетчик (абсолютного положения HSC1) настраивается:
- для АВ квадратурного 1Х счета (входа I0.0 и I0.1) в прямом направлении,
- генерируется прерывание по событию: счетное значение равно предустановленному (для того, чтобы засечь момент прохождения мимо нулевой метки),
- с использованием внешнего входа (I0.3) для сброса,
- адрес для чтения значения ID1000.
Стоит только провернуть вал до нулевой метки, как счетчик автоматически сбрасывается. Значение счетчика - отклонение от нулевой метки.

Второй счетчик (относительного перемещения HSC3) настраивается аналогично, но без внешнего сброса:
- для АВ квадратурного 1Х счета (входа I0.4 и I0.5) в прямом направлении,
- генерируется прерывание по событию: счетное значение равно предустановленному (для того, чтобы засечь момент прохождения мимо заданного значения).

Сегодня продолжили эксперименты. Выяснили, что по приборам позиционирование выполняется с допуском +-5 импульсов, а по факту вал не доезжает почти четверть оборота (80-100 импульсов). Использовали однофазные счетчики. Есть подозрения, что вал двигателя на холостом ходу при управлении от преобразователя частоты так резко тормозит, что реверсирует. При реверсе однофазные счетчики продолжают считать вверх. Завтра попробуем с выше описанной настройкой.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 895
Зарегистрирован: 09 окт 2012, 05:18

Re: Отображение на графе переходов в прерываниях

Сообщение Михайло » 02 окт 2013, 18:18

Может счетчики HSC "захлебываются"? Ну то есть реальная частота импульсов превышает максимум для этих счетчиков.
Михайло
Администратор
 
Сообщения: 3403
Зарегистрирован: 19 сен 2012, 19:16

Re: Отображение на графе переходов в прерываниях

Сообщение Автоматизатор » 02 окт 2013, 18:56

Михайло писал(а):Может счетчики HSC "захлебываются"?

Частота маленькая. Задание 5 Гц на преобразователе - это скорость двигателя 300 об/мин - или 5 об/с - 3 кГц на счетчике.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 895
Зарегистрирован: 09 окт 2012, 05:18

Re: Отображение на графе переходов в прерываниях

Сообщение Автоматизатор » 03 окт 2013, 18:12

Сегодня настроили 4-квадратурные АВ-счетчики. Все работает. А вал двигателя действительно при торможении реверсирует.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 895
Зарегистрирован: 09 окт 2012, 05:18


Вернуться в АВТОМАТИЗАЦИЯ

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1