Современная автоматизация немыслима без
программирования.
И если вы ещё не пробовали это, то уже пора сделать...
...первые шаги в программирование
Главная / Проектирование / Примеры проектов /
Мой первый проект по автоматизации - автоматическая система взвешивания
Если у вас есть вопросы по автоматизации, то вы можете задать их здесь. Бесплатных советов не раздаю, но вы платите только после того, как получите ответ, и столько, сколько сочтёте нужным.
Итак, вернёмся в 2008-й год. Я работаю исполняющим обязанности начальника отдела информационных технологий на машиностроительном предприятии. Всё прекрасно. И зарплата неплохая. И работа нескучная.
Пока ещё кризис не наступил и мало кто верит, что он наступит. Но я вдруг решаю уволиться. Можно сказать, по надуманным причинам. Директор сначала не поверил. А когда поверил - расстроился. Но я ушёл.
И тут шарахнул кризис. Завод, на котором я работал, перешёл на 3-х дневную рабочую неделю. Причём работать остались только самые необходимые сотрудники. Остальных разогнали на 2/3 оклада. А я только купил машину в кредит.
Но на новом месте всё устойчиво. И работы много, и деньги без задержек. Интуиция, блин…
И вот на этом новом месте меня сразу взяли в оборот - не успел я ещё толком познакомиться с людьми, как мне поставили задачу - надо автоматизировать учёт готовой продукции (растительное масло). А я тогда даже ещё университет не закончил (ещё год оставался).
Но я никогда не боялся неизвестности. Наоборот - меня это всегда заводит. Поэтому подошёл к задаче творчески и решил её в короткие сроки.
Автоматизация учёта масла
Для понимания сути задачи сначала надо описать процесс:
- Оператор закачивает растительное масло в бак, который установлен на весах.
- Затем фиксирует вес и записывает значение в журнал. Это ВЕС-1.
- Оператор откачивает масло на склад.
- Снова фиксирует вес. Это ВЕС-2.
- От значения ВЕС-1 отнимается ВЕС-2. Таким образом получаем количество масла, отправленное из цеха на склад.
У руководства возникли подозрения, что операторы что-то там не совсем так записывают. Потому что расчётные значения выработки масла сильно расходились с теми значениями, которые поступали на склад. Поэтому и решили автоматизировать учёт.
Я решил задачу так:
- Компьютер кладовщика подключили к весам через СОМ-порт (RS-232). Весы такую возможность предоставляли.
- Я написал программу, которая автоматически учитывала масло, проходящее через весы.
Сегодня программа выглядит так:
Пояснять здесь особо нечего. Ну разве что кратко расскажу об алгоритме работы:
- Программа непрерывно читает данные с весов.
- Если вес увеличивается, то программ считает, что идёт наполнение весов. Значение веса при этом записывается в колонку таблицы “Макс. вес.”
- Когда вес перестаёт увеличиваться, программа выжидает 3 минуты (на всякий случай). После чего считает, что наполнение завершено, фиксирует максимальный вес и начинает ожидать уменьшения веса.
- Когда вес уменьшается, программа считает, что идёт откачивание на склад. Значение веса при этом записывается в колонку “Кон. ост.”
- Когда вес перестаёт уменьшаться, программа также выжидает 3 минуты, после чего считает, что отгрузка на склад завершена. В базе данных при этом в поле “ПОСТУПИЛО НА СКЛАД” записывается значение “Макс.вес” - “Кон.ост”. Например, 3009 - 9 = 3000 кг.
- В базе данных также записывается значение “Макс.вес” - “Нач.ост” в поле “ПОСТУПИЛО ИЗ ЦЕХА”.
- Когда программа видит, что начинается наполнение, она копирует значение из колонки “Кон.ост” в колонку “Нач.ост.” следующей строки таблицы.
Ну и дальше всё идёт по кругу. Таблица очищается один раз в сутки. Также один раз в сутки в 8:00 программа отправляет отчёт по электронной почте на адреса, которые указаны в настройках программы:
Ну и формировать отчёты за нужный период также возможно. В сообщении также включен отчёт по сырью. Но учёт сырья выполняется другой программой - об этом как-нибудь в другой раз.
Кроме того, чтобы операторы не шалили (к примеру, они могут начать откачку сразу после закачивания - в этом случае программа не успеет зафиксировать наибольший вес и будут погрешности в учёте), ведётся лог файл, в который записываются все нештатные ситуации, такие как пропадание связи с весами, переключение насосов без паузы и т.п. Данные об этих событиях также включаются в отчёт.
Кроме того впоследствии я написал программку для анализа лог-файл, чтобы не разбирать его вручную. Вот так она выглядит:
Есть у программы и другие возможности. Но они уже не имеют отношения к основным функциям.
Напоследок добавлю, что сегодня линия масла у нас полностью автоматизирована (тоже нашими силами). То есть перекачивание масла от прессов до весов выполняется автоматически. Так что оператор на весах больше не нужен. В ближайшее время также собираемся автоматизировать склад и отгрузку.
Ну вот как-то так живут и работают простые российские автоматизаторы...