Первые шаги в программирование

Современная автоматизация немыслима без
программирования.
И если вы ещё не пробовали это, то уже пора сделать...
...первые шаги в программирование

Главная / Проектирование / Примеры проектов /

Мой первый проект по автоматизации - автоматическая система взвешивания

Если у вас есть вопросы по автоматизации, то вы можете задать их здесь. Бесплатных советов не раздаю, но вы платите только после того, как получите ответ, и столько, сколько сочтёте нужным.

Итак, вернёмся в 2008-й год. Я работаю исполняющим обязанности начальника отдела информационных технологий на машиностроительном предприятии. Всё прекрасно. И зарплата неплохая. И работа нескучная.

Пока ещё кризис не наступил и мало кто верит, что он наступит. Но я вдруг решаю уволиться. Можно сказать, по надуманным причинам. Директор сначала не поверил. А когда поверил - расстроился. Но я ушёл.

И тут шарахнул кризис. Завод, на котором я работал, перешёл на 3-х дневную рабочую неделю. Причём работать остались только самые необходимые сотрудники. Остальных разогнали на 2/3 оклада. А я только купил машину в кредит.

Но на новом месте всё устойчиво. И работы много, и деньги без задержек. Интуиция, блин…

И вот на этом новом месте меня сразу взяли в оборот - не успел я ещё толком познакомиться с людьми, как мне поставили задачу - надо автоматизировать учёт готовой продукции (растительное масло). А я тогда даже ещё университет не закончил (ещё год оставался).

Но я никогда не боялся неизвестности. Наоборот - меня это всегда заводит. Поэтому подошёл к задаче творчески и решил её в короткие сроки.

Автоматизация учёта масла

Для понимания сути задачи сначала надо описать процесс:

  1. Оператор закачивает растительное масло в бак, который установлен на весах.
  2. Затем фиксирует вес и записывает значение в журнал. Это ВЕС-1.
  3. Оператор откачивает масло на склад.
  4. Снова фиксирует вес. Это ВЕС-2.
  5. От значения ВЕС-1 отнимается ВЕС-2. Таким образом получаем количество масла, отправленное из цеха на склад.

У руководства возникли подозрения, что операторы что-то там не совсем так записывают. Потому что расчётные значения выработки масла сильно расходились с теми значениями, которые поступали на склад. Поэтому и решили автоматизировать учёт.

Я решил задачу так:

  1. Компьютер кладовщика подключили к весам через СОМ-порт (RS-232). Весы такую возможность предоставляли.
  2. Я написал программу, которая автоматически учитывала масло, проходящее через весы.

Сегодня программа выглядит так:

Программа учёта взвешиваний

Пояснять здесь особо нечего. Ну разве что кратко расскажу об алгоритме работы:

  1. Программа непрерывно читает данные с весов.
  2. Если вес увеличивается, то программ считает, что идёт наполнение весов. Значение веса при этом записывается в колонку таблицы “Макс. вес.”
  3. Когда вес перестаёт увеличиваться, программа выжидает 3 минуты (на всякий случай). После чего считает, что наполнение завершено, фиксирует максимальный вес и начинает ожидать уменьшения веса.
  4. Когда вес уменьшается, программа считает, что идёт откачивание на склад. Значение веса при этом записывается в колонку “Кон. ост.”
  5. Когда вес перестаёт уменьшаться, программа также выжидает 3 минуты, после чего считает, что отгрузка на склад завершена. В базе данных при этом в поле “ПОСТУПИЛО НА СКЛАД” записывается значение “Макс.вес” - “Кон.ост”. Например, 3009 - 9 = 3000 кг.
  6. В базе данных также записывается значение “Макс.вес” - “Нач.ост” в поле “ПОСТУПИЛО ИЗ ЦЕХА”.
  7. Когда программа видит, что начинается наполнение, она копирует значение из колонки “Кон.ост” в колонку “Нач.ост.” следующей строки таблицы.

Ну и дальше всё идёт по кругу. Таблица очищается один раз в сутки. Также один раз в сутки в 8:00 программа отправляет отчёт по электронной почте на адреса, которые указаны в настройках программы:

Отчёт по взвешиваниям

Ну и формировать отчёты за нужный период также возможно. В сообщении также включен отчёт по сырью. Но учёт сырья выполняется другой программой - об этом как-нибудь в другой раз.

Кроме того, чтобы операторы не шалили (к примеру, они могут начать откачку сразу после закачивания - в этом случае программа не успеет зафиксировать наибольший вес и будут погрешности в учёте), ведётся лог файл, в который записываются все нештатные ситуации, такие как пропадание связи с весами, переключение насосов без паузы и т.п. Данные об этих событиях также включаются в отчёт.

Кроме того впоследствии я написал программку для анализа лог-файл, чтобы не разбирать его вручную. Вот так она выглядит:

Программа для анализа лог-файла

Есть у программы и другие возможности. Но они уже не имеют отношения к основным функциям.

Напоследок добавлю, что сегодня линия масла у нас полностью автоматизирована (тоже нашими силами). То есть перекачивание масла от прессов до весов выполняется автоматически. Так что оператор на весах больше не нужен. В ближайшее время также собираемся автоматизировать склад и отгрузку.

Ну вот как-то так живут и работают простые российские автоматизаторы...



Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su