Форум самогонщиков Сайт Барахолка Магазин Пора и выпить

Автоматизация для тех, кому она не по зубам.

Форум самогонщиков Автоматика
1 2 3 4 5 ... 68 2

Нужен ли мастер-класс по автоматизации ректификации для дилетантов?

  1. У меня уже всё автоматизировано
    60
  2. Я не дилетант, но автоматизации у меня нет.
    99
  3. Я никогда не смогу автоматизировать свою колонну
    12
  4. Хочу автоматизировать, но как это сделать?
    527
  5. Начинайте, посмотрим что из этого выйдет
    91

Всего голосов: 788

Rudy Академик Питер 5.8K 1K
Отв.20  22 Дек. 08, 18:51
Игорь, сопротивление R1 лучше взять поменьше - порядка 1 кОма для COM и 510 Ом для LPT. И обозначь куда подключаются входы управления - какой к выходу LPT (или COM) а какой к земле компьютера. Цоколевки разъемов LPT и COM:
(PG и SG на COM - питательная и сигнальная земли - в общем земля)
COM_LPT_DB25_pins.gif
COM_LPT_DB25_pins.gif Автоматизация для тех, кому она не по зубам. Автоматика.
COM_pins.gif
COM_pins.gif Автоматизация для тех, кому она не по зубам. Автоматика.
Игорь Академик - 7.4K 3.6K
Отв.21  22 Дек. 08, 20:09
Спасибо, Руди. Я использую на ЛПТ 300 ом. Там зеленым у меня про это написано, рисунок позже отрихтую, а пока занят - заканчиваю ректификацию Улыбающийся
А про куда пхать вводы в ЛПТ - уже добавил. Еще раз спасибо.
Ты меня мониторь понемногу, чтобы я как Сусанин людей не завёл куда попало. Улыбающийся
Rudy Академик Питер 5.8K 1K
Отв.22  22 Дек. 08, 21:05, через 56 мин
И еще небольшое дополнение. Можно использовать детали MOC3061,MOC3062,MOC3063,MOC3162,MOC3163, лучше с буквой M. Они различаются максимальными (гарантированно включается при токе >=) токами включения _061 -15 ма,  _062 и _162 - 10 мА, _063 и _163 - 5 мА. При использовании не __3 деталей нужно подкорректировать резистор R1 так, чтобы получить нужный ток.
Заводская схема подключения к ним симистора здесь. Та, что привел Игорь тоже будет нормально работать, но при не слишком высоких температурах (<80*С)
MOC_Connection.gif
MOC_Connection.gif Автоматизация для тех, кому она не по зубам. Автоматика.
steel.ne Научный сотрудник Киев 541 74
Отв.23  22 Дек. 08, 22:44
Судите сами. Нам нужно остановить отбор, когда любая из температур - в дефлегматоре или в насадке - станет избыточной. Это темпкипер сделает.
А восстановить отбор нужно в случае, если ОБЕ температуры вернулись к норме. А это уже проблематично для темпкипера.

А если каждую температуру повесить на отдельный пин, и сделать просто монтажное ИЛИ через два диода? Не прокатит? При превышении температуры по любому каналу (появлении на любом пине) отбор прекращается.
Игорь Академик - 7.4K 3.6K
Отв.24  22 Дек. 08, 23:10, через 26 мин
steel.ne, разумеется можно. Поначалу я так и делал. Только без ЛПТ. Я в качестве звука использовал ДТМФ-коды, н на приемной стороне дешифровывал их, и с помощью логики строил алгоритм. Вообще такую зпдачу модно решать или программно, или аппаратно. И то и другое эффективно, но есть одно но. Когда в голову приходит новая идея, переделать программный алгоритм - это переписать пару или десяток строк в программе, а переделать логическую схему... сам понимаешь.
Кроме того, отправляя очередную команду в порт, Кипер полностью забывает предыдущее состояние. Чтобы система запомнила прошлую команду, надо лепить триггер. Нет уж, лучше своими руками рождать команды и точно знать, что происходит. По крайней мере для меня это оказалось проще.

Так что, наступив уже на такие грабли, я не веду коллег в их сторону.
Кроме того, я заметил не совсем надежную отработку у ТемпКипера этой функции. Так что дальше мы от ТемпКипера будем только получать данные, обрабатывать их, и сами слать сигналы в ЛПТ-порт. И еще будем любоваться красивыми графиками от ТемпКипера.
Rudy Академик Питер 5.8K 1K
Отв.25  22 Дек. 08, 23:53, через 43 мин
На мой взляд, если нужно построить нечто полуавтоматическое, то от ТемпКипера стоит вообще отказаться с самого начала. Эта программа ничего не позволит сделать.

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

Примерный вариант такого наборчика.

Нужно обеспечить пользователю ВижуалБасика всего три основные функции работы с периферией, которые должны быть написаны специалистом.
1. Получить число термодатчиков(например: в системе три термодатчика. Они нумеруются с 1 до 3)
2. Считать данные с термодатчика с номером=...
3. Установить в 0 или 1 ножку (от 1..8) LPT.

Кроме основных функций пользователю нужен образец основной программы, в которой будет форма с полями вывода и ввода данных и несколькими кнопками.

Несколько готовых функций типа "Вывести число(или текст) в поле формы ...(номер или имя).

Функция "Громко заорать для привлечения внимания оператора"

Несколько реакций на кнопки типа "Получить значение из поля формы...(номер или имя)". Т.е. "Задать такой-то параметр по значению в поле ..."

Кнопка "Прекрати орать, я понял".

Ну и немного всякой мелочи.

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

Насколько я понимаю, Игорь уже дошел до такого состояния, что вполне сможет все это нарисовать. Ну если и не сам, так с нашей помошью. В общем можно попробовать.
Игорь Академик - 7.4K 3.6K
Отв.26  23 Дек. 08, 00:34, через 42 мин
Ступенька четвертая.
Знакомимся с не всем известной стороной экселя. VBA - вижлбейсик для приложений.

Чтобы создать свою управляющую программу, нужно всего три вещи.
1. Нужно понять, что увидели глаза.
2. Нужно уметь управлять руками.
3. Нужно научится самому, а потом научить программу как обработать увиденное, чтобы дать задание рукам.

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

Открываем эксель, жмём одновременно альт-F11, или, что то же самое, Сервис => Макрос => Редактор Visual Basic.
Открывается окно редактора. У меня этот редактор нерусифицированный, так что могут быть неясности, но мы их решим.
Жмём в меню Insert => UserForm
В редакторе появится форма UserForm1. Щелкаем по форме, должна появиться панель ToolBox. Теперь, используя её, размещаем на поле формы два объекта - две кнопки CommandButton1 и CommandButton2, и текстовое окно TextBox1

Теперь дважды щелкаем по любому из этих объектов. Откроется окно кода.

Удаляем всё, что там написано, и вставляем вот этот код.

Private Sub CommandButton1_Click()
textbox1 = "Первая"
End Sub
Private Sub CommandButton2_Click()
textbox1 = "Вторая"
End Sub

Private Sub UserForm_Click()
textbox1 = "Никакая"
End Sub

Теперь нажимаем F5. Программа запускается на выполнение. При нажатии на первую кнопку, в текстовом окне пишется "первая". Если вторую - "вторая". Если щелкнуть по полю формы мимо кнопок, будет написано "Никакая".

Не получилось? Пишите, разберёмся.

Получилось? Поздравляю. Первая программа уже работает.
Закрываем окно формы кликом по крестику, как любоё окошко Виндоус.

Берем быка за рога. Сейчас слямзим из лог-файла темпкипера данные о температуре.

Добавляем на форму еще два текстовых окна и формируем внешний вид формы примерно так.

code1.jpg Автоматизация для  тех, кому она не по зубам
code1.jpg Автоматизация для тех, кому она не по зубам. Автоматика.


Теперь даблкликаем по любой кнопке, переходим к коду, удаляем всё, что там было, копируем и вставляем новый код.

Private Sub UserForm_Activate()
   CommandButton1.Caption = "Termometer #1"
   CommandButton2.Caption = "Termometer #2"
   TextBox1 = "d:\Program Files\Temp. Keeper\Logs\keeper.log"
End Sub

Private Sub CommandButton1_Click()
   Open TextBox1 For Input As #1
   While Not EOF(1)
       Line Input #1, r
       TextBox2 = Trim(Mid(r, 11, 10))
   Wend
   Close #1
End Sub
Private Sub CommandButton2_Click()
   Open TextBox1 For Input As #1
   While Not EOF(1)
       Line Input #1, r
       TextBox3 = Trim(Mid(r, 21, 10))
   Wend
   Close #1
End Sub

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

Если в широком окошке появился путь к лог-файлу и его имя, ничего менять не надо. Если у вас определен другой путь или имя, нужно в текстовом окошке подправить.

Настал момент истины. При нажатии на кнопку первого или второго термометра, в соответствующем текстовом окошке появится его текущая температура.

Если получилось - мои поздравления. То, что нам нужно было от темпкипера, мы получили.
Не получилось? Пишем, вместе разбираемся и побеждаем.

-------------------------------------------------------------------

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

--------------------------------------------------------------------

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

После этого будем менять напряжения на ножках ЛПТ прямо из экселевского вижлбейсика.

P.S. Rudy, пока я кропал свой текст, ты почти полностью изложил мои дальнейшие планы. Улыбающийся
Почти - потому, что я не отказываюсь от темпкипера. Он исправно читает данные, сохраняет читабельный лог и рисует красивые графики. Не сбоит и не глючит. И при этом почти не жрёт системных ресурсов. И я бы изменил своей дилетантской сущности, если бы эти плюсы не использовал.
Честно говоря, я пытался на вижлбейсике состряпать считывающую программу, используя далласовский SDK. Ничерта не получилось. Сначала эта гадина потребовала установить виртуальную машину джава, потом - какой-то .NET, потом еще немного повы..бывалась, и я послал эту задумку на три весёлых буквы. В сад. Понял, что мне проще тягать данные из темпкипера.
Сначала, пока не имел зарегистрированного кипера, я декодировал картинку с экрана и получал таким путём цифры. Это было нечто! Но получилось. И работало. Но когда кипер стал писать лог, всё стало очень просто. Пара строк кода. Открыл лог - перелистал до конца, всял последнюю строку и вынул из неё цифирьки.
Если каким-то путём решится задача по прямому считыванию с датчиков - нет проблем, поменяется пару строк кода. Даже интерфейс проги не изменится. Но я считаю, что пока нужно направить силы не на это (данные-то приходят), а на разработку добротного алгоритма управления. На хорошую конструкцию узла управления отбором. На другие не менее важные вещи.

Rudy Академик Питер 5.8K 1K
Отв.27  23 Дек. 08, 02:52
Игорь, использовать или нет ТемпКипер-неважно. Главное, получать данные от датчиков. А спец функции или темпкипер - плевать для начала. Кому нужно больше - сам разберется. А так проще.

А спец функции когда-нибудь кто-нибудь напишет. А может они уже есть, нужно только поискать. Но замена чтения лог-файла запросами спец функций - дело минут.
сообщения удалены (4)
Klim Научный сотрудник Новокузнецк 1.7K 524
Отв.28  23 Дек. 08, 19:32
Да работает.Два датчика с паразитным питанием.Отсутствие "третей ноги" пока не сильно напрягает,что-бы схемку перепаивать.Программа зарегистрирована.Лог-файл работает,пишет.Сейчас только разберусь с предновогодними проблемами и начну осваивать новшества,думаю пойму что к чему,написано толково,поэтапно.
Kotische Академик Саратов 8K 2.4K
Отв.29  23 Дек. 08, 21:52
  • меня уже всё автоматизировано
  • Я не дилетант, но автоматизации у меня нет.
  • Я никогда не смогу автоматизировать свою колонну
  • Хочу автоматизировать, но как это сделать?
  • Начинайте, посмотрим что из этого выйдет
А у меня ещё не всё автоматизировано...  Грустный
Я умею плавно рулить мощность ТЕНа с компутера,
и у меня есть заготовка проги, которая читает температуру с датчиков напрямую без термкипера...
но хотя я и купил датчики давления, прикрутить их к колонне всё руки пока что не доходят...  Плачущий
и клапана отбора у меня пока нету...  Плачущий  Плачущий  Плачущий
Игорь, какую строчку в опросе мне выбрать?!

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

Напиши что ты думаешь по этому поводу!
сообщение удалено
Игорь Академик - 7.4K 3.6K
Отв.30  23 Дек. 08, 23:10
Ты же - апологет эмульгационного режима работы колонны, Kotische, 23 Дек. 08, 21:52
Пока попробовал поработать на своей колонне в затопленном режиме без переливной системы. Сразу скажу, что тэто геморойно, и прежде чем советовать кому-то такой принцип, я должен сам увидеть и понять его насквозь, от начала до конца. А этого пока нет.
Зато я наскувозь вижу систему старт-стопового регулирования и смело могу её рекомендовать. Чем, собственно, и занимаюсь.
Даже мой лифт - винтовой подъемник - оказался не таким уж и хорошим помощником старт-стопу, который и без того великолепно справляется с поставленной задачей.

Выдавая "на-гора" систему старт-стопового управления и привлекая к ней коллег, я - как всегда - преследую свои корыстные интересы. Чем больше людей её освоят, чем больше процессов ректификации с её помощью будет проведено на разных конструкциях, тем больше возможности будет для выработки добротного алгоритма управления как отбором, так и мощностью (давлением).
По давлению у меня уже есть некоторые наработки и задумки, но я пока воздержусь от их "оприлюднення" (ёмкое славянское слово, по вашему это "публикация, опубликование").
Игорь Академик - 7.4K 3.6K
Отв.31  23 Дек. 08, 23:42, через 32 мин
...Два датчика с паразитным питанием...Программа зарегистрирована...Лог-файл работает...
Klim, 23 Дек. 08, 19:32
Тебе осталось сделать последнее - собрать схемку на МОС, симисторе и двух сопротивлениях, воткнуть в ЛПТ и подключить обычную электролампу на 220 вольт.
Я тебе сброшу маленький (килобайт 30) ехе-файлик, и всё готово.

Кстати, а ну-ка возьмём тот скрин моей программы, который так испугал тебя. Незнакомое пугает. Поэтому знакомимся поближе.
7ch.jpg
7ch. Автоматизация для тех, кому она не по зубам. Автоматика.

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

Под этим - Температура дефлегматора
Те же яйца, только для второго термометра.

Правее - их обоих - Управление.
Там я выбираю что делать, если температура одного из датчиков превысит установленное значение, и что делать когда обе температуры вернутся.
У меня настроено так, что при зашкале любого датчика на всех ножках ЛПТ нет напряжения, а при возврате к пределу появляется напруга на ножке № 4 (к ней у меня и подключена через опторазвязку и реле катушка клапана отбора.)
Окошко ниже - путь к ТемпКиперовскому логу.
Еще ниже настраивается периодичность отбращения к темпкиперу - как часто брать данные из его лог-файла.
Две кнопки ниже запускают и останавливают этот процесс.

В правом верхнем углу польними синими буквами показывается текущее состояние клапана отбора и есть две кнопки, позволяющие вручную открыть или закрыть клапан.

Остальные окошки в нижней половине окна не управляют, а просто собирают статистику о прошедших 100 циклах измерений. Они поначалу не нужны.

Итак, Клим, если бы у тебя были собраны в кучу 4 детали, подключаемые к ЛПТ, и стоял бы клапан отбора, ты бы мог уже сегодня взять эту готовую программу и без проблем управлять старт-стопом.
Но я не спешу этого делать, так как не знаю, что за клапан ты поставишь. Если просто ЭМК на 12 вольт, программа и схема уже есть (кстати, схемка еще за мной). Если же это будет фреоновый клапан от холодильника, то для его управления надо будет сделать немного другую схемку и чуть-чуть переделать программу.




сообщение удалено
Vlad Студент Grimma 45 3
Отв.32  24 Дек. 08, 00:00, через 18 мин
Моя вина. Слишком вперед ломанулся. Ступенька есть ступенька... Игорь, 23 Дек. 08, 18:41
Ты не прибедняйся! Твоя "Азбука", когда завершишь, потянет не хуже Перельмановских, на мой взгляд. Только опубликовать успей! А? Не проворонь!
Материал у тебя подобран, слог нормальный, причесать слегонца... Да материала добавить до объективности... Мы и подмогнём?
Но ты мне тут панику не разводи. Игорь, 23 Дек. 08, 18:41
Какая паника?
Улыбающийся
Ты сам её не нагнетай?
Подмигивающий

ПыСы: А на счёт следующих "ступенек" у меня есть соображения, только я не знаю умеешь ли ты, используя VBA, кроме записи в LPT, читать из него или из какого-либо COM?
Игорь Академик - 7.4K 3.6K
Отв.33  24 Дек. 08, 00:08, через 8 мин
умеешь ли ты, используя VBA, кроме записи в LPT, читать из негоVlad, 24 Дек. 08, 00:00
Чтение из ЛПТ не сложнее записи в него. Одна строчка в программе.
Vlad Студент Grimma 45 3
Отв.34  24 Дек. 08, 00:50, через 43 мин
Чтение из ЛПТ не сложнее записи в него. Одна строчка в программе.Игорь, 24 Дек. 08, 00:08

Я подозревал, что оно так, но не было уверенности.
Тогда предлагаю зарезервировать один из контактов LPT для чтения в программу состояния "пресостата" - типа ON/OFF с привязкой (т.е. контролем) времени относительно Вкл/Выкл ТЭНа.
Оно возможно?
Игорь Академик - 7.4K 3.6K
Отв.35  25 Дек. 08, 17:21
Коллеги, получайте первую версию программы для старт-стопа с клапагом-отсекателем.

Для её работы надо будет поставить драйвер порта.
http://www.driverlinx.com/ftp/unsupported/port95nt.exe

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

Респект Альтаиру. Это он откопал методику работы с ЛПТ.

---------------------------
Кто попробует- пишем о недостатках. Будем устранять.

Первый недостаток - настройки не сохраняются, и при каждом пуске их надо устанавливать по новой.
Устраним.
start_stop.zip 14.2 Кб
Rudy Академик Питер 5.8K 1K
Отв.36  25 Дек. 08, 18:27
Игорь, проблемы с закачкой драйвера портов. Добавь его в zip.
Klim Научный сотрудник Новокузнецк 1.7K 524
Отв.37  25 Дек. 08, 18:59, через 32 мин
У меня даже "эксель" не установлен.Исправлюсь.А как программа реагирует на ошибки в считывании?Какое выполнит действие если датчик выдаст секундное "err"?
Игорь Академик - 7.4K 3.6K
Отв.38  25 Дек. 08, 21:37
Rudy, Я почему-то не могу прикрепить 1,5 метровый файл к сообщению.

Так что архив с драйвером можно скачать на
https://absinthe.ho.ua/port95nt.zip

а сам архив программы - на
https://absinthe.ho.ua/start_stop.zip

Клим, тебе не нужен эксель! Программа написана на вижлбейсике и откомпиллирована.
В архив вложен ЕХЕ - файл, который будет работать и без экселя. Так что качай и запускай.

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

Считаю это ошибкой. Спасибо. При выдаче датчиком НЕ ЦИФРЫ это будет восприниматься как сигнал  к закрытию клапана
Игорь Академик - 7.4K 3.6K
Отв.39  28 Дек. 08, 14:12
Ну что, коллеги - самогонщики, притихли. Хоть кто-то запустил драйвер ЛПТ? Хоть у кого-то переключаются напряжения на ЛПТ-порте?
У меня тут уже готова программка для управления отбором паровой фазы, но дальше не иду, и так залез далековато...