Управление реактором

Anatolyekb
Offline
Зарегистрирован: 06.11.2015

Добрый вечер, уважаемые коллеги!

Я учусь в инсте, занимаюсь научной работой. Знаком с ардуино относительно недавно, примерно с год. Я собирал простые проекты из обучающих видео. Собрал около 50 штук. Из оригинального - собрал шприцевой насос на шаговом двигателе под управлением всё той же ардуины. Дело оказалось довольно интересным и занятным). Но все эти схемы и проекты были довольно простыми, либо реализовывались по образцу.

Теперь я столкнулся с более сложной нетиповой задачей. Мне приходится работать с химическим реактором в лаборатории. По мере протекания реакции я отбираю пробы и их оперативно анализирую. На графике откладываю  зависимось концентрации веществ от времени. Дело кропотливое, нужно чётко соблюдать временной режим, объём пробы и т. д. Сложно, в общем. И недавно мне пришла мысль - а почему бы не автоматизировать эту работу, чтобы не измерять концентрацию вручную, а чтобы этим занималась электроника?

Смысл работы такой:

В лабораторном реакторе после смешивания компонентов начинается реакция в водном растворе. По мере прохождения реакции меняется концентрация веществ. Образуется сильный электролит. Таким образом, электропроводность раствора увеличивается. Я периодически отбираю пробу и анализирую её кондуктометром.

Что я планиру сделать:

Из реактора насосом будет непрерывно отбираться часть раствора, проходить через датчик расхода и проточную ячейку с датчиком кондуктометра, а затем возвращаться обратно в реактор. Раствор в реакторе перемешивается мешалкой с проводом от электродвигателя, число оборотов мешалки контролируется тахометром. Изначально будет задаваться расход раствора и число оборотов двигателя. Значение электропроводности будет непрерывно считываться датчиком кондуктометра и записываться в память. Это позволит строить зависимость более точно, поскольку электропроводность будет контролироваться онлайн, а не через несколько десятков секунд.

Схему установки прилагаю:

Также я думаю соединить плату ардуино и компьютер. Это необходимо для того, чтобы задавать величины расхода раствора и число оборотов мешалки не при загрузке скетча, а в диалоговом окне программы. Я видел примеры связи ардуино с Labview и Java.

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

Прошу всех помочь и подсказать с учётом опыта.

1. Может ли этот проект быть реализован на ардуино?

2. Требуется одна плата ардуино или на каждый канал измерения/управления требуется своя?

3. Какую среду для управления системой с ПК лучше использовать?

4. Возможна ли оперативная запись данных в файл для последующей обработки в экселе?

Заранее благодарю за ваши советы!

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Какое количество и каких сигналов идет от плат оборудования на Ардуино?

Anatolyekb
Offline
Зарегистрирован: 06.11.2015

Сигналы следующие:

Принимаемые:

1. От платы кондктометра. Сама плата:

http://www.dfrobot.com/index.php?route=product/product&path=36_68&produc...

У платы есть выход "электропроводность" цифрофой и выход "температура", вроде тоде цифровой.

2. От датчика расхода вроде такого:

http://ru.aliexpress.com/item/New-Water-Flow-Sensor-Switch-Meter-Counter...

Сигнал вроде аналоговый.

3. От тахометра (встроенного в привод)

Планирую использовать следующий привод:

http://ru.aliexpress.com/item/Free-shipping-1-pcs-M28N-with-545-motor-re...

Сигнал цифровой, прерывающийся ток.

Выходящие сигналы:

1. На управление насосом. Сигнал ШИМ.

Привод от платы L298N

http://ru.aliexpress.com/item/New-Dual-H-Bridge-DC-Stepper-Motor-Drive-C...

Сам насос такого типа:

http://ru.aliexpress.com/item/Mini-Water-Gear-Priming-Pump-DC-3-12V-RS-3...

Либо такого (со встроенным регулятором)

http://ru.aliexpress.com/item/DC24V-Peristaltic-Pump-Printer-Inkjet-Pump...

2. На привод.

Сигнал также ШИМ. Через такую же плату L298N.

Привод уже упомянутый (мотор с редуктором, встроенный энкодер).

http://ru.aliexpress.com/item/Free-shipping-1-pcs-M28N-with-545-motor-re...

terminal
Offline
Зарегистрирован: 02.09.2015

http://cxem.net/izmer/izmer45.php  я делел так. Выход цифровал через АЦП. По датчику температуры делал коррекцию. Плата получилась такая http://www.terminal-kom.narod.ru/gidroponika.html

terminal
Offline
Зарегистрирован: 02.09.2015

Anatolyekb, от температуры электропроводность сильно меняется. По этому нужно обязательно делать температурную компенсацию.

Anatolyekb
Offline
Зарегистрирован: 06.11.2015

terminal, совершенно с Вами согласен!

Моя идеология такова:

Использование наиболее дешевых компонентов. Сборка на уровне "готовая микросхема" - "перемычка" - "готовая микросхема". Я бы мог использовать датчик pH, но он очень инертный (от 1 до 10 мин), тем более он имеет свойство необратимого старения, т. е. теряет свои свойства даже без использования. Кондуктометр для данной задачи гораздо более применим. Он практически не имеет инерции (она зависи от скорости прокачивания раствора через ячейку и интервалов считывания данных электропроводности). Датчик кондуктометра DFRobot соединён с готовой платой одноимённого производителя. Кондуктометр имеет автоматическкую коррекцию по температуре. Производитель предоставляет и сам код. http://www.dfrobot.com/wiki/index.php/Analog_EC_Meter_SKU:DFR0300

У нас на кафедре есть кондуктометр Анион с пределами измерения 1...10^6 мкСм*см, дикретность 0,1 мкСм*см. По этому прибору я могу отъюстировать китайский датчик. Я хотел изначально использовать Анион как элемент схемы. Проблема в закрытом коде прибора - производители не светят код пользователям, даже за поверку нужно платить деньги, при этом требуется отсылать прибор на завод-изготовитель.

И всё-таки: можно ли осуществить этот проект на плате Ардуино (например, Мега)?

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

По количеству и типу сигналов управления проект вполне осуществим на одной плате Ардуино. Какая плата именно - скорее будет зависеть от особенностей ПО.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

"Число оборотов" - Вам не принципиально. Если в результате реакции образуется осадок - тогда может иметь значение направление оборотов мешалки. Обычно, следят за оборотами если мешалка имеет свойство "разгоняться", чтобы колбу не разбило - но это в лаборатории, на производстве так не бывает.

Зачем гнать реакционную смесь в отдельную "ячейку для измерения", если все можно измерить прямо в реакторе?

Anatolyekb
Offline
Зарегистрирован: 06.11.2015

Мешалка с регулируемым числом оборотов нужна для того, чтобы проводить эксперименты при различном числе Рейнольдса, тем самым задавая гидродинамический режим процесса.

Отдельная ячейка с проточной системой здесь бы и вправду не особо была необходима, но в начальных экспериментах будет измеряться электропроводность с помощью кондуктометра, а в последующих - светопоглощение раствора при разных длинах волн. Это будет уже проводиться с помощью спектрофотометра, а вот у него ячейка встроенная в сам громоздкий прибор, поэтому придётся подводить туда раствор по каналам. Естественно, для составления матмодели нужно знать (и задавать) расход через ячейку. С учётом будущих работ и задумывается проточная система.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Anatolyekb пишет:
Мешалка с регулируемым числом оборотов нужна для того, чтобы проводить эксперименты при различном числе Рейнольдса, тем самым задавая гидродинамический режим процесса.

У Вас там что, две фазы? Или тепловыделение большое планируется?

Если ход реакции сильно зависит от интенсивности перемешивания - то Вам нельзя надолго уводить раствор из реактора, т.к. в трубках, обычно, ламинарный поток.

Anatolyekb
Offline
Зарегистрирован: 06.11.2015

Да, в реакторе две фазы. Коэффициент массопередачи зависит от числа Рейнольдса, поэтому и от скорости мешалки.

При малых объёмах действительно не стоит выводить раствор из реактора, это исказит кинетику процесса. Но в нашем случае это можно учесть и описать количественно.

Anatolyekb
Offline
Зарегистрирован: 06.11.2015

Коллеги, я начал изучать Лабвью. Оказалось, что это довольно интресный язык графического программирования. Пока пытаюсь воспроизвести готвые примеры. Лабвью встал нормально (2011 и 2015 версии), LINX тоже встал, компиллятор для Ардуино также установился успешно. Сейчас делаю следующий пример:

https://www.youtube.com/watch?v=u7g-6cFNbpo

На 6:48 автор легко выбирает COM-порт из раскрывающегося списка. Мой список пуст. В нём ничего нет. Даже refresh не спасает ситуацию. Все предыдущие операции из видео идут нормально.

В чем может быть причина? Почему Лабвью не видит плату Ардуино в компорте?

vk007
Offline
Зарегистрирован: 16.06.2015

А Arduino IDE ее видит?

Anatolyekb
Offline
Зарегистрирован: 06.11.2015

Да, конечно, компилятор видит плату, без проблем загружает в неё скетчи, светодиод в скетче blink моргает на ура. Даже скетч LIFA_Base из папки Лабвью, адаптирующий плату Уно как плату расширения Лабвью, загрузился, но с некоторыми плясками, как в статье ниже:

http://forum.amperka.ru/threads/%D0%9F%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%...

В Диспетчере устройств Ардуино вполне хорошо видится как Arduino Uno (COM4). Микросхемы CH340 на плате нет.