Устройство подсчета сыпучих материалов в элеваторе с импульсным выходом.

Всем привет. Хочу поделиться с сообществом методом и устройством подсчета сыпучих материалов в элеваторе посредством импульсов. Не так давно мой знакомый, работающий инженером в с/х предприятии попросил помощи. Парк их сх техники оборудован системами GPS-навигации. При помощи учетной программы на ПК они контролировали различную телеметрию с транспортных средств: уровни топлива, скорость, наработку по моточасам, глобальное позиционирование и тд. пришла ему идея в голову, контролировать еще и сбор пшеницы. Ему нужно было считать при помощи GPS треккера с дискретного входа количество импульсов, при прохождении лопатки с сыпучим материалом, сказал что подсчетом всего остального займется программист верхнего уровня мониторинговой программы и он сам при калибровке на весах. Привез меня в автопарк и показал старый импортный комбайн CLAAS 98 года выпуска. На нем имелся элеватор загрузки пшеницы в бункер и выгружная труба, в которой находился шнек. Внимательно посмотрев на это чудо-юдо спросил о сроках реализации. Как всегда — девайс нужен был еще вчера… В общем попросил неделю. Придя домой, пошерстив интернет, наткнулся на системы картирования урожая. Система достаточно серьезная, дорогая (5000-10 000 $), но выдрал от туда хорошую идею, они измеряли объем проходящей пшеницы посредством оптической пары: с одной стороны фотоизлучатель, с другой — фотоприемник. Эту концепцию взял за идею, хотя есть и минусы: запыление излучателя и приемника, даже супер мега фирмы рекомендуют раз в два дня очищать линзы. Присмотрел фотодатчик фирмы FOTEK CDT — 10MX за 17 баксов. Тут же пришла идея измерять выгруженное зерно, на шнек шла цепная передача со звездочкой. Решил применить индуктивный датчик FOTEK PM который считал количество зубов звезды и отправлял импульсы на GPS-треккер, там же был концевик, его запланировал завести на дискретный вход GPS-треккера, для определения, что начата выгрузка зерна, а не просто вращение шнека в холостую. Времени мало, думал как же мне определить разности по высоте сыпучего материала за время прохождения лопатки через фотодатчик.

Полазив в интернетике, нашел классную штуку — формирователь пачки импульсов.

Решил делать по блочно, схема формирователя импульсов (на входе прицепил инвертор на транзисторе на всякий случай, если вдруг будет датчик с p-n-p, частота генератора равна примерно 1кГц):

Быстренько нарисовал печатную плату (впоследствии оказалось, что нужно было неиспользуемые входа притянуть к минусу, шел фон):

Вот такой модуль получился:

Вроде бы дело в шляпе но, в элеваторе помимо сырья есть еще и сам носитель-лопатка, имеющая достаточно большую ширину порядка 20мм, ее нам считать при перекрытии оптическим датчиком не нужно. Решено было их отрезать, сделать при помощи костыля на attiny13. При помощи потенциометра на АЦП изменял плавно начало старта импульсов на выходе:

Схема получилась вот такая:

Печатная плата также была изготовлена:

Текст программы в CodeVision:
//Chip type           : ATtiny13
//Clock frequency     : 1,200000 MHz


#include <tiny13.h>
#include <delay.h>

bit enable;
unsigned char counter;
unsigned char data;

// External Interrupt 0 service routine
// Прерывание по положительному фронту входного сигнала
interrupt [EXT_INT0] void ext_int0_isr(void)
{
TCNT0= 0x00; // сброс таймера
if(counter < 255) ++counter;

if(counter > data) enable= 1;
}

// Timer 0 overflow interrupt service routine
// срабатывает через 1,71 мсек
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
c0unter= 0; // сброс количества импульсов
enаble= 0;  // запрет вывода
}


#define ADC_VREF_TYPE Оx20

// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
АDMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
АDCSRА|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x1О)==0);
АDCSRА|=0x10;
return АDCH;
}



void main(void)
{
#include "init.с"

while (1)
{
dаta= reаd_аdс(1); // считывание АЦП. Возвращает число 0..255

if(enable) PОRTB.4= PINB.1; // передача на выход входного сигнала
else PORTB.4= 0;
};
}
 


Девайс в сборе:

Оба устройства были помещены в корпуса с радиорынка;

Питание устройства обеспечил DC-DC MeanWell SD25-12A, так как на импульсник не было времени.
Все это запихали в кабину комбайна, запустили элеватор и при помощи осциллографа, потенциометром на плате с аттини13 отрезали лишние импульсы, которые давали лопатки элеватора при перекрытии фотодатчиком. После чего поехали в поле и проверили, действительно количество импульсов на каждой лопатке было разным. Дальнейшее участие в калибровке я не принимал, были какие-то трудности. Но в общем знакомый остался доволен — сказал что работает неплохо и минимум погрешностей.
Фото элеватора:

Фото элеватора и индуктивного датчика на цепной передачи шнека выгрузки:

Конечно устройство не идеальное, нет защит входов — а очень нужно, все-таки техника. Собрано модульно, а не на одной ПП, нет своего качественного стабилизатора питания (SEPIC или DC-DC). Можно было применить какую-нибудь мегу, прицепить к ней дисплей и считать импульсы уже самим микроконтроллером. Думаю данный метод (не новый и не мною разработанный) и устройство пригодится людям в автоматизации процессов. Главное, что устройство воплотилось в жизнь и трудится уже год на предприятии без замечаний.
  • +6
  • 19 ноября 2014, 18:32
  • Jman
  • 1
Файлы в топике: й.jpg

Комментарии (39)

RSS свернуть / развернуть
НИКОГДА! слышите? НИКОГДА не занимайтесь промавтоматизацией! сами же знаете свои ошибки и ставите эти девайсы на рабочую машину.
+1
  • avatar
  • xar
  • 19 ноября 2014, 21:40
В данной публикации описана суть, и принцип, а так же показан рабочий прототип. Ставить или не ставить — вопрос к инженеру, который на это пошел и остался по сей день доволен.
0
Так ведь устройство не влияет на работу агрегата, поэтому в данном случае ничего страшного. А вот учет это уже задача сложнее, заказчик на основе этих данных может принимать неправильные выводы. Но в любом случае если конструкция не оправдывает себя по точности ее можно заменить на другую. В данном случае конструкция я так понял получилась удачной.
0
Видимо да, погрешность есть… Но экономически целесобразно, уже трудно будет чего-нить стырить, и примерно можно понять, сколько собирает комбайн за заход в электронном виде, а не по бумажкам водилы, инженеров, которые вась-вась друг другу моют руки (это я так образно, без обид =)) Если вытяну пару отчетов, выложу.
0
совершенно не важно для чего оно применяется. человек, вот кстати ниже про опыт и ошибки написано. зачем делать очевидные ошибки?
0
Ну шо вы так кричите ;) каждый волен делать шо желает, не забывая о ТБ и иже с ними.
Не боги ж горшки обжигают? надо с чего то начинать и учиться на ошибках т.к. они лучше всего запоминаются.

зы заказчик волен решать поставить эксперимент за 100USD или получить результат за 10000USD (причем не факт что последнее на 100% устроит заказчика)
+1
каждый волен делать шо желает
у себя дома, на огороде, етц
надо с чего то начинать и учиться на ошибках
на гирляндах и прочих метеостанциях — пожалуйста.
0
не у всех есть огород и метеостанция, а кому и комбайн гирлянда ;)
да и ошибки кому очевидны кому нет — люди разные
+1
вся беда в том, что автор честно говорит что сам знает ошибки. ну да пофиг, продал.
0
Кстати не продал… Сделал на энтузиазме. За пиво. Только за деталюхи взял денег.
Если бы продал, дорабатывал бы и не писал публикацию на изи. Поставил бы на поток =)
0
Самое главное, это же не подделка, которая дальше верстака не пошла. У меня таких несколько коробок. Делалось для души, либо не реализованные проекты. А тут как бы заодно пшенички посчитал =) Полезное для людей сделал. Кстати, питание от Минвела, а не от борт сети многое решает, потом я везде на платах поставил супрессоры на 18 Вольт по питанию и самовостанавливающие предохранители на 0,3А, если даже и скакнет — пожгет стеклянные фьюзы. стекло 5х20 ставил после минвела (внутри блока не было, видимо срыв генерации по перегрузке, но рисковать не стал). На входе минвела фьюз стоял, так что перед блоком питания не устанавливали плавкий предохранитель. На выходе формирователя резюк на 22 Ома, если коза на выходе будет — вылетит резюк, надо было и на второй плате тоже самое сделать. А вот входы не защитил — мне минус. Можно было тоже супрессоров напихать, а перед ними резисторов 1206 на ом 20, или стабилитроны хотя бы поставить.
0
Ладно ладно, так сойдет? =) Правда времени было с месяц.
0
Да ладно так категорично говорить. Действительно бывают моменты, нужно сделать вчера. Ресурсов кот наплакал. И время, время… Человек обошелся подручными средствами, задача как-то решена. Автору на будущее: бортовая сеть источник сильных помех. И входы желательно развязать оптронами. То есть, датчик нужно было подключить через оптрон.
+1
вот вы взяли и решили что противоречие себе в одном посте — это нормально? ))
-1
А нафига формирователь пачик импульсов, если в схеме есть МК? Можно прекрасно на нем посчитать длину импульса на входе и выдать требуемое количество сигнальных импульсов на выходе.

Алсо, код помести в тег <code>.
0
  • avatar
  • Vga
  • 19 ноября 2014, 23:52
Спасибо, тег вставил. Если честно, то изначально вообще хотел обойтись без МК, так как роль сбора данных играл GPS-треккер на 32 битном Кортексе, думал просто ему пачку импульсов на вход подавать и все. Но перекрытие лопаток давало большую погрешность, сделал на скорую руку костыль на МК. Ваша идея даже лучше, ибо тикалки можно все привязать к внешнему кварцу. А это термостабильность генератора и помехоустойчивость.
0
Код в тег лучше заново вставить – сохранятся отступы и пр.
+1
Ехал костыль через костыль — видит на входе костыль а на выходе пачка импульсов.
+1
Главное что прототип получился удачным и проект на этом этапе не закрылся.
Прототип он на то и прототип для того чтобы посмотреть как в реальности будет работать а не в мастеской.
Улучшать можно до бесконечности.
В релизеом устройстве можно уже все недочёты исправить.
0
Вполне достаточная конструкция, тут главное скорость реализации. А так, даже если она и не будет работать, всё равно воровство зерна снизится до почти нуля. Главное чтобы водилы комбайнов об этом не знали ;) Такой вот эффект плацебо :)
+1
  • avatar
  • ACE
  • 20 ноября 2014, 18:19
достаточная конструкция и скорость реализации — это вам к ПЛКшника. про эффект плацебо это верно. но я бы такой аппарат на месте зказачика включать не стал. видимо совсем бюджетная шарага
0
Да ладно, на скорость не влияет. Проблем не создаст. Вот если с таким же подходом автоматизировать что-то более критичное, тогда да, тут с вами соглашусь.
0
критичность понятие растяжимое.
0
Сам подобное видел. Водители оборзели и стали красть товар с машин. Поставили видяху в фургон. Так чтобы сразу не догадались. Одного уволили и кражи прекратились. Так что тут да важен пример и психологический эффект.

Главное это сделать стабильное решение и вовремя, а из чего и как это уже не так важно.
+2
Кстати, знакомый говорит, при помощи онлайн мониторинга на двух водил уголовное завели. В день сливали по 100-200 л соляры. Операторы засекали сливы, а потом, когда накопилась почва и улики на место выезжала служба безопасности и с поличным ловила горе водителя.
0
У нас все конторские машины привязаны. Но только по трекеру. На топливо расходомер ставить там толку нет. Много ли там с газели соляры слить можно :) сразу заметно будет.
0
Идея интересная, особенно люто это бы выглядело в беспилотном варианте, один диспетчер рулит сотней комбайнов сразу.
0
Кстати, рядом стояч другой комбайн, понавороченней, так там уже стояли датчики в элеваторе, на классных кронштейнах. Зажим отжал — вытянул датчик, почистил.

Они все завязывались видимо на бортовик, внутри кабины стоял дисплей и что-то показывал — не довелось узнать. Думаю, эту инфу с датчиков можно слить по CAN шине, или прицепиться к ним вышеописанным девайсом. У датчиков было два выхода синфазных.
0
  • avatar
  • Jman
  • 21 ноября 2014, 09:47
А на фотке гидравлика какая-то.
0
В это я уже не вдавался =)
0
Прочитал статью пару раз, но так и не понял зачем нужен этот формирователь пачки импульсов ((
0
  • avatar
  • Aneg
  • 27 ноября 2014, 14:12
Оптический датчик нам дает 1 импульс всего при прохождении лопатки с зерном, но высота горки с зерном + сама лопатка бывает разная (она априори не может быть одинаковой), для этого 1 импульс я преобразовывал в пачку, что бы считать их количество за период перекрытия горки с зерном, саму толщину лопатки отсек…
0
Уже становится понятнее, то-есть здесь идет измерение длительности импульса от оптического датчика, а размерность этих измерений тоже импульсы, но маленькие импульсы из пачки.
0
Еще упоминается индуктивный датчик, который считает количество зубов звезды, но зачем это надо?
0
Это был привод отгрузочного шнека, я считал кол-во импульсов за оборот звезды и сравнивал с отгруженным зерном + на выгрузке стоял датчик хола, который давал сигнал, что идет выгрузка, а не холостой ход… Т.е данные на выходе комбайна.
0
Всего в системе используется 3 датчика?
0
Я использовал пару Оптики для элеватора (свои), Индуктивный (свой), штатный датчик холла выгрузки и штатный датчик поднятия жатки. Еще я использовал зажигание…
0
В статье все как то сумбурно излагается. Можешь расширить и углубить статью, описав все поподробней? Какие датчики использовал? Для чего использовались? Как обрабатывал данные от датчиков? Как загонял их в трекер? И самое главное, как в конце концов на основе данных от датчиков, рассчитывается количество зерна?
0
Публикация написана сугубо в целях ознакомления. Описан метод и принцип подсчета сыпучих материалов на конкретном примере. Более детально о системах класса выше можно узнать, введя в поиск: Системы картирования урожая.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.