PDA

Просмотр полной версии : ПЛК110-60М (старый). Как работать с прерываниями?



Рашид
26.07.2017, 11:21
Всем доброго времени суток.
Возникла необходимость в применении высокочастного таймера. Теорию почитал (и не один раз). Сделал проект, а прерываний по таймеру не происходит (это я сужу по тому, что переменные мои не обрабатываются). Ок, делаю просто сверхлёгкий проектик, в котором при прерывании таймера каждые 5 мс реал переменная увеличивается. Т.е. в глобальных переменных я должен видеть постоянно растущую переменную, чего не происходит.
Прошу тех, кто работал с этим таймером, ну либо у кого будут светлые мысли, подсказать, что делаю не так. Проект (простой который, чисто на пощупать таймер) и инфа от ПЛК во вложении. И да, тестил на живом контроллере. Кстати, шрифт имени POU прерывания таймера при первом подключении к ПЛК сменяет цвет с чёрного на серый (не знаю, что это могло бы значить)). Чувствую, что ларчик просто открывается, но пока не понял, как.

Решение: для корректной работы прерываний на старых контроллерах необходимо использовать прошивку 2.10.9 - http://www.owen.ru/catalog/codesys_v2/13294651

IVM
26.07.2017, 11:40
А Run при запуске программы нажимаете ?

Рашид
26.07.2017, 11:47
А Run при запуске программы нажимаете ?
Разумеется. Уже давно прошёл этап прикола со Стартом).

IVM
26.07.2017, 11:54
Надо в PLC_PRG добавить B:=B+1; и посмотреть результат. Может ПЛК вообще не дышит.

ПЛК какого года выпуска ? Может прошивку надо обновить.

Период прерывания попробуйте сделать поменьше, например 200 мкс.

Рашид
26.07.2017, 12:18
Да не, ПЛК живой, неделю назад из коробки достал. Крутил на нём до этого и после этого другой проект, без проблем. Сделан в мае этого года.
Уменьшение времени не помогло. Так же менял таргет и бибку Timer.lib (таргет с овен.ру, бибку с диска, который в нагрузку с ПЛК идёт).

Рашид
26.07.2017, 13:51
Запустил (на живом ПЛК110-60М) пример hi_timer.pro. сразу после старта программы включаются первые четыре выхода, выключаются и ПЛК перезагружается.
Увеличил время между прерываниями (сделал 100 мкс), ПЛК перестал перезагружаться, прерывания в примере есть. Буду сравнивать.

Гарчев Евгений
26.07.2017, 14:15
Для ПЛК110 не М02 (т.е. старой модификации) для корректной работы прерываний необходимо использовать прошивку 2.10.9 - http://www.owen.ru/catalog/codesys_v2/13294651

Рашид
26.07.2017, 14:51
Для ПЛК110 не М02 (т.е. старой модификации) для корректной работы прерываний необходимо использовать прошивку 2.10.9 - http://www.owen.ru/catalog/codesys_v2/13294651

Чудесно... а эту процедуру можно как-то проделать без разборок/джамперов/паяльников, не подскажите?

Рашид
26.07.2017, 16:55
Перепрошить не удалось, оно может и к лучшему, потому что в результате продолжительных мытарств удалось установить, что программа, обрабатывающая прерывания высокочастотного таймера, не будет исполняться, если в ней не объявлены локальные переменные (хотя бы одна). Даже неиспользуемые, но должны быть. Добавил булёвую переменную в TIMER_POU и всё заработало.

Гарчев Евгений
26.07.2017, 21:07
Вы пробовали вызывать программу по прерыванию с периодом менее 100 мкс и обращаться к быстрым входам/выходам напрямую на текущей прошивке? И с каким периодом требуется вызывать программу для Вашей задачи?

Рашид
26.07.2017, 21:58
На текущей прошивке я использую обращение к быстрым входам, но без direct control. У меня ожидаемая частота следования импульсов, которые надо обработать, около 200 Гц (точнее, это синхроимпульс, которым я буду стробировать отклик, который либо будет, либо нет, вот он и интересен). Получается 5 мс между импульсами. Думаю, как-нибудь уложусь и за меньшее время . В настоящее время поставил прерывания на 2 мс.

Гарчев Евгений
28.07.2017, 13:47
Ну в таком случае (без direct control и с нечастым вызовом программы по прерыванию) возможно и на текущей прошивке прерывания будут работать корректно.

Рашид
28.07.2017, 21:54
Ну в таком случае (без direct control и с нечастым вызовом программы по прерыванию) возможно и на текущей прошивке прерывания будут работать корректно.
Попробую, по возможности отпишусь. Стало интересно, немного не в тему, но всё же, какой смысл в прошивке, которая режет годный функционал ПЛК. Я к тому, что ПЛК из коробки прошит более свежей прошивкой, а с прерываниями можно корректно работать лишь откатившись.