Сделал новый отчёт о выходе значений за допустимые пределы в SCADA-системе маслозавода. Решил вкратце рассказать об этом - вдруг кому-то пригодятся какие-то мысли.
Суть в следующем. Поскольку многие технологические параметры управляются вручную, то качество этого управления напрямую зависит от опыта и меры ответственности оператора. А поскольку операторам у нас платить не любят, то и ждать от них особой ответственности было бы наивно.
Однако за качеством продукции, которое сильно зависит, например, от температуры, надо следить. Поэтому значения всех параметров записываются в базу данных.
Но есть одна неприятность - таких записей в базе создаётся несколько тысяч ежедневно, и просматривать их все никто по доброй воле не захочет. Для этого и нужны отчёты, которые выбирают только нужные записи из базы данных.
Один из таких отчётов я и сделал вчера:
Отчёт позволяет выбрать из базы записи отслеживаемых значений на одном из производственных участков. В отчёт попадают только те записи, которые соответствуют заданным условиям (датчик, период, предельные значения).
Например, мы можем выбрать только те записи, где ток жаровни 20а превышает 55А. А чтобы их не было слишком много, можем установить только нужные нам дату и время.
Ток 55А - это не случайное значение. Дело в том, что для данного оборудования это наибольший допустимый ток. И это значение может быть больше только во время пуска или при перегрузке. Соответственно, если есть превышение, то можно уже устраивать “разбор полётов” с операторами.
Кстати, был такой случай.
Работал у нас наркоман (тогда о его “увлечении” ещё не знали). И как то стали замечать, что в его смену часто ломается станок, на котором он работал. Слесаря приходят, находят в станке какие-то посторонние желёзки. Ничего понять не могут.
Пришлось установить в цехе видеокамеры. Тут то и выяснилось, что когда у этого нарика начиналась ломка, он просто бросал в станок какую-нибудь железку. Станок клинило, наркоша вызывал слесарей, а сам уходил ширяться. Да, бывает и такое...
Так что отслеживание технологических параметров в совокупности с другими средствами сильно помогает в работе. Кроме всего прочего можно делать аналитику (например, находить зависимости качества продукции от тех или иных значений - температуры, тока, давления и т.п.). Можно также найти нестандартные применения (о некоторых я уже рассказывал).
Но вернёмся к отчёту. Несколько пояснений, которые, быть может, пригодятся начинающим программистам при создании подобных программ.
- Как вы можете видеть, в группах для выбора значений довольно много флажков. Может понадобиться выбрать их все (или наоборот - все сбросить). Было бы неплохо предоставить пользователю кнопки для установки/сброса всех флажков в группе. Однако места на окне уже нет, а увеличивать его не хотелось бы. Поэтому я сделал так - двойной щёлчок левой кнопки мыши по группе либо устанавливает, либо сбрасывает все флажки (в зависимости от того, какое действие было выполнено ранее). Почему двойной, а не одинарный? Потому что при выборе флажка одним щелчком пользователь может случайно щёлкнуть по группе и будет весьма удивлён результату.
- В группе ПРЕДЕЛЫ для каждого поля ввода есть кнопки увеличения/уменьшения значения, а ввести значение в поле ввода вручную нельзя. Это позволяет избежать лишних проверок на ошибки - мы просто не даём пользователю ошибиться, так как он не сможет ввести, например, символ вместо цифры. Также и для этой группы есть событие по двойному щелчку - установка во все поля значений по умолчанию.
- Как правило, отчёты нужны за смену (24 часа, с 8 до 8). Поэтому при открытии окна отчёта в поля группы ПЕРИОД автоматически устанавливаются соответствующие значения: время 8:00, конец периода - текущая дата, начало периода - предыдущая дата. При необходимости эти значения можно изменить.
- Есть также кнопка со знаком вопроса, которая вызывает справочный файл с описанием отчёта. Если кто формирует отчёт первый раз, то может “не отходя от кассы” прочитать, как это делать.
- Есть также кнопка ЗАПОМНИТЬ, которая пока не задействована (доделаю позже). С её помощью пользователь сможет запомнить свой выбор условий отчёта (в будущем это можно сделать также отдельно для каждого пользователя). Таким образом ему не нужно будет каждый раз устанавливать нужные флажки для отчёта, который требуется наиболее часто.
Ну вот как-то так. Надеюсь, начинающим мой опыт окажется полезен. А вообще, конечно, к любому делу надо подходить творчески...