PDA

Просмотр полной версии : Task конфигуратор



Назаров Александр
22.12.2007, 17:41
Подскажите какие системные события, указанные в конфигураторе, поддерживает платформа ПЛК Овен? В документации ничего нет::eek: .
Может я не совсем правильно сформулировал вопрос, если все системные события работают, ТО КАК НАПРИМЕР воспользоваться блокм прерывания?

Евгений Мотренко
24.12.2007, 17:33
добрый день. каким образом работают прерывания? схожи ли они с однокристальными по порядку работы?

Филоненко Владислав
25.12.2007, 10:58
это не прерывания, а события. выполняются с низшим приоритетом в системе (ниже только текущая программа плк). вытеснять уже запущенную программу не могут, обработчик вызовется только в сл. цикле плк.
аппаратных прерываний, доступных из программы, в плк нет.

Назаров Александр
25.12.2007, 17:15
Большое спасибо за пояснения. Но все же, что за параметры (dwEvent и т.д.) на входе функции? или это только для шаблона, а там называй кого и как хочешь? Хотя они нызываются системными событиями и, по уму должны происходить от переменных системы. Если нет, то это вовсе и не System events, и платформа ПЛК их не поддерживает.
С аппаратными прерываними понятно, но с програмными не очень. При работке с портами RS были бы кстати, хотя бы для обработки ошибок приемо-передачи или написания других протоколов. По опросу status-ov работать глупо.

Филоненко Владислав
25.12.2007, 22:31
Про параметры вызова сразу ничего не скажу, напрямую я их ни разу не использовал.
По поводу SysLibCom - да, эта библиотека не поддерживает вывод ошибок, но есть библиотека Unm.lib, в которой всё необходимое для обработки обмена ( в т.ч. и флаги таймаутов между символами для режима RTU) есть. Пользуйтесь на здоровье!

Евгений Мотренко
09.01.2008, 10:56
добрый день.
можно ли использовать только часть из возможных событий? если использую только прерывания не запускается основная программа! в какое системное событие её надо вписать (основную программу) каковы ограничения на её работу?
заранее большое спасибо!!

Kirill
09.01.2008, 17:24
добрый день.
можно ли использовать только часть из возможных событий? если использую только прерывания не запускается основная программа! в какое системное событие её надо вписать (основную программу) каковы ограничения на её работу?
заранее большое спасибо!!

основная программа (имеется в виду Plc_prg) в принципе вызывается автоматически системой исполнения. хотелось бы увидеть ваш проект.

Crazy
14.02.2008, 12:56
Прошу помощи.
Хотел инициализировать значения некоторых переменных по событию start в разделе Task configuration - System events.
Создал новый POU (Start_PRG), назначил его событию start.
Проект компилируется. При загрузке на PLC виснет на этапе Downloading al... с ошибкой Communication error.
Для чистоты эксперимента создал новый пустой проект - тоже самое.

Филоненко Владислав
14.02.2008, 13:43
Прошивка свежая? В старых была проблема.

Crazy
14.02.2008, 13:50
PLCInfo показывает 2.01.8

Crazy
14.02.2008, 15:21
Скачал 2.03.0
перепрошил - буду проверять.
В процессе установки выяснилось, что COM порт реализуемый на моем ноутбуке PCMCIA карточкой ARGOSY не подходит для перепрошивки :(.
Хотя для программирования и отладки всё работает. (И с S7 проблем не было). С десктопа всё прошилось.

-------------------
Заработало!
Подскажите еще есть ли событие в System events выполняющееся при сбое питания?

И еще, при добавлении новой задачи основная задача PLC_PRG перестает выполняться. Это баг или фича?

Филоненко Владислав
14.02.2008, 19:14
Подскажите еще есть ли событие в System events выполняющееся при сбое питания? -
Эту функцию можно реализовать, если к переменной статуса питания в модуле "Statistic" привязать к задаче.
Если ни одна программа не настроена в Task Manager - PLC_PRG выполняется обязательно. Иначе все задачи нужно прописывать в конфигураторе задач.

Crazy
15.02.2008, 12:46
Подскажите еще есть ли событие в System events выполняющееся при сбое питания? -
Эту функцию можно реализовать, если к переменной статуса питания в модуле "Statistic" привязать к задаче.
Если ни одна программа не настроена в Task Manager - PLC_PRG выполняется обязательно. Иначе все задачи нужно прописывать в конфигураторе задач.

Владислав спасибо за ответ.
Еще возникли вопросы:
1) Создал в Таск конфигураторе две задачи, основную (main) запускающую PLC_PRG в непрерывном цикле и еще одну (tik1s) запускающую одноименный POU. При запуске возникает надпись [DEBUG] рядом с первой задачей. При этом вторая задача не выполняется.
Попробовал на новом пустом проекте - надпись тоже появляется - обе задачи выполняются. :confused:
Что бы это значило?
2) В system events назначаю событию start еще один POU c единственным оператором инкремента переменной. При старт-стопе с CoDeSys (F5, Shift-F8) переменная увеличивается на 1. При использовании аппаратной кнопки на контроллере - на 2. Очевидно программа запускается 2 раза, интересно почему?

Филоненко Владислав
15.02.2008, 13:38
1) Скрин-шот можно (и проект)
2) странно. дребезг?

Crazy
15.02.2008, 15:04
1) Скрин-шот можно (и проект)
2) странно. дребезг?

1) Вложил
2) Маловероятно. В этом же проекте можете проверить у себя.

Филоненко Владислав
15.02.2008, 15:17
Проверил. Обе работают. Надпись есть. Надеюсь тов. Петров нас просветит.

Crazy
15.02.2008, 15:46
Проверил. Обе работают. Надпись есть. Надеюсь тов. Петров нас просветит.
А кто этот всезнающий тов. Петров? :)
Отпишитесь пожалуйста если он Вас просветит не здесь.

Филоненко Владислав
15.02.2008, 16:54
http://www.codesys.ru/

SuP
02.04.2010, 14:15
решил не множить темы, задать вопрос здесь.

требуется сделать простенькую задачу, но которая отрабатывалась бы каждые 5 (+-несколько) мс без пропусков, невзирая на то, что цикл основной задачи растягивается иногда до десятков миллисекунд. возможно ли такое?
в системных событиях для плк110 есть таймер 20 мкс. такое через него реализовать можно? или есть более правильный способ (если вообще есть)?

Филоненко Владислав
02.04.2010, 15:30
именно этот способ. таймер настраивается по периоду.

SuP
02.04.2010, 17:41
только по поводу простенькой задачи, кажется, погорячился. задача-то простенькая, кидать в Com-порт каждый раз по 30 байт из участка памяти, но вопрос в обработке этого контроллером - будет ли он реально это делать (передавать через COM-порт) каждые требуемые 5 мс, или же будет пытаться отработать всё это только тогда, когда сможет? (Для передачи 30 байт на скорости 115200 требуется порядка 2,6 мс).

Филоненко Владислав
02.04.2010, 19:13
проблем не вижу.