![]() Микропроцессорное управление сварочным аппаратом , Соображаем что должно уметь это управление и способами реализации |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() Микропроцессорное управление сварочным аппаратом , Соображаем что должно уметь это управление и способами реализации |
![]()
Сообщение
#51
|
|
Заглянувший ![]() Группа: Пользователи Сообщений: 17 Регистрация: 28.3.2007 Из: Украина, Черновцы Пользователь №: 8438 ![]() |
Усреднять, думаю, все равно надо (мож не 8 выборок, а хотяб 4), и проверять границы результата измерения. А сдвигать, так в коде так и зделано: выравниваю в лево и отбрасываю младшие разряды там все равно мусор будет, забираю старшие. Ты предлагаеш создать масивчик из допустим восьми измерений и получить среднее значение. Потом опять заполнить масивчик и получить среднее. А что если не заполнять масив заново, а дописывать новое значение на место самого старого. Получится так сказать скользящее усредненное. А может это....фЫгня. |
![]() |
|
|
![]()
Сообщение
#52
|
|
Заглянувший ![]() Группа: Пользователи Сообщений: 96 Регистрация: 1.11.2007 Из: Одесса Пользователь №: 9729 ![]() |
komar72, не это обычно так и делается.
с уважением kash/ |
![]() |
|
Гость_Гость_komar72_*_* |
![]()
Сообщение
#53
|
Гости ![]() |
|
![]() |
|
![]()
Сообщение
#54
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 385 Регистрация: 11.7.2008 Из: Сибирь Пользователь №: 11626 ![]() |
kash, помехи на картинке не вижу, просто импульсы немного "дражат". Кстати, а осцилка без нагрузки делалась? Под нагрузкой импульсы должны дрожать.
По каналам понял, а вот на счет заполнения 50-80% не въехал. Если сила косой, то более 48% (2% на всяк) заполнение никак низя делать иначи придет бах. komar72, не, ни фЫгня, так и хочу сделать (вообще то думал все делают скользящий, это же быстрее, по-тому не стал описовать). А границы имел в виду, что измерение, например, равно 0х00 или 0хFF - это понятно что датчику кирдык или еще какая авария. Или, скажем, меряем температуру, а измеренное значение не вписывается в диапазон датчика (к примеру -40гр.=0.8V, 100гр=2,2V, а измерили 0.5, при том что на улице +20гр). Т.е. учитывать и такие моменты и как то реагировать. Сообщение отредактировал Andrey_G - 25.12.2008, 19:00 |
![]() |
|
|
![]()
Сообщение
#55
|
|
Заглянувший ![]() Группа: Пользователи Сообщений: 96 Регистрация: 1.11.2007 Из: Одесса Пользователь №: 9729 ![]() |
Andrey_G,может я что то не понимаю. На входе тронсформатора должны быть прямоугольные (почти) импульсы. У меня они искажаются. Искажения появляються при уменьшении заполнения. При 48% нормальные прямоугольные импульсы.
80% получил ошибочно. Бах не произошел, питание было 40в через ЛАТР.Нагрузка лампа 200Вт. Дай свой адрес вышлю нормальную картинку заполнения 48%. Мой kash@farlep.net. |
![]() |
|
![]()
Сообщение
#56
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 385 Регистрация: 11.7.2008 Из: Сибирь Пользователь №: 11626 ![]() |
kash, проверь почту.
|
![]() |
|
![]()
Сообщение
#57
|
|
Заглянувший ![]() Группа: Пользователи Сообщений: 96 Регистрация: 1.11.2007 Из: Одесса Пользователь №: 9729 ![]() |
Andrey_G, ну ты меня просто утешил. Нам не допер. Все ищу где ошибка. Правда если без маленькой нагрузки чистый ХХ и уменьшить заполнения ХХ то вообще колебания. Наверно так и надо. Большое спасибо.
С уважением kash. |
![]() |
|
|
![]()
Сообщение
#58
|
|
![]() =VIP= ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1382 Регистрация: 7.11.2008 Из: у синего моря Пользователь №: 12500 ![]() |
Skif, надо уважительнее быть на форуме. Мы все можем спорить и что то даказывать...А мега16 МК - слабенький просто много ног и дип корпус. Просто высказал точку зрения и никого унижать или обижать не собирался. А форум он на то и создан, чтоб делится опытом и в споре выяснять истину. А про 16мега - слабенький...Хотелось бы подробнее. Например я до сих пор не понял о чем идет обсуждение и какая задача решается. Ведь только исходя из задачи - можно решать слабый проц или нет. Человек вновь пришедший на форум не поймет о чем речь. Применительно к какой топологии программа? Косой? Мост? И программа чего? В чем я не прав? Хотелось бы чтоб мы говорили о чем то одном, а не каждый о своем.Например когда собирался делать сервисный проц, составил список задач, по которому думал писать программу и выложил для корректировки на форум. И совместно с ребятами мы решили, что нужно, а что нет. Получился такой список Внешняя часть: 1. Два трехциферных светодиодных индикатора 2. Кнопка перебора вариантов индицируемых параметров 3. Пищалка Начинка: 1. Датчик температуры на транзисторы - при перегреве уменьшение ШИМ до иглы/отброс реле 2. Датчик температуры на силовые диоды - то же 3. Замер напряжения сети (без проблем и усложнений возможен с трансформаторным БП или Негуляевским) При падении его на дуге до 160В - сужение до иглы ШИМ, с выдачей соответствующего звукового сигнала 4. Относительный замер тока сварочной цепи - при превышении и уходе в КЗ - сужение ШИМ до иглы и ожидание появления напруги на выходе, и только потом разблокировка ШИМ. В перспективе - При увеличении или уменьшении от заданного значения - корректировка ширины ШИМ Световая индикация: 1. Условного значения ШИМ (которое зависит от напряжения в сети, и характеризует площадь импульса ШИМ или ЧИМ в единицу времени) 2. Максимального значение температуры с символьным указанием где перегрев 3. Сетевого напряжения, и уровеня просадки в дуге. Звуковая сигнализация: 1. При перегреве 2. При значительной просадке сети 3. При КЗ (ловил себя на мысли, что тыкаю электродом, когда реле еще не откинулось) Если речь идет о измерении тока в сварочной цепи, то там применять усереднение процом - мученье. Один всплеск на 100 средних значений испохабит всю картину. Проц ведь не панацея от всех бед. Проще поискать схемное решение в виде интегрирующего фильтра. Вот тут ребята например ломают над этим голову http://pro-radio.ru/measure/4235/ И проц разгрузится (других задач валом) и картинка выровняется. ИМХО Если вы пишите ШИМ на таймере, не используя быстродействующих выходов сравнения, то дрожание неизбежно, ибо проц переходит на прерывание только после завершения текущей команды. И не всегда это один такт. Поэтому и переход с разных команд и отгрызает от длительности импульса разные куски ![]() Сообщение отредактировал Skif - 25.12.2008, 22:43 -------------------- ссылки ищем сами, спасибо новым правилам.
|
![]() |
|
![]()
Сообщение
#59
|
|
![]() =VIP= ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2393 Регистрация: 3.4.2007 Из: Харьков, пески Пользователь №: 8469 ![]() |
Мож я что-то и не догоняю, одновременно понимая что жуву в 21 веке, не кажется ли ВАМ уважаемые, что силовая часть не будет ждать пока проц подумает и подрожит, а бздымкнет и всех делов. Прикиньте время на все обработки и прерывания. Может всётаки оставить кесарю кесарево. Пусть УСка занимается своими поцикловыми делами и держит своё под контролем, а обслуга и управа- это проц, с фичами и наклонами.
-------------------- Дак мне деньги как таковые сами по себе не нада. Я добропорядочный гражданин...
|
![]() |
|
![]()
Сообщение
#60
|
|
![]() =VIP= ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1382 Регистрация: 7.11.2008 Из: у синего моря Пользователь №: 12500 ![]() |
Мож я что-то и не догоняю, одновременно понимая что жуву в 21 веке, не кажется ли ВАМ уважаемые, что силовая часть не будет ждать пока проц подумает и подрожит, а бздымкнет и всех делов. Прикиньте время на все обработки и прерывания. Может всётаки оставить кесарю кесарево. Пусть УСка занимается своими поцикловыми делами и держит своё под контролем, а обслуга и управа- это проц, с фичами и наклонами. хм... У UC..xx свои беды. Не менее смертельные для моста. Помнится кто-то писал при снижении напряжения - бздык!, при неверной разводке - поймала помеху и тоже - ниче хорошего, при минусовых температурах - тоже все печально. А проц этим не так сильно болеет и не лишен перспектив в разнообразии возможностей управления, так что пусть парни делают, не стоит перебивать им аппетит. Он полезен. И если они создадут достойную вещь, думаю и вы не применете ею воспользоваться. В конце концов, в фирмах разрабатывающих самостоятельно инвертора - сидят не дурни, и переход ими на процы - явно оправдан чем-то...А вот камешек в огород Си: Предположим, надо реализовать фазовое регулирование мощности. Как эту задачу решали бы раньше (и решают некоторые, которые либо старой закалки, либо им просто интересно, либо они стеснены в средствах, что тоже не редкость)? Посчитали бы на листике табличку - на сколько шагов регулирования синусоиду разбить, с какой точностью, в какие момены времени включать-выключать, а потом сделали бы программульку байтов в 200, которая бы все необходимые сведения брала бы из заранее расчитанной таблички... Но сейчас подход иной: берем Си, пишем не стесняясь в выражениях что-то вроде Func = D + A*sin(omega*t+fi), получаем текст программы где-то в 10 строк, включая комментарии, компилируем ее - это ничего, что получается код в 7К, кого ж сейчас удивишь контроллером с меньшей памятью-то?! А потом, обычно, наступает прозрение - а ни фига-то программа не регулирует! Оказывается, чтобы этот самый синус посчитать, требуется ей едва ли не 10 миллисекунд, куда уж там фазу-то регулировать! Но и это не проблема: берем AVR, да не простой, а с частотой мегагерц эдак 16, а если можно, то и более - и нет проблемы! И если такому "програмисту" дают задание сделать нечто более сложное, нежели фазовый регулятор, то он всерьез начинает задумываться о 16-разрядном ядре - ну "дохлые, эти контроллеры, не тянут"! О каком там стиле, о каком там "я" можно говорить?! Вот мы и имеем, что имеем: все спецы, все пишут на Сях, что пишут и зачем - известно только им, о красоте решений не думает никто, проблемами логичности системы команд никто не озабочен, все нормалек! взято с http://arvresearch.nm.ru/text/51.dhtml Сообщение отредактировал Skif - 25.12.2008, 23:36 -------------------- ссылки ищем сами, спасибо новым правилам.
|
![]() |
|
|
![]()
Сообщение
#61
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 385 Регистрация: 11.7.2008 Из: Сибирь Пользователь №: 11626 ![]() |
kash, всегда пажлста.
![]() Skif , golub, я уже писал что хочу от проца, а что получится посмотрим. Для ясности повторюсь. В моем применении топология косой мост, драйвером ключей управляет UC3843. UC-ка в свою очередь тактируется аппаратным Fast PWM с ATmega8(16), кварц 16МГц. Частота в следствии этого 62,5кГц. На вывод 3 (Isen) UC-ки подается сигнал с ТТ на первичной обмотке, который ограничивает макс. ток ключей и следовательно макс. выходной ток аппарата. Регулировка по среднему значению тока и/или напряжения, которые снимаются непосредственно с выхода инвертора баз гальванической развязки (как в TECNICA TIG 155 DC). Эти значения подаются на вход АЦП, обрабатываются , вычисляется заполнение и передается в ШИМ. Пока задача запустить основу (хренли толку с индикаторов и кнопок если сердце косого не работает). Skif, я уже понял, что каждый будет пользоваться тем чем ему удобней, а дискуссии по поводу что лучше Си или Асм или еще что-то, думаю ни к чему не приведут. Я Си предлагал только потому, что алгоритмами проще обмениваться. Сообщение отредактировал Andrey_G - 26.12.2008, 7:03 |
![]() |
|
![]()
Сообщение
#62
|
|
Заглянувший ![]() Группа: Пользователи Сообщений: 96 Регистрация: 1.11.2007 Из: Одесса Пользователь №: 9729 ![]() |
Skif, Дрожания можно убрать если менять скважность в конце цикла счетчика. Смена шим происходит только по прерыванию кагда переполняется счетчик. Если дрожания связаны с регулировкой то нужно смотреть регулировку. Последнее время использую ПИД регулирование , но там тоже нужно настраивать коэф..
На счет СИ . Любая вещь имеет хорошие и плохие стороны. Ассемблер тоже. Мы почему то не ценим своего времени. У меня на СИ получается быстрее. Собираю ПА на мнверторе. Привод сделал с дуру на шаговом . ШД управляется МК. Он биполярный. Буду делать два БУ один с UC второй без оной.Почему мега 16 - наверно превычка(может и дурная). Вчера пытался разобраться с GCC не вышло. Привык к CodeVision. Хотел помять почему sam_soft тактирует UC. С уваженим kash. |
![]() |
|
![]()
Сообщение
#63
|
|
![]() =VIP= ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1382 Регистрация: 7.11.2008 Из: у синего моря Пользователь №: 12500 ![]() |
Skif, Дрожания можно убрать если менять скважность в конце цикла счетчика. Смена шим происходит только по прерыванию кагда переполняется счетчик. Если дрожания связаны с регулировкой то нужно смотреть регулировку. Последнее время использую ПИД регулирование , но там тоже нужно настраивать коэф......На счет СИ . Любая вещь имеет хорошие и плохие стороны. Ассемблер тоже. Мы почему то не ценим своего времени. У меня на СИ получается быстрее. Не совсем понял про скважность...Это если знать насколько менять, а если эта величина постоянно меняется? Тут проблема в другом. И задача тоже. Попытаюсь объяснить (может перед этим неудачно объяснил).сделано на Atmega8 Проблема такая. И она будет у всех, кто формирует импульсы прерываниями. При возникновении прерывания, проц должен перейти на подпрограмму его обработки. Но он не в состоянии это сделать, не завершив текущей команды. Так вот неизвестно, где застанет его прерывание. На какой команде. И сколько тактов понадобится для завершения команды - тоже неизвестно. Именно эти неизвестные такты и вызывают колебания длительности. Человек с серьезным стажем программирования и работающий в серъезной компании, посоветовал использовать выходы ОС1А и ОС1В, которые мгновенно при прерывании по совпадению, переходят в нужное состояние. К сожалению еще не разобрался как их конфигурировать, был бы благодарен за помощь (английский знаю плохо, даташит не совсем понятен). А это - может кому пригодится. Принцип формирования импульсов у меня состоит в следующем: Таймер Т1 имеет на борту два регистра сравнения. При работе подпрограммы генерирования ШИМ, в первый регистр сравнения А - записывается число обозначающее период колебаний (то есть формирующий частоту), а в регистр В записывается длительность импульса. Эти значения берутся в входа АЦП и формируются переменными резисторами Работает так: 1. Формируется мертвое время (1.625 мкс-с запасиком - причем формируется без прерываний, а посему чрезвычайно стабильно - 1,625мкс) 2. Включается импульс на выход 3. Спустя период В, он отключается прерыванием, вызванным совпадением с регистром счета Т1 4. Далее при возникновение прерывания по совпадению счетчика с регистром А, происходит контрольное отключение импульса(вдруг А больше чем В? - то есть полное заполнение), сброс счетного регистра и смена выхода(их то два) Почему так все сложно? Потому что, то, что подходит на силу с жесткой коммутацией, не пойдет на резонансник. Его нужно настраивать в резонанс изменяя частоту. А вот с резонансника подойдет и на мост и на полумост. То есть прошивка на ШИМ созданная для резонансника выйдет универсальной для всех топологий. Си просто довольно хорошо снижает быстродействие. Он прекрасен для очень сложных задач и не требующих быстрой реакции контроллера. Ну а вообще согласен полностью с Андреем Цитата Skif, я уже понял, что каждый будет пользоваться тем чем ему удобней, а дискуссии по поводу что лучше Си или Асм или еще что-то, думаю ни к чему не приведут по поводу языков. Больше думаю этот вопрос поднимать не будем на форуме. Как говорил RV3BJ, лучше тот язык, который знаешь. Тогда остается придумывать методы решения тех или иных задач, а программу каждый напишет на том, что по душе. Рано или поздно, у нас сформируются подпрограммы для решения тех или иных задач в инверторе. Из них всегда можно выбрать те укого получился наиболее эффективный код. Сообщение отредактировал Skif - 26.12.2008, 10:52 -------------------- ссылки ищем сами, спасибо новым правилам.
|
![]() |
|
![]()
Сообщение
#64
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 385 Регистрация: 11.7.2008 Из: Сибирь Пользователь №: 11626 ![]() |
... Вроде разобрался с GCC, опиши что не получается, помогу чем смогу.Вчера пытался разобраться с GCC не вышло. Привык к CodeVision. Хотел помять почему sam_soft тактирует UC. Есть еще хорошая книга Программирование на языке C для AVR и PIC микроконтроллеров, мне как начинающиму трудно переоценить этот труд. Skif, про таймеры есть немного тут, и вот еше книга Евстифеев А.В. - Микроконтроллеры AVR семейства Mega. Сообщение отредактировал Andrey_G - 26.12.2008, 11:40 |
![]() |
|
![]()
Сообщение
#65
|
|
![]() =VIP= ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1382 Регистрация: 7.11.2008 Из: у синего моря Пользователь №: 12500 ![]() |
Спасибо за ссылочки. Особенно на описание таймеров, очень вовремя, как раз щас собираюсь прогу переделать.
Единственное ссылка на Евстифеева не для закачки книги(может временно). Ее слить можно отсюда http://letitbit.net/download/82f6f4395090/...-2007.djvu.html правда подождать чуток надо, да рекламку поглядеть Сообщение отредактировал Skif - 26.12.2008, 12:57 -------------------- ссылки ищем сами, спасибо новым правилам.
|
![]() |
|
![]()
Сообщение
#66
|
|
Посетитель ![]() ![]() Группа: Пользователи Сообщений: 232 Регистрация: 27.2.2008 Пользователь №: 10584 ![]() |
Мож я что-то и не догоняю, одновременно понимая что жуву в 21 веке, не кажется ли ВАМ уважаемые, что силовая часть не будет ждать пока проц подумает и подрожит, а бздымкнет и всех делов. Прикиньте время на все обработки и прерывания. Может всётаки оставить кесарю кесарево. Пусть УСка занимается своими поцикловыми делами и держит своё под контролем, а обслуга и управа- это проц, с фичами и наклонами. Я вот тоже не пойму, чего хлопцы придумывают себе проблемы? Если на борту у проца нет аппаратного шим модуля, так надо использовать УС. А по мне так лучше подобрать подходящий мк, с аппаратным шимом, специально для наших целей придуманный. У авр вроде есть камень _____PWM3. |
![]() |
|
![]()
Сообщение
#67
|
|
![]() =VIP= ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1382 Регистрация: 7.11.2008 Из: у синего моря Пользователь №: 12500 ![]() |
Я вот тоже не пойму, чего хлопцы придумывают себе проблемы? Если на борту у проца нет аппаратного шим модуля, так надо использовать УС. А по мне так лучше подобрать подходящий мк, с аппаратным шимом, специально для наших целей придуманный. Необязательно НАДО ![]() Сообщение отредактировал Skif - 26.12.2008, 13:18 -------------------- ссылки ищем сами, спасибо новым правилам.
|
![]() |
|
![]()
Сообщение
#68
|
|
Посетитель ![]() ![]() Группа: Пользователи Сообщений: 232 Регистрация: 27.2.2008 Пользователь №: 10584 ![]() |
|
![]() |
|
![]()
Сообщение
#69
|
|
![]() =VIP= ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1382 Регистрация: 7.11.2008 Из: у синего моря Пользователь №: 12500 ![]() |
Так ты, по моему, предлагал программный шим-чим или планы поменялись? ![]() ![]() Для косого вообще проблем нет с написанием программки, а в моем случае (с резонансником) придется мозги чуток поморочить Сообщение отредактировал Skif - 26.12.2008, 13:48 -------------------- ссылки ищем сами, спасибо новым правилам.
|
![]() |
|
![]()
Сообщение
#70
|
|
Заглянувший ![]() Группа: Пользователи Сообщений: 96 Регистрация: 1.11.2007 Из: Одесса Пользователь №: 9729 ![]() |
Skif, проблемы синхронизации решается наверно так. Таймер 0 (Т0) работует на ШИМ. У нас более 256 циклов-команд на все. По переполнению Т0 цикл приостанавливается. Обработка ШИМ (занесения нового значения) цикл продолжается. За 256 каманд можно сделать много. Т0 задает всю синхронизацию. Обработка в ожидании завершения цикпа.
Потактовое ограничение тока выполняет внешний компоратор. Два варианта. Первый сработал конпаратор внешнее прерывание - сброс выхода ШИМ. Второй более быстрый. Выход компаратора Блокирует ШИМ. Маленькая микросхема она же умощняет выход МК. Наверно это все. Какие проблеммы спрашивайте и где здесь поставить UC. Понял почему sam_soft тактирует UC. Неверно он просто синхронизирует свой МК. Andrey_G, не знаю как запустить программу sam_soft. С уважением kash. |
![]() |
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 9.10.2025, 1:56 |
|
![]() |