Просмотр полной версии : инициализация программы
Old_Lucky
15.04.2010, 11:23
добрый день. начали работать с овеном. появился вопрос.
есть ли у Plc-100 спец сигнал сигнализирующий о том что произошла перезагрузка контроллера(по кнопке сброс) или произошел старт программы (по кнопке старт/стоп). до этого работал с рядом буржуйских , там этот момент присутствует
нпр у Fx маркер м8002(импульс после Run) и масса других спец маркеров.
у вас в статистике присутствует сигнал только после включения питания, но этого не хватает, не обнаруживается перезагрузка и старт.
добрый день. начали работать с овеном. появился вопрос.
есть ли у Plc-100 спец сигнал сигнализирующий о том что произошла перезагрузка контроллера(по кнопке сброс) или произошел старт программы (по кнопке старт/стоп). до этого работал с рядом буржуйских , там этот момент присутствует
нпр у Fx маркер м8002(импульс после Run) и масса других спец маркеров.
у вас в статистике присутствует сигнал только после включения питания, но этого не хватает, не обнаруживается перезагрузка и старт.
Я думаю, что все эту задачу может решить прикладное ПО на контроллере (которое Вы пишете).
Заводим в энергонезависимой памяти журнал:
- (переменная) момент включения (в ПЛК есть энергонезависимые часы RTC);
- время нажатия кнопки;
- момент старта ПЛК контролируем записи в журнале;
Т.е. таким же образом, как журналируемые файловые системы детектируют неоконченные записи на диск. NTFS(Win), Ext3(Linux). При сбое по питанию проводится check файловой системы.
Или я не о том?
Old_Lucky
15.04.2010, 13:31
Немного не о том. мне надо контролировать момент старта программы контроллера на компе (Скада). Если момент включения (подачи напряжения ) контроллера можно проконтролировать, есть там сигнал Power Status, то перезагрузку и старт можно только косвенным путем. Я бы хотел узнать , есть ли спец. сигналы (маркеры, или как их называет конкретный производитель контроллера), которые меня об этом проинформируют (Старт программы, перезагрузка контроллера,)
Old_Lucky
15.04.2010, 15:27
Странно, писал ответ, не появился:( Оп-па ответ первый проявился
Ну ладно, дублирую немного расширенно.
Немного не о о том. Мне необходимы инфрормационные сигналы для:
- контроля сос стороны Скады. (включился, контроллер, был дан старт с кнопки, перегрузился с кнопки) Включение контроировать можно PowerStatus-ом. Хотелось бы и на другие ситуации был спец сигналы (маркеры, или еще что-нить)
- При включение , перзапуске, или при старте (имееться в виду с кнопки) необходимо проинициализировать программу, выдавать различные сигналы, в зависимости от ситуации. Кое-что обнулить, что-то перезапустить, и т.д. Конечно можно сделать косвенным образом, так и придется сделать, но хотелось бы не заморачиваться этим ( к хорошему привыкаешь быстро- как у FX)
Филоненко Владислав
15.04.2010, 15:51
Такую доп. информацию частично можно получить из файла debug.txt.
Однако из-за аппаратных особенностей процессора в 100% случаев нельзя быть уверенным в причине перезапуска.
lara197a
15.04.2010, 16:42
для этого есть менеджер рецептов
Николаев Андрей
15.04.2010, 16:47
а еще есть системные события... :)
Old_Lucky
15.04.2010, 17:19
что такое менеджер рецептов? где можно почитать?
как пользоваться системными событиями. до этого смотрел, вроде бы то, но где почитать описание ?
Old_Lucky
15.04.2010, 17:26
когда на русский будут грамотно переводить? менеджер рецепта это менеджер просмотра?
Old_Lucky
15.04.2010, 17:32
похоже это все-таки не то что яхочу
SergeyNG
15.04.2010, 18:46
Объявляем переменную, например, с именем bAlwaysOn типа BOOL и инициализируем её в объявлении значением =1. Получаем аналог M8000.
Объявляем переменную, например, с именем bAlwaysOff типа BOOL и инициализируем её в объявлении значением =0. Получаем аналог M8001.
Объявляем переменную, например, с именем bFirstScanOn типа BOOL и инициализируем её в объявлении значением =1. В конце первого скана сами сбрасываем значение переменной в ноль. Получаем аналог M8002.
Аналогично M8003.
Удачно освоить, просто по-другому.
Объявляем переменную, например, с именем bAlwaysOn типа BOOL и инициализируем её в объявлении значением =1. Получаем аналог M8000.
Объявляем переменную, например, с именем bAlwaysOff типа BOOL и инициализируем её в объявлении значением =0. Получаем аналог M8001.
Объявляем переменную, например, с именем bFirstScanOn типа BOOL и инициализируем её в объявлении значением =1. В конце первого скана сами сбрасываем значение переменной в ноль. Получаем аналог M8002.
Аналогично M8003.
Удачно освоить, просто по-другому.
:eek:
А если по русски и для простого народа? Понятными словами.
Аналог это аналоговый выход?
нет, тут аналог, это аналог,
то есть, то же самое....
хм...
пожалуй, для меня начали проясняться некоторые вещи, уже встреченные мной, но пока не понятые....
для чего оно сделано....
Old_Lucky
19.04.2010, 14:27
всем спасибо за советы. как самому сделать понятно то. я думал что есть встроенные средства.
Так все-таки... пробую юзать системные события - OnStart работает, OnStop тоже, On20mks - нет. Я так понимаю, target не поддерживает?
ПЛК ОВЕН110-32
Филоненко Владислав
01.06.2010, 12:57
прочитайте всю документацию. там еще нужна библиотека для использования прерывания.
Надеюсь, вы не советуете всерьез прочитать ВСЮ документацию для решения достаточно простого вопроса. Раздел 6.7 "Конфигуратор задач (Task Configuration) - Системные события" прочел, там то же, что и в help. Теперь вопросы:
1. Вызываются ли системные события в режиме эмуляции?
2. 20мкс прерывания - это достаточно часто. Видимо обработчик должен быть очень и очень коротким?
И что за библиотека нужна? В документации не указаны.
Филоненко Владислав
01.06.2010, 16:50
Хорошо, что Вы прочитали документацию на CoDeSys.
Теперь надо на сам ПЛК.
1. нет.
2. Конечно да.
Timer.lib
Дмитрий Артюховский
04.06.2010, 15:54
для таких вещей удобно писать граф аглоритма на Scf, тогда хорошо видно ( по исполняемому модулю ) была перезагрузка (прога начнет выполнение со стартового модуля) или просто питание выключалось (маркер выполнения остается в текущем модуле )
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot