elek72
29.06.2016, 14:55
Всем доброго дня.
На ПЛК 110-24.30.Р-М понадобилось сделать подобие системы позиционирования (к быстрому входу подключен энкодер 250 имп/об).
Вариант 1: режим fast encoder - имя переменной "encdr", предел счета 65535 что в пересчете на линейное перемещение в мм хватает.
Проблема: надо обнулить "encdr" - для теста использую системный вход F1 - по нажатию на F1 записываем по указателю на переменную "encdr" ноль.
Кнопку держим "encdr" равен 0, отпускаем "encdr" принимает прежнее значение - что не так или глюк ПЛК ?
Вариант 2: режим fast direct inputs, активируем прерывания (один раз как положено), вызывается программа по таймеру на 100мкс. Все работает.
Проблема: В codesys отключаемся - и больше подключиться невозможно - по com порту контроллер не отвечает,
по ethernet пишет что не правильно выбрана target платформа. На кнопку старт/стоп не реагирует. Подключаюсь только после нажатия reset с зажатой
кнопкой старт/стоп (после чего программа из памяти контроллера стирается).
И что делать? Возможно ли решение этих проблем или сдавать Ваши контроллеры обратно поставщику?
Должны еще подвезти ПЛК модификации М02 - будет ли там работать все корректно?
К разработчикам: Почему быстрый вход сам не может генерировать прерывание и соответственно использовать его на вызов высокоприоритетной задачи (счетчики, энкодеры)?
По прерыванию по timer в корне неправильно работать с счетчиками или энкодерами - считывать состояние входов надо когда они меняются, а у Вас это преподается в видеоуроке по ПЛК 110-x.x.x-x [M02] работаем с энкодерами по временнОму прерыванию каждые x мкс http://www.owen.ru/uploads/chast_10.html .
На ПЛК 110-24.30.Р-М понадобилось сделать подобие системы позиционирования (к быстрому входу подключен энкодер 250 имп/об).
Вариант 1: режим fast encoder - имя переменной "encdr", предел счета 65535 что в пересчете на линейное перемещение в мм хватает.
Проблема: надо обнулить "encdr" - для теста использую системный вход F1 - по нажатию на F1 записываем по указателю на переменную "encdr" ноль.
Кнопку держим "encdr" равен 0, отпускаем "encdr" принимает прежнее значение - что не так или глюк ПЛК ?
Вариант 2: режим fast direct inputs, активируем прерывания (один раз как положено), вызывается программа по таймеру на 100мкс. Все работает.
Проблема: В codesys отключаемся - и больше подключиться невозможно - по com порту контроллер не отвечает,
по ethernet пишет что не правильно выбрана target платформа. На кнопку старт/стоп не реагирует. Подключаюсь только после нажатия reset с зажатой
кнопкой старт/стоп (после чего программа из памяти контроллера стирается).
И что делать? Возможно ли решение этих проблем или сдавать Ваши контроллеры обратно поставщику?
Должны еще подвезти ПЛК модификации М02 - будет ли там работать все корректно?
К разработчикам: Почему быстрый вход сам не может генерировать прерывание и соответственно использовать его на вызов высокоприоритетной задачи (счетчики, энкодеры)?
По прерыванию по timer в корне неправильно работать с счетчиками или энкодерами - считывать состояние входов надо когда они меняются, а у Вас это преподается в видеоуроке по ПЛК 110-x.x.x-x [M02] работаем с энкодерами по временнОму прерыванию каждые x мкс http://www.owen.ru/uploads/chast_10.html .