- обязательно заполнить свой профиль на русском языке кириллицей
- не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему
- дублирование сообщений приравнивается к спаму
- за поиск и предложение пиратского ПО - бан без предупреждения
- рекламу и частные объявления "куплю/продам" мы не размещаем ни на каких условиях
Сообщения для HMI
Модератор: специалисты по PLC
-
- корифей
- Сообщения: 722
- Зарегистрирован: 25 июл 2008, 09:06
- Имя: Леонид
- Страна: Russia
- Благодарил (а): 12 раз
- Поблагодарили: 30 раз
Сообщения для HMI
Здесь приводятся различные методы реализации сообщений от PLC к HMI
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- корифей
- Сообщения: 722
- Зарегистрирован: 25 июл 2008, 09:06
- Имя: Леонид
- Страна: Russia
- Благодарил (а): 12 раз
- Поблагодарили: 30 раз
Использование стандартных возможностей SCADA
(с) pike
В современных программируемых терминалах и SCADA тоже существует нормальный инструмент для работы с авариями/событиями (Alarm&Event List/Alarm&Event History). Очень удобно и со временем, и с датой, и с буффером громадненьким.
Аварии не должны "мигать", если зафиксирована авария поднимаем соотвествующий флаг и ни кого не должно волновать, что она исчезла. Сброс этого флага только с учетом кучи условий и в том числе с подтверждением от оператора.
В современных программируемых терминалах и SCADA тоже существует нормальный инструмент для работы с авариями/событиями (Alarm&Event List/Alarm&Event History). Очень удобно и со временем, и с датой, и с буффером громадненьким.
Аварии не должны "мигать", если зафиксирована авария поднимаем соотвествующий флаг и ни кого не должно волновать, что она исчезла. Сброс этого флага только с учетом кучи условий и в том числе с подтверждением от оператора.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- корифей
- Сообщения: 722
- Зарегистрирован: 25 июл 2008, 09:06
- Имя: Леонид
- Страна: Russia
- Благодарил (а): 12 раз
- Поблагодарили: 30 раз
Реализация при помощи кода программы
В DCS системах есть механизм передачи сообщений (алармов). В ПЛК этот механизм надо делать самим.
Для чего это надо? Ведь можно привязать сообщения к каким-то битам, состоянию дискретных параметров и т.п.
Приведу пример. У вас цикл сканирования ПЛК 50мс. ЧМИ может читать данные раз в 1 с. Получается, что ЧМИ "не видит" 19 изменений параметров из 20. Так же некоторые события являются не прямым следствием изменения параметров, а привязаны к выполнению алгоритма.
Ниже предлагаю один из вариантов реализации, требующий от SCADA ЧМИ наличия развитого программного языка. К сожалению, не все SCADA его имеют.
1. Договариваемся, что любое сообщение может иметь код от 0 до 65535, кажому коду соответствует некий текст. Как удобно сделать систему кодировки, постараюсь написать отдельно. Дополнительно можно договориться, чтобы каждому сообщению кроме текста соответсвовал определенный цвет и звуковой сигнал.
2. Выделяем в регистрах ПЛК, читаемых ЧМИ, буфер. Например на 500 регистров. И плюс один регистр - указатель буфера.
3. Делаем в ПЛК функциональный блок, который делает следующее:
- получает код сообщения для записи в буфер;
- записывает в элемент буфера, на который указывает указатель, код сообщения;
- увеличивает указатель на 1. Если указатель > 499, то указатель = 0.
4. Программа ЧМИ должна следить за указателем и хранить у себя ее копию. Если указатель и копия отличаются, то ЧМИ должен вычитать все непрочитанные коды из буфера, вывести на экран и добавить в архив.
Для чего это надо? Ведь можно привязать сообщения к каким-то битам, состоянию дискретных параметров и т.п.
Приведу пример. У вас цикл сканирования ПЛК 50мс. ЧМИ может читать данные раз в 1 с. Получается, что ЧМИ "не видит" 19 изменений параметров из 20. Так же некоторые события являются не прямым следствием изменения параметров, а привязаны к выполнению алгоритма.
Ниже предлагаю один из вариантов реализации, требующий от SCADA ЧМИ наличия развитого программного языка. К сожалению, не все SCADA его имеют.
1. Договариваемся, что любое сообщение может иметь код от 0 до 65535, кажому коду соответствует некий текст. Как удобно сделать систему кодировки, постараюсь написать отдельно. Дополнительно можно договориться, чтобы каждому сообщению кроме текста соответсвовал определенный цвет и звуковой сигнал.
2. Выделяем в регистрах ПЛК, читаемых ЧМИ, буфер. Например на 500 регистров. И плюс один регистр - указатель буфера.
3. Делаем в ПЛК функциональный блок, который делает следующее:
- получает код сообщения для записи в буфер;
- записывает в элемент буфера, на который указывает указатель, код сообщения;
- увеличивает указатель на 1. Если указатель > 499, то указатель = 0.
4. Программа ЧМИ должна следить за указателем и хранить у себя ее копию. Если указатель и копия отличаются, то ЧМИ должен вычитать все непрочитанные коды из буфера, вывести на экран и добавить в архив.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.