- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Сообщения для HMI
Модератор: специалисты по PLC
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
Сообщения для HMI
Здесь приводятся различные методы реализации сообщений от PLC к HMI
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
Использование стандартных возможностей SCADA
(с) pike
В современных программируемых терминалах и SCADA тоже существует нормальный инструмент для работы с авариями/событиями (Alarm&Event List/Alarm&Event History). Очень удобно и со временем, и с датой, и с буффером громадненьким.
Аварии не должны "мигать", если зафиксирована авария поднимаем соотвествующий флаг и ни кого не должно волновать, что она исчезла. Сброс этого флага только с учетом кучи условий и в том числе с подтверждением от оператора.
В современных программируемых терминалах и SCADA тоже существует нормальный инструмент для работы с авариями/событиями (Alarm&Event List/Alarm&Event History). Очень удобно и со временем, и с датой, и с буффером громадненьким.
Аварии не должны "мигать", если зафиксирована авария поднимаем соотвествующий флаг и ни кого не должно волновать, что она исчезла. Сброс этого флага только с учетом кучи условий и в том числе с подтверждением от оператора.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
Реализация при помощи кода программы
В 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. Программа ЧМИ должна следить за указателем и хранить у себя ее копию. Если указатель и копия отличаются, то ЧМИ должен вычитать все непрочитанные коды из буфера, вывести на экран и добавить в архив.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.