PDA

Просмотр полной версии : как логировать старт/стоп?



Ушаков Николай
15.06.2007, 12:08
подскажите пожалуйста как в плк150 в прошивке 2.01.1 логировать старт/стоп?

Филоненко Владислав
15.06.2007, 12:32
Данные о событиях старта/стопа от внешних источников (т.е. кроме управления из среды разработки) сохраняются в файле log.txt.
Также к этим событиям в менеджере задач можно привязать обработчики и сохранять/передавать информацию о них.

Ушаков Николай
15.06.2007, 12:39
а как добавить обработчик? делаю так - добавляю библиотеку SysLibCallback.lib, ставлю галочку в System Events на поле start - кнопка createPOU не активна, проект не компилится - говорит что "POU for system event start nod defined" :(

Филоненко Владислав
15.06.2007, 13:27
там справа поле напротив события - впечатать имя программы-обработчика

aven
15.08.2011, 14:14
там справа поле напротив события - впечатать имя программы-обработчика
Интересно и чего там на входы можно подавать?
Или её самому нельзя вызывать? Или наоборот где-то надо обязательно?

Гарчев Евгений
16.08.2011, 18:00
Про какие входы Вы говорите? "Обработчики" можно вызывать через конфигуратор задач, либо в программе с помощью функции syscallbackregister, на вход этой функции задаете POU-индекс вызываемого "обработчика" (indexof(<название "обработчика">)) и событие по которому вызывается "обработчик" (EVENT_<событие>).

aven
21.08.2011, 16:10
Про какие входы Вы говорите? "Обработчики" можно вызывать через конфигуратор задач, либо в программе с помощью функции syscallbackregister, на вход этой функции задаете POU-индекс вызываемого "обработчика" (indexof(<название "обработчика">)) и событие по которому вызывается "обработчик" (EVENT_<событие>).
FUNCTION AfterReset: DWORD
VAR_INPUT
dwEvent: INT;
dwFilter: INT;
dwOwner: INT;
END_VAR
В них что-то можно писать? То есть я имею ввиду идею общей функциональности. Если мне нужна процедура предварительной установки переменных, так зачем её держать сразу в двух блоках? Может просто вызвать когда захочется AfterReset?

Валенок
21.08.2011, 22:06
С переменными по афтерRESET - облом. Про это тут где-то есть

nexus
13.01.2017, 11:14
Про какие входы Вы говорите? "Обработчики" можно вызывать через конфигуратор задач, либо в программе с помощью функции syscallbackregister, на вход этой функции задаете POU-индекс вызываемого "обработчика" (indexof(<название "обработчика">)) и событие по которому вызывается "обработчик" (EVENT_<событие>).

Помогите пожалуйста. То есть допустим по событию Стоп мы создали pou "plc_stop". Этот созданный pou мы подаем на вход функции syscallbackregister, а на вход Event необходимое событие. А что писать в pou? Я просто правый раз столкнулся с такой ситуацией. Не очень разбираюсь в этом, так что если что не сильно смейтесь)))

Гарчев Евгений
14.01.2017, 15:00
Ну я считаю, что обработка событий старт/стоп - может быть полезна только при отладке. Т.к. основной и наверное единственный внешний источник этих событий - это кнопка "старт/стоп" на ПЛК. А при запуске в эксплуатацию необходимо отвязывать эту кнопку от функционала запуска/останова основной программы, добавив в конфигурации подэлемент Button, чтобы исключить события старт/стоп.
Какие действия прописать в программах, привязанных к событиям? Для старта, например, инициализация соответствующих переменных, для стопа - перевод выходных переменных в соответствующее состояние ...

nexus
18.01.2017, 11:19
Ну я считаю, что обработка событий старт/стоп - может быть полезна только при отладке. Т.к. основной и наверное единственный внешний источник этих событий - это кнопка "старт/стоп" на ПЛК. А при запуске в эксплуатацию необходимо отвязывать эту кнопку от функционала запуска/останова основной программы, добавив в конфигурации подэлемент Button, чтобы исключить события старт/стоп.
Какие действия прописать в программах, привязанных к событиям? Для старта, например, инициализация соответствующих переменных, для стопа - перевод выходных переменных в соответствующее состояние ...

А при эксплуатации ПЛК не может перейти в состояние "Стоп"? Или перезагрузится?
Вот скажите пожалуйста, новичку, допустим ПЛК перешел в режим Стоп, он сможет выдать сигнал с помощью системных событий или с помощью функции SysCallbackRegister. Я просто первый раз столкнулся с такой работой, надеюсь на Ваше разъяснение. Заранее спасибо

capzap
18.01.2017, 11:28
А при эксплуатации ПЛК не может перейти в состояние "Стоп"? Или перезагрузится?
остановиться может если не будет добавлен в конфигуратор модуль Button, перегрузится тоже может, но если выполнен пункт создания загрузочного приложения, то сразу же стартанет по новой

nexus
18.01.2017, 11:38
остановиться может если не будет добавлен в конфигуратор модуль Button, перегрузится тоже может, но если выполнен пункт создания загрузочного приложения, то сразу же стартанет по новой

Просто понимаете, необходима какая нибудь сигнализация с выхода ПЛК о его неисправности, то есть если перешел в стоп или перезагрузку.

nexus
18.01.2017, 11:42
остановиться может если не будет добавлен в конфигуратор модуль Button, перегрузится тоже может, но если выполнен пункт создания загрузочного приложения, то сразу же стартанет по новой

Скажите пожалуйста, такая реализация не правильная? И можно ли задействовать дискретный выход ПЛК для оповещения обслуживающего персонала?

SysCallbackRegister(INDEXOF(PLC_PRG), EVENT_BEFORE_RESET );

SysCallbackRegister(INDEXOF(PLC_PRG), EVENT_STOP );