Segnetics

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2017, 02:25   #31
SettD
Новичок
 
Регистрация: Mar 2017
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от tvf Посмотреть сообщение
В общем то причину выявить удалось. Дело оказалось не совсем в ПИД регуляторе. Вернее не только в нем. Макрос закрыт.

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

Так что вам надо сделать так, что бы при старте стандартные макросы термодатчиков не выдавали деление на 0. Проще всего это сделать задав жестко тип термодатчика.
Спасибо попробую. Так ведь тип датчика задается из меню? А как выполнить задержку инициализации памяти?
И возможно ли в данной программе прописать частотное регулирование для вентиляторов? Заранее спасибо.
SettD вне форума   Ответить с цитированием
Старый 16.03.2017, 02:29   #32
SettD
Новичок
 
Регистрация: Mar 2017
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от ATS Посмотреть сообщение
Open 3.25 Вложение 3903

Но файлик проекта не совсем скриншотам соответствует
П3В3.rar это мои попытки разобраться с проектом. Прошу прощения залил не тот. А вот П3В3 (3.25) это исходный проект который мне передали.
SettD вне форума   Ответить с цитированием
Старый 16.03.2017, 03:43   #33
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от SettD Посмотреть сообщение
Так ведь тип датчика задается из меню?
Да, но само значение типа датчика хранится в памяти. Тип памяти EEprom. При старте программы эта память инициализируется. Это занимает некоторое время. Пока это происходит, все значения хранящиеся в этой памяти =0. Это и приводит к делению на 0 в макросе термодатчика. Так что или задавайте тип термодатчика жестко, прям на выводах макроса и выкинув строчки с типом датчиков из меню. Или ставьте блок MIN MAX (int) между выходом меню и входом макроса термодатчика. MIN=1, MAX= последний возможный тип датчика из макроса.
Макрос термодатчика хоть и стандартный, но оказалось, что имеет такую неприятную особенность.
С задержкой на инициализацию памяти сложнее. Программа настолько не структурирована, что разгребать это болото нет ни какого желания. Если избавитесь от деления на 0 в макросе термодатчика при старте, то вам эта задержка ни куда не упрется.
По поводу ПЧ. Постарайтесь что то сделать сами. Сначала определитесь, что вы хотите получить от этого. Правильно поставленная задача это половина успеха.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 16.03.2017, 05:24   #34
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от SettD Посмотреть сообщение
И возможно ли в данной программе прописать частотное регулирование для вентиляторов?
Если нет опыта в программировании, то надо делать как проще. Что можно порекомендовать:

1. Так как это сделано у NED или KORF. ПЧ сконфигурирован на управление от своих входов (запуск от входов, обороты от свего пульта) и самозапуск при подаче питания (на ПЧ замкнут вход на запуск). По силовой части включается в разрыв кабеля между щитом и двигателем вентилятора. Управление оборотами двигателя с панели ПЧ. От ПЧ к щиту уходит сигнал "Авария ПЧ", блокирующая работу системы (типа сигнал "Пожар"). Обязательное требование к ПЧ, что бы он обрабатывал сигнал на запуск по состоянию, а не по переходу.
2. Питание на ПЧ подано постоянно. ПЧ сконфигурирован на управление от своих входов (запуск от входов, обороты от входов) . Сигнал на запуск берется от выхода пуск вентилятора, пускатель не нужен, в крайнем случае - реле. Обороты вентилятора задаются из меню контроллера и через аналоговый выход к ПЧ. От ПЧ к щиту уходит сигнал "Авария ПЧ", блокирующая работу системы (типа сигнал "Пожар").
3. Любая другая вариация из 1 и 2 варианта. У всех ПЧ, как правило, существует 2 канала управления: канал управления включением/выключением и канал задания производительности ПЧ. Эти каналы можно конфигурировать на ПЧ независимо друг от друга. В любом случае регулировка оборотов вентилятора должна иметь минимум регулирования, отличный от 0 - 20/30% минимум.

Другие варианты много сложней.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 16.03.2017, 07:38   #35
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Помогите с проектом

Еще один способ избавиться от деления на 0 в макросе термодатчиков. Достаточно на выделенном входе поставить значение не равное 0. Лучше положительное.

Ну и автор макроса PIDA видимо не до конца разобрался с первоисточником регулятора.
Изображения
Тип файла: png 7.png (19.4 Кбайт, 34 просмотров)
Тип файла: png 8.png (6.7 Кбайт, 37 просмотров)


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 16.03.2017, 11:06   #36
SettD
Новичок
 
Регистрация: Mar 2017
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от tvf Посмотреть сообщение
Если нет опыта в программировании, то надо делать как проще. Что можно порекомендовать:

1. Так как это сделано у NED или KORF. ПЧ сконфигурирован на управление от своих входов (запуск от входов, обороты от свего пульта) и самозапуск при подаче питания (на ПЧ замкнут вход на запуск). По силовой части включается в разрыв кабеля между щитом и двигателем вентилятора. Управление оборотами двигателя с панели ПЧ. От ПЧ к щиту уходит сигнал "Авария ПЧ", блокирующая работу системы (типа сигнал "Пожар"). Обязательное требование к ПЧ, что бы он обрабатывал сигнал на запуск по состоянию, а не по переходу.
Спасибо за развёрнутый ответ. По электрическим связям и управлении частотников знания есть. А с логическими связями контроллера не знаком. Если есть возможность, подскажите как преобразовываются данные введённые в меню (% оборотов скорости вентилятора) в выходной сигнал 0-10В на управление? Сигнал на пуск я возьму с уже прописанного (пуск км вентилятора). Аварию пч заведу на вход от датчика давления вентилятора.

Последний раз редактировалось Arsie, 16.03.2017 в 11:24
SettD вне форума   Ответить с цитированием
Старый 16.03.2017, 11:07   #37
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от tvf Посмотреть сообщение
Ну и автор макроса PIDA видимо не до конца разобрался с первоисточником регулятора.
Ну, я не автор данного макроса, но можно написать его и самостоятельно.
Исходная информация на английском:
PIDA
PIDI
PIDP

На русском давалась ATS.

На здоровье


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 16.03.2017, 11:08   #38
SettD
Новичок
 
Регистрация: Mar 2017
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от tvf Посмотреть сообщение
Еще один способ избавиться от деления на 0 в макросе термодатчиков. Достаточно на выделенном входе поставить значение не равное 0. Лучше положительное.

Ну и автор макроса PIDA видимо не до конца разобрался с первоисточником регулятора.
Убрал связь от меню (тип датчика) и поставил "3".
SettD вне форума   Ответить с цитированием
Старый 16.03.2017, 11:25   #39
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от SettD Посмотреть сообщение
Спасибо за развёрнутый ответ. По электрическим связям и управлении частотников знания есть. А с логическими связями контроллера не знаком. Если есть возможность, подскажите как преобразовываются данные введённые в меню (% оборотов скорости вентилятора) в выходной сигнал 0-10В на управление? Сигнал на пуск я возьму с уже прописанного (пуск км вентилятора). Аварию пч заведу на вход от датчика давления вентилятора.
Нужно умножить на 10 то, что введено в меню, и подать на аналоговый выход. Тип числа Int.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 16.03.2017, 11:27   #40
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от SettD Посмотреть сообщение
Если есть возможность, подскажите как преобразовываются данные введённые в меню (% оборотов скорости вентилятора) в выходной сигнал 0-10В на управление?
Задание в меню делаете в int от 20(30)% до 100%.
Потом преобразовываете во float.
Умножаете на 10,23.
Преобразовываете в int.
Подаете на соответствующий АО*.

Суть в том, что бы 100% соответствовало значение 1023 в формате int.
Можно как предлагает Arsie, но тогда на ПЧ 50 Гц не получите.
Мой вариант тоже не дает такой гарантии: и ЦАП в сегнетиксе работает не со 100% точностью,
и АЦП в ПЧ работает не со 100% точностью. Но 49,5 Гц получить сможете.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 16.03.2017, 11:44   #41
SettD
Новичок
 
Регистрация: Mar 2017
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от Arsie Посмотреть сообщение
Нужно умножить на 10 то, что введено в меню, и подать на аналоговый выход. Тип числа Int.
От выхода в меню (данные по выбору скорости) связь до int. Во втором входе int указать 10.23 и с выхода int связь проложить до выхода AO0. И так для каждого вентилятора. Правильно понял? А вот про float? Это ещё надо что то вставлять в эти связи?
SettD вне форума   Ответить с цитированием
Старый 16.03.2017, 11:46   #42
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от SettD Посмотреть сообщение
Правильно понял?
На 10,23 вы можете умножить только float.
На 10 вы можете умножить как float, так и int.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 16.03.2017, 11:50   #43
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Помогите с проектом

Цитата:
Сообщение от SettD Посмотреть сообщение
От выхода в меню (данные по выбору скорости) связь до int. Во втором входе int указать 10.23 и с выхода int связь проложить до выхода AO0. И так для каждого вентилятора. Правильно понял? А вот про float? Это ещё надо что то вставлять в эти связи?
Ставите блок MUL(int), на один вход протягиваете связь от меню, на второй ставите число 10. Связь с выхода блока протягиваете к аналоговому выходу.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Ответ


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

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



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


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