![]() |
![]() ![]() |
|
Форум Segnetics Территория общения |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Guest
Сообщения: n/a
|
![]()
Макрос хорошо написан, но не до конца.
Из логики макроса при сильном отклонении t от t_уст (т.е. сигнал от PID - max) макрос включит одновременно все ступени калорифера. Если калорифер мощный, разом будет закоммутированна слишком большая нагрузка. А этого следует избегать. Необходимо, при одновременном включении нескольких ступеней, коммутировать их последовательно с интервалом 2-3 сек. Вопрос: Если ввести задержку перед включением каждой последующей ступени, калорифер сразу приобретет определенную инерционность. Время реакции системы увеличится. Это должно отразиться на работе PID-регулятора. А как, я пока не понимаю. Может кто объяснит? Как компенсировать увеличение инерционности системы в настройках PID-регулятора? |
![]() |
![]() |
#2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]() Коммутация: ТЭНы - это резистивная нагрузка, сопротивление которой, кстати, не сильно меняется от температуры (имею ввиду обычные воздушные), поэтому сказать 'коммутируется слишком большая нагрузка' нельзя. Соответственно последовательный запуск имеет смысл делать только в случае, когда подводимой мощности хватает 'в притык'. Почти ватт к ватту ![]() ![]() Ну а насчёт ПИДа - всё просто, 2-3 секунды, умноженные даже на 5 ступеней - ничто по сравнению с временем разогрева(секунд 30)/остывания(не менее 10 сек)/задержки_переключения(180-900 сек для пускателей)/инерцией_датчика(30 сек и выше). Регулятор наверняка ничего не заметит, т.к. постоянная времени электрокалорифера уже не ниже 30 сек. |
![]() |
![]() |
![]() |
#3 |
Новичок
Регистрация: Jan 2006
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
У вас есть программа для управления электрическим калорифером. Нельзя ли поподробнее узнать о методах регулирования, т.е. используется ли там ШИМ.
Какие семисторные реле со входом 0..10 В вы используете на своих объектах. Тема для нас новая, раньше работали с электричеством на ТТС. Хотели бы использовать ваш контроллер для домашнего применения. Какие варианты настенного монтажа вы можете предложить. Возможно ли встраивание контроллеров в стены? Я имею ввиду поправки на температурные параметры... Заранее спасибо. |
![]() |
![]() |
![]() |
#4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
Регулирование производится несколькими способами:
1) одна секция ТЭН, управление посредством ШИМ (твердотельное реле), регулирование быстрое и качественное. 2) одна секция ТЭН, управление посредством пускателя (большие задержки и как следствие низкая точность удержания температуры). 3) одна секция ТЭН, управляемая посредством ШИМ + одна или несколько (до 4) секций, управляемых пускателями. Такой метод позволяет быстро реагировать на изменение температуры в расчётном диапазоне (насколько позволяет мощность секции, управляемой ШИМ), но при этом быстрая реакция на резкие и при этом большие скачки температуры невозможна. 4) несколько секций ТЭН, управляемых посредством пускателей. Недостатки как в пункте (2), но менее выраженные - т.к. секций много. 5) Как пункт (3), только все секции управляются твердотельными реле. Регулирование быстрое и качественное, разделение на секции позволяет уменьшить уровень помех, создаваемых электрокалорифером. 6) контроллер выдаёт сигнал управления 0..10В для внешнего блока, который управляет секциями ТЭН по своему усмотрению. Для преобразования аналогового управления от регулятора существует макрос, который реализует приведённые выше схемы управления. -------- Встраивание в стены в принципе ничем не отличается от встраивания в шкафы, лишь бы нужные требования выполнялись (температура, влажность, среда, вибрация)... Общий ответ дать сложно. По поводу настенного монтажа: info@smode.ru Последний раз редактировалось Arsie, 02.03.2006 в 17:43 |
![]() |
![]() |
![]() |
#5 |
Guest
Сообщения: n/a
|
![]()
Я просмотрел большое количество информации о RS485 и пришел к
выводу что наиболее правильным способом расключить контроллеры является: - подключение A и C (Data-, Data+) на одну витую пару через предохранители). - подключение E на один из проводов другой витой пары (общая земля) и подключение E на местную защитную землю через резистор 100ом. - подключение оплетки в одной точке на защитную землю. - установка терминаторов на крайних точках линии. Используется кабель SFTP 5cat. На компьютере - оптически изолированный адаптер RS485. В адаптер встроены терминаторы и подтяжка сигналов линии (biasing). Несмотря на следование всем рекомендациям спецификации связь очень нестабильна. Наблюдаются крайне странные эффекты - например, если подключить оплетку в земле в более чем одной точке, то связь улучшается. На некоторых линиях SMLogix либо не находит контроллеров вообще, либо сообщает что "на этой линии уже работает master", причем изменение скорости передачи на это сообщение никак не влияет. Может есть какие-то особенности подключения SMH к RS485? Надо ли использовать общий провод? Стоит ли подключать его на каждом контроллере к защитной земле? Каким все-таки образом лучше заземлять оплетку? |
![]() |
![]() |
#6 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
>
> Мы просмотрели большое количество информации о RS485 и пришли > к заключению что наиболее правильным способом расключить контроллеры > является: > > - подключение A и C (Data-, Data+) на одну витую пару через > предохранители). Правильно. > - подключение E на один из проводов другой витой пары (общая > земля) и подключение E на местную защитную землю через резистор 100ом. Лучше на пару, а не на один из проводов. Подключение к земле спорно. > - подключение оплетки в одной точке на защитную землю. Спорно. Очень спорно. > - установка терминаторов на крайних точках линии. > Верно. > Мы используем кабель SFTP 5cat. Разумно. > На компьютере используется оптически изолированный адаптер > RS485. В адаптер встроены терминаторы и подтяжка сигналов > линии (biasing). > Подтяжка может и помешать. Оправдана исключительно при большом количестве устройств. > Несмотря на следование всем рекомендациям спецификации связь > очень нестабильна. Наблюдаются крайне странные эффекты - > например, если подключить оплетку в земле в более чем одной > точке, то связь улучшается. На некоторых линиях SMLogix либо Скорее всего у провода 'земли' сопротивление велико. У sftp вроде килоом на километр, поэтому лучше для земли выделить целую пару, а то и две. > не находит контроллеров вообще, либо сообщает что "на этой > линии уже работает master", причем изменение скорости > передачи на это сообщение никак не влияет. > Лоджик смотрит активность линии, если активность есть - выводит это сообщение. В вашем случае помехи на линии настолько велики, что это воспринимается как активность какого-либо устройства. > Может есть какие-то особенности подключения SMH к RS485? Надо > ли использовать общий провод? Стоит ли подключать его на > каждом контроллере к защитной земле? Каким все-таки образом > лучше заземлять оплетку? > Общий провод нужно подключать только при использовании COM1 контроллера (он не опторазвязан), при использовании COM2 он только навредит. Экран попробуйте подключить к земле контроллера (клемма Е) как можно ближе к середине линии. Как вариант - экран подключается к земле (клемма Е) у того контроллера, который наиболее удалён от источников помех. Если у контроллеров есть COM2 rs485, то лучше подключаться ими - качество связи будет выше. PS. Теоретически подключение экрана к каждому контроллеру (клемма Е) должно только вредить, но на практике иногда оказывается, что это не так. Поэтому попробуйте, подключите. Отключить всегда успеете ![]() |
![]() |
![]() |
![]() |
#7 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Пока на SMH сделали только один сетевой проект - на промышленном объекте 5 контроллеров опрашивается шестым "Мастером", протяжённость линий - до 100м, провод - FTP 5 категории, зацепили на СОМ1, экран кабеля никуда не подключали, терминаторы не ставили, всё изумительно работает на скорости 115200. Повезло, что ли?
![]() Расширять собираемся сей проект до 10-12 контроллеров в сети. Слегка испугался... ![]() |
![]() |
![]() |
![]() |
#8 |
Guest
Сообщения: n/a
|
![]()
Повезло... А может все работает как раз потому что оплетку никуда не цепляли и терминаторы не ставили
![]() |
![]() |
![]() |
#9 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
З.Ы. То есть, и клемму "Е" контроллеров тоже никуда не подключали. И вообще, на моей практике чем меньше заморачиваешься по этому поводу, тем проблем меньше. Помню, когда только начинали работать с распределёнными системами (с модулями ICP DAS), тоже понавтыкали резисторов куда надо и не надо, так связь ваще дерьмо была, терялась всё время, что только не делали - и потенциалы выравнивали, и ОВЦЕлографом сигналы смотрели, и развязки втыкали, всё бестолку. Потом взяли и убрали все резюки. Три года без проблем. Есть примеры использования провода ШВВП для RS-485, тоже всё ОК
![]() |
![]() |
![]() |
![]() |
#10 |
Guest
Сообщения: n/a
|
![]()
Хотелось бы узнать скока на борту памяти, ибо в разных источниках приводится разная информация от 4 до 512 kb. Насколько мне известно, объём EEPROM связан с версией установленного заводского ядра. На контроллере установлено ядро 02.19.0229.С+. Если можно приведите список соответствия версиий и объёма EEPROM.
|
![]() |
![]() |
#11 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
Объём eeprom складывается из 2 составляющих: 32 килобита + 32 килобита, либо 32 килобита + 512 килобит. Соответственно объём равен либо 8 килобайт, либо 68 килобайт. SMLogix использует первые 4 килобайта под собственные нужды, соответственно свободными для использования остаётся либо 4 килобайта, либо 64 килобайта.
Из номера версии объём установленной памяти узнать невозможно. Знак плюса указывает на наличие двух интерфейсов rs485, буква перед ним - модель контроллера. Поддержка большого eeprom появилась в версии 2.19.0229 и выше. |
![]() |
![]() |
![]() |
#12 |
Guest
Сообщения: n/a
|
![]()
Возникла задача учёта времени работы насоса за сутки. Реализовал её с помощью счётчиков CTU и записью в EEPROM каждую минуту для того, чтобы при пропадании питания контроллера счётчики не обнулялись. Так вот интересует на сколько хватит этой системы?
|
![]() |
![]() |
#13 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
Гарантировано 800000 для каждой ячейки, дальше - как повезёт
![]() |
![]() |
![]() |
![]() |
#14 |
Guest
Сообщения: n/a
|
![]()
Привет всем!
Вопрос следующий: можно ли считать программу из контроллера? Требуется это для того, чтобы к существующей работающей системе добавить еще пару датчиков. Предыдущий разработчик исходников не оставил. А если я начну сейчас писать и впихивать свою новую программу, то производство может встать на неопределенный срок. А чтобы этого не случилось, я бы после своих экспериментов загружал старую. |
![]() |
![]() |
#15 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
Нет, нельзя.
Максимум, который возможен - прямое копирование всех областей памяти исходного SMH в другой SMH той же модели. |
![]() |
![]() |
![]() |
#16 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Ну не каждую же минуту туда записывать! Это уже даже не насилование, а зверство!
![]() 800000/(365х24х60) = 1,5 Через полтора года в ремонт? И это при том, что батарейки хватает минимум на три года? Флеш и еепром - разве принципиально не одно и то же? ![]() |
![]() |
![]() |
![]() |
#17 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
А это уже смотреть нужно, по какой схеме ячейки сделаны
![]() И зачем каждую секунду-то записывать? Кто заставляет писать всё в одну и ту же ячейку? Ещё можно резервирование сделать, подсчёт ресурса со сменой ячейчи ![]() |
![]() |
![]() |
![]() |
#18 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Не секунду, а минуту - автор вопроса так захотел
![]() А насчёт смены ячейки мысль хорошая, но усложнит это проект. На мой взгляд, имеет смысл только для ОЧЕНЬ важных переменных. |
![]() |
![]() |
![]() |
#19 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Ресурс батареи указанный в документации считал явно очень большой оптимист, исходя из ее емкости и потребления ATmega128 в Power-save Mode батареи хватит на год отключенного состояния если очень повезет
|
![]() |
![]() |
![]() |
#20 |
Banned
Регистрация: Jan 2006
Сообщения: 1
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Вот формула, по которой мы считаем время жизни батарейки:
L = C/i/8760, где С - емкость батареи = 1000mA/ч, i - ток потребления = 25мкА, 8760 - количество часов в году. Итого получается 4,5 года. А Вы на Лоджике программируете или на С? |
![]() |
![]() |
![]() |
#21 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
В спящем режиме ток потребления резко возрастает раз в секунду когда контроллер просыпается по таймеру, поэтому средний потребляемый ток больше 25 мкА, проведенные повторные измерения и рассчеты дают средний ток примерно 45 мкА, т.е. 2.5 года работы. Измерения проводились с помощью осциллографа и были не очень точными - форма импульса потребляемого тока довольно сложная. Заявление о годе основано на полузабытых экспериментах годовалой давности.
Программа написана на C (контроллера с лоджиком под рукой небыло) и в части реализации спящего режима может отличаться от ядра лоджика, в частности в ваших исходниках, которые мы взяли за основу в спящем режиме использовалось деление частоты тактового генератора (XDIV) что приводит к значительному растягиванию по времени импульса потребления (видимо какие-то переходные режимы при засыпании) и значительному возрастанию среднего потребляемого тока. Есть некоторые опасения что контроллер может в какой-то ситуации не войти в спяжий режим и разрядить батарею. Питания от батареи не хватает для запуска рабочей программы и затем корректного засыпания, у нас контроллер корректно засыпает только после отключения основного питания. Вообще я считаю резервное питание самой меги от батареи не очень удачной идеей (хотя и сам так делал), более перспективно использование отдельной микросхемы часов и питание ее от ионистора. |
![]() |
![]() |
![]() |
#22 |
Сотрудник Segnetics
Регистрация: Jan 2006
Сообщения: 82
Благодарил(а): 4 раз(а)
Поблагодарили:
3 раз(а) в 2 сообщениях
|
![]()
Вобщем, мы тоже не совсем довольны нашим спящим режимом. В частности, существует риск разрядить батарею, если подключить ее в разъем контроллера при отсутствии внешнего питания на Меге. Поэтому, в новых разработках мы применяем более продвинутые схемы.
Что касается тока потребелния, то все наши испытания и измерения показывают средний ток 25мкА. Однако, благодарим Вас за Ваши сомнения. Мы воспользуемся этим поводом для проведения повторных измерений и проверим SMH еще раз. |
![]() |
![]() |
![]() |
#23 |
Senior Member
Регистрация: Jan 2006
Сообщения: 319
Благодарил(а): 5 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
![]()
а что даст смена ядра? новые возможности или еще чего?
короче зачем это надо? извиняйте за вопрос, я в этом деле "чайник", но хочется знать может когда-нибудь пригодится. |
![]() |
![]() |
![]() |
#24 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
Если были обнаружены какие ошибки - в более новом ядре они исправлены. Как правило расширяется функциональность. Не всегда смена ядра необходима (например при смене версии ядра 0081 - 0219 добавлены более широкие возможности modbus, но если ваш проект вообще не работает с modbus, то и замена ядра не так уж и очевидна). Но если есть желание и возможность - то использовать встроенное ПО самой последней версии - это правильный путь.
|
![]() |
![]() |
![]() |
#25 |
Новичок
Регистрация: Apr 2006
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
На новом контроллере C2010C-1112-001-5 (серийный номер 107410) чтобы интерфейс работал нормально (обеспечивалась передача на 115200 бод) надо припаять 2 подтягивающих резистора по 2 кОм (изначально они не припаяны).
|
![]() |
![]() |
![]() |
#26 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
Применение подтягивающих резисторов требует решения на месте. Отношение сигнал/шум они могут как увеличить, так и уменьшить. Соответственно связь может как улучшиться, так и ухудшиться.
Лично я бы (говорю не от лица segnetics, а от своего), припаяв резисторы поставил бы скорость 57600, т.к. налицо плохое отношение сигнал/шум (или большая ёмкость линии), близкое к некоторой критической точке, после которой связь на 115200 рвётся. Резисторы помогли, но кто сказал, что шумы со временем не увеличатся? Я бы на объект лишний раз съездить не хотел бы. |
![]() |
![]() |
![]() |
#27 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Несколько вопросов.
1. Влияет ли на цикл системы тип используемых блоков обработки переменных – int, long, real? Насколько существенно это влияние? 2. Что выгоднее использовать с точки зрения сокращения цикла: два блока с двумя входами (or, and, add и т.п.) или тот же блок, но один, и с четырьмя входами? Или одинаково? 3. Что выгоднее использовать с точки зрения сокращения цикла: два блока screen str с одной строчкой или один блок с двумя строчками? Или одинаково? 4. Аналогичный вопрос по блокам EEPROM - что быстрее будет работать, два блока по одной ячейке или один блок на две ячейки? Вообще, было бы очень кстати иметь хотя бы оценочное представление о потребности ресурсов всех блоков, для оптимального написания программы. |
![]() |
![]() |
![]() |
#28 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]() ![]() 1) Существенно. Если учесть, что мега - восьмиразрядный процессор без встроенной математики, то вполне логично, что (например) сложение двух шеснадцатиразрядных (int) чисел выполняется быстрее, чем сложение двух тридцатидвухразрядных (long). И тем более особняком стоит математика для чисел с плавающей точкой. Не проверял, но 'на глазок' сложение двух real в несколько раз (а то и на порядок) медленнее сложения двух int. Если внимательно рассмотреть прикладные макросы и макросы в наших типовых программах (в особенности в программах, генерируемых конструктором), то можно увидеть, что real используются только там, где это действительно необходимо. 2) два блока будут выполняться дольше, т.к. внутри SMH интерпретатор, который выполняет эти блоки по одному. Перейти на другой блок дольше, чем обработать дополнительные входы. В вашем случае всё прозрачно: два блока с двумя входами - это 8 операций (считать блок, считать 2 входа, записать результат, считать блок, считать 2 входа, записать результат), если один блок с 4 входами, то это 6 операций. Плюс к этому ещё и меньше места в памяти занимает. 3) блок screen выводит в один момент одну строку. Общее количество строк влияет только на объём занимаемой памяти. То же относится и с мультиплексорам: блок с 2 входами выполняется ровно такое же время, как и блок с 255 выходами. 4) всё как и в 3 пункте. Тут уже как удобнее использовать - два блока по 1 ячейке не требуют операции чтения, но занимают больше времени в цикле. С другой стороны, организация цикла чтения также займёт дополнительные блоки, следовательно и дополнительное время. |
![]() |
![]() |
![]() |
#29 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Обнаружил просто отвратительную работу контроллера на скорости 4800: после изменения скорости практически невозможно с ним связаться из Лоджика по RS485, использую конвертер I-7520, дело в конвертере, ПО или контроллере? После многократных попыток связаться, меняю скорость на бОльшую - никаких проблем со связью.
|
![]() |
![]() |
![]() |
#30 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
RTFM, или какие вопросы иногда бывают в техподдержке | Arsie | Форум Segnetics | 28 | 10.03.2023 18:31 |
Изучаю smconstructor, есть вопросы | nordth | SMConstructor (вентиляция) | 18 | 17.02.2021 19:21 |
Вопросы начинающего. | mkv | Вопросы о Pixel | 41 | 11.04.2018 16:31 |