Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2017, 06:51   #1
binarick
Новичок
 
Регистрация: Jan 2017
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Мой первый проект

Здравствуйте уважаемые!

Дайте несколько советов как проще все сделать.

Есть стеклянная комната - оранжерея.
Нужна какая то система климат контроля, чтобы цветы не замерзли и не поджарились.
В наличии: PIXEL 2511-02-0 панелька TRIM5
2 тепловые пушки(обогрев), 2 вентилятора (для смешивания воздуха), открывающиеся окна по периметру.
Придумал так: расставить 4 датчика температуры по углам и смотреть разницу между ними, если превышает гистерезис то включаем вентиляторы.
Если превысило уставку то включаем или пушки или открываем окна.

Подскажите как проще реализовать я начинающий в программировании для PIXEL



Спасибо за ваше время и ответы
binarick вне форума   Ответить с цитированием
Старый 12.04.2017, 10:35   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от binarick Посмотреть сообщение
Дайте несколько советов как проще все сделать.

Есть стеклянная комната - оранжерея.

я начинающий в программировании
Вы начинающий не в программировании, а в АСУчивании подобных объектов))

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

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

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

Это только то, что вспомнилось с налёту. Честно, вам до программирования этой задачи ещё пока далеко. Вам технолог нужен толковый

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

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

Хотя, смотря что растите. Если картофан, то там вообще почти пофигу))


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 12.04.2017 в 10:46
Arsie вне форума   Ответить с цитированием
Старый 12.04.2017, 11:13   #3
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Мой первый проект

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

Влажность контролировать очень желательно.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 12.04.2017, 11:27   #4
binarick
Новичок
 
Регистрация: Jan 2017
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от Arsie Посмотреть сообщение
Вы начинающий не в программировании, а в АСУчивании подобных объектов))
Это мой домашний проект. Сейчас все работает само по себе, и в общем то устраивает. Просто решил выкинуть кучу блоков управления каждой из установок и сделать один из Пикселя.

Вообще не очень бы хотелось обсуждать технологию, понимаю что не совершенство. В идеале вообще сказали, что нужна подготовка воздуха.
Но я не буду ничего переделывать в технологии, мне бы просто написать программку как есть.
binarick вне форума   Ответить с цитированием
Старый 12.04.2017, 12:02   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от binarick Посмотреть сообщение
Это мой домашний проект. Сейчас все работает само по себе, и в общем то устраивает. Просто решил выкинуть кучу блоков управления каждой из установок и сделать один из Пикселя.
Тогда ваш алгоритм вполне пригоден. Реализовать можно на компараторах (блоки CMP), триггреах (блоки RS) и макросах термодатчиков:

http://forum.segnetics.com/showthread.php?t=467 - термодатчики

Показания датчиков сложите между собой (блок ADD) и поделите на 4 (блок DIV).


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 12.04.2017, 13:12   #6
binarick
Новичок
 
Регистрация: Jan 2017
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Мой первый проект

Слепил немного кода.
Не могу додумать как поддержание температуры сделать правильно.
Как же не хватает ST.



Нашёл в примерах дискретный регулятор применил его к нагреву, а как приладить к нему когда A>B (для охлаждения-открывания окон) не додумаю ни как. Ну и может какие общие замечания.
Вложения
Тип файла: psl PLC single 30.03.2017 16-11.psl (382.2 Кбайт, 29 просмотров)
binarick вне форума   Ответить с цитированием
Старый 12.04.2017, 13:14   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от binarick Посмотреть сообщение
Нашёл в примерах дискретный регулятор применил его к нагреву, а как приладить к нему когда A>B (для охлаждения-открывания окон)
Банально инвертировать его выход. Либо поменять уставку и датчик. Это инвертирует любой регулятор на любом языке программирования.


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


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 12.04.2017, 13:31   #8
binarick
Новичок
 
Регистрация: Jan 2017
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от Arsie Посмотреть сообщение
Если вам нужна оценка программных решений, будьте добры написать описание: что вы хотели сделать, что получилось и какая часть программы выполняет (должна выполнять, но не выполняет) какую логику.
Условно поделил помещение на две зоны по линии движения воздуха от тепловой пушки через вентилятор и в окно (от датчика Т1 до Т2 - 1 зона и 2 зона соответственно от Т2 до Т3).

Организовал смешивание воздуха вентиляторами 1 и 2 в каждой зоне соответственно. Если Т1 != Т2 включаем вент1 (аналогично во второй зоне). Также если средние температуры Т1:Т2 и Т4:Т3 отличаются то включаем оба вентилятора.

Далее пытаюсь организовать поддержание температуры в каждой из зон (тепл. пушки и открывание окон) добавил 2 дискретных регулятора с гистерезисом прицепил на выходы включение пушек.
С нагревом теперь нет проблем, а вот охлаждением не получается....
binarick вне форума   Ответить с цитированием
Старый 12.04.2017, 13:34   #9
binarick
Новичок
 
Регистрация: Jan 2017
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от Arsie Посмотреть сообщение
Банально инвертировать его выход.
неужели так и все ?
binarick вне форума   Ответить с цитированием
Старый 12.04.2017, 13:39   #10
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Мой первый проект

Не так всё. У вас выход тепл. пушка включается когда А<=В. а выход Окна включается когда A<B (функция из NOT(A>=B)).
А если А=В - вообще оба выхода включатся.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 12.04.2017, 13:48   #11
binarick
Новичок
 
Регистрация: Jan 2017
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от Gromov Посмотреть сообщение
Не так всё. У вас выход тепл. пушка включается когда А<=В. а выход Окна включается когда A<B (функция из NOT(A>=B)).
А если А=В - вообще оба выхода включатся.
Да я это понимаю конечно про =. Вопрос не в этом. А в том что это всё равно не работает.

Ситуация открывания окон:


Ситуация включения пушки:
binarick вне форума   Ответить с цитированием
Старый 12.04.2017, 13:59   #12
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 755
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от binarick Посмотреть сообщение
Да я это понимаю конечно про =. Вопрос не в этом. А в том что это всё равно не работает.
Сделайте проще. Скажем уставка 30*С. Гистерезис 1*С. Верхний порог 31*С. Нижний прог 29*С.
1. Окно открывается когда температура стала выше 31*С.
2. Окно закрывается когда температура стала ниже 30*С
3. Калорифер включается когда температура стала ниже 29*С.
4. Калорифер выключается когда температура стала выше 30*С.
5. Вкл/Выкл через RS-тригеры. Для окна и калорифера отдельные тригеры
6. Сравнение через Мин-Макс. Для окна и калорифера отдельные блоки сравнения


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.

Последний раз редактировалось tvf, 12.04.2017 в 14:14
tvf вне форума   Ответить с цитированием
Старый 12.04.2017, 14:20   #13
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Мой первый проект

Объясните мне, и сами себе заодно, в чём разница A<B и NOT(A>B) ?

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


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 12.04.2017, 14:31   #14
binarick
Новичок
 
Регистрация: Jan 2017
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Мой первый проект

Цитата:
Сообщение от tvf Посмотреть сообщение
Сделайте проще. Скажем уставка 30*С. Гистерезис 1*С. Верхний порог 31*С. Нижний прог 29*С.
1. Окно открывается когда температура стала выше 31*С.
2. Окно закрывается когда температура стала ниже 30*С
3. Калорифер включается когда температура стала ниже 29*С.
4. Калорифер выключается когда температура стала выше 30*С.
5. Вкл/Выкл через RS-тригеры. Для окна и калорифера отдельные тригеры
6. Сравнение через Мин-Макс. Для окна и калорифера отдельные блоки сравнения
Спасибо за совет воспользуюсь если не смогу сделать

Цитата:
Сообщение от Gromov Посмотреть сообщение
Объясните мне, и сами себе заодно, в чём разница A<B и NOT(A>B) ?

Проще говоря, вы ставите лишние отрицание. Отрицать надо не другой выход, а тот же самый, тогда у вас получится, что всегда, когда не включена теплопушка - открыто окно.
Да но гистерезиса на окна не будет тогда....
binarick вне форума   Ответить с цитированием
Старый 12.04.2017, 15:00   #15
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Мой первый проект

Вот так можно


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 21:22.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024