Источники питания и свет Актуальные вопросы и ответы по источникам питания, световому оборудованию. |
30.11.2014, 16:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Не работает защита от КЗ
Код:
|
unsigned short i=8,l=1;
void main(void)
{
OPTION_REG=0x7f; //глобал разрешение подтяжкирезисторов
WPU=0x12; //подтягиваем резисторы на ножки GP1 и GP4
TRISIO=0X12; //ножки GP1 и GP4 как входы остальные выходы
OSCCON=0X75; //внутреней тактовый ген 8 МГц
CMCON0=0X07; //компораторы выключены
ANSEL=0X00; //все порты ввода вывода цифровые
GPIO=0; //установка лог. 0 на всех портах
PWM1_Init(40000); //работа CCP в режиме ШИМ на частоте 40 КГц
PWM1_Set_Duty(i); //начальная скважность 8.
PWM1_Start(); //старт CCP
Delay_ms(500);
GPIO.GP0=1; //включает реле для подачи плюса 280 вольт на MOSFET-ы
if(!GPIO.GP1 && !GPIO.GP4) //проверка КЗ на выходах J1, J2, J3 (см. схему)
{
for(i=5; i‹=128; i++) //КЗ между J1, J2, J3 нет. Увеличиваем скважность ШИМ до 128
{
Delay_ms(1);
PWM1_Set_Duty(i);
}}
while(1)
{
if((GPIO.GP1 || GPIO.GP4)&&l) //произошло КЗ между J1, J2, J3
{
GPIO.GP0=0; //отключает плюс от полумоста на MOSFET-тах
PWM1_Set_Duty(8); //сброс скважности до стартовой
Delay_ms(500);
GPIO.GP0=1 //включает реле для подачи плюса 280 вольт на MOSFET-ы
l=0;
}
if(!GPIO.GP1 && !GPIO.GP4&&!l) //проверка КЗ на выходах J1, J2, J3 (см. схему)
{
l=1;
Delay_ms(500);
for(i=8; i‹=128; i++) //КЗ между J1, J2, J3 нет. Увеличиваем скважность ШИМ до 128
{
Delay_ms(1);
PWM1_Set_Duty(i);
}
}
}
} |
В целом блок питание понижающий с 220 переменного на 48 вольт двух полярного по 24 вольта в плечё работает отлично. Мягкий старт есть.
Возникла проблемка защиты от КЗ каждого плеча в отдельности, а именно если накоротко замкнуть J1 и J2 то всё хорошо защита срабатывает как надо но когда замыкаю отдельно J1 и J3 или J2 и J3 то защита не срабатывает, то есть выполняются все условия if() по порядку в теле цикла while(1).
Последний раз редактировалось vavan1983; 30.11.2014 в 16:32.
|
|
|
|
30.11.2014, 16:38
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,084
Сказал спасибо: 2,564
Сказали Спасибо 11,898 раз(а) в 5,971 сообщении(ях)
|
Re: Не работает защита от КЗ.
Сообщение от vavan1983
|
!GPIO.GP4&&!l
|
Что Вы ожидаете получить, сделав "!0х01"? Отсюда и ноги растут у непоняток.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
30.11.2014, 17:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: Не работает защита от КЗ.
Сообщение от akegor
|
Что Вы ожидаете получить, сделав "!0х01"? Отсюда и ноги растут у непоняток.
|
Предложите ваш вариант если не трудно.
|
|
|
|
30.11.2014, 17:15
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,084
Сказал спасибо: 2,564
Сказали Спасибо 11,898 раз(а) в 5,971 сообщении(ях)
|
Re: Не работает защита от КЗ.
Сообщение от vavan1983
|
!GPIO.GP4&&!l
|
Эта конструкция вообще лишняя. "0" есть "ложь", не "0" - "истина". Истина будет при любом ненулевом результате, поэтому "&&1" и подобное - излишество. Считаете необходимым подчеркнуть или просто явно указать для лучшего понимания (или других соображений, скажем, особенности компилятора) - используйте true и false. Или они уже определены в либах, или определите сами.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 30.11.2014 в 20:57.
|
|
|
|
30.11.2014, 19:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: Не работает защита от КЗ.
Вот и я столкнулся с ЭМИ влияющим на МК
|
|
|
|
30.11.2014, 22:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: Не работает защита от КЗ
Народ кто знает какое сопротивление имеют внутреннее резисторы в МК pic12f683?
|
|
|
|
01.12.2014, 00:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,047
Сказал спасибо: 3,039
Сказали Спасибо 3,209 раз(а) в 2,179 сообщении(ях)
|
Re: Не работает защита от КЗ
Сообщение от vavan1983
|
Народ кто знает какое сопротивление имеют внутреннее резисторы в МК pic12f683?
|
Точно - знает datasheet. А так - десятки килоом.
|
|
|
|
01.12.2014, 21:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.03.2006
Сообщений: 3,611
Сказал спасибо: 141
Сказали Спасибо 427 раз(а) в 377 сообщении(ях)
|
Re: Не работает защита от КЗ
Опросил бит порта оптрона 1 - послал бит(или инвертированный) на релюху 1
Опросил бит порта оптрона 2 - послал бит(или ннвертированный) на релюху 2
"если" тут не нужно
|
|
|
|
02.12.2014, 07:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: Не работает защита от КЗ.
Сообщение от akegor
|
Что Вы ожидаете получить, сделав "!0х01"? Отсюда и ноги растут у непоняток.
|
if(!GPIO.GP1 && !GPIO.GP4&&!l)
{
}
или вот так
if(GPIO.GP1==0 && PIO.GP4==0 && l==0)
{
}
можно вот
if(!(GPIO.GP1 && GPIO.GP4&&l))
{
}
или даже так
if((GPIO.GP1 && GPIO.GP4&&l)==0)
{
}
а результат во всех случаях будет одинаков.
|
|
|
|
02.12.2014, 08:00
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,084
Сказал спасибо: 2,564
Сказали Спасибо 11,898 раз(а) в 5,971 сообщении(ях)
|
Re: Не работает защита от КЗ
Просю пардона, Поторопился и не все досмотрел.
ПС. Однако. Неплохо бы разделять логику и арифметику. На эту тему попадалась статья, что не во всех компиляторах микс будет работать как ожидаемо. Связано с представлением false и true, соответственно и восприятие компилятором.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 02.12.2014 в 13:49.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:13.
|
|