Автор Тема: Защита по сетевому напряжению 220 вольт  (Прочитано 14607 раз)

masivnik

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #40 : Май 28, 2012, 16:39:01 »
mim пишет:
Цитировать
Для развития программы стоит подумать над такими вопросами.
1. Длительность пауз отключения и накопления результата можно считать на основе счетчика реализованного на таймере. Таймер ведь все равно работает. Есть такие примеры. Хотя возможность такого решения спорна (прерывание около 100 гц - маловато для быстрой реакции), но для понимания можно попробовать. Хотя те задержки что у тебя, прерывание позволит сделать.
2. Я думаю что больший интерес представляет сохранение (запись) реального напряжения при котором возникла авария, а не уровень порога.
3. Я бы все таки убрал ГОУТУ (несмотря на то что это прибавляет 6 байт кода).

Не знаю, на сколько у меня все получилось и я верно понял рекомендации от mim - смотреть архив. Вроде счетчик реализовал на таймере, сохраняю реальное напряжение при котором возникла авария и убрал ГОУТУ (я так понимаю - точки перехода). Хотя мне не понятно почему точки перехода лучше убрать или совсем не использовать?
Скорее всего, я, все сделал не как нужно и не правильно - подскажите что не так...?

mim

  • Moderator
  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #41 : Май 28, 2012, 17:17:41 »
1. Счетчик времени - в прерывание нужно вынести только подсчет переменной Un (и Delitel).
2. Все остальное должно быть в теле программы.

ИМХО. Для начала оставь счетчики без изменения, а измени только запись в ЕЕПРОМ. У тебя все верно, но есть нюансы...

masivnik

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #42 : Май 28, 2012, 17:50:14 »
Блин - времени нет, и так выкаратал. Найду время - постараюсь изменить.
В первом варианте, я, в прерывание только ставил Un, ну а потом стал дальше экспериментировать - результат известен.
Mim подскажи - как в память записать переменную INT (я так понимаю - сначала это мне нужно изменить)? В результате у меня уйдут некоторые переменные и вычисления. Возможно, я, что-то не вижу, надо полазить по форуму - там то точно есть.

Taska

  • Hero Member
  • *****
  • Сообщений: 1801
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #43 : Май 28, 2012, 18:33:36 »
Иван Николаевич пишет:
Цитировать
как в память записать переменную INT , надо полазить по форуму - там то точно есть.


HIBYTE=INT>>8
LOBYTE=INT

masivnik

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #44 : Май 28, 2012, 21:04:12 »
Максим пишет:
Цитировать
HIBYTE=INT>>8
LOBYTE=INT

Максим - большое спасибо!!! :idea:  Намек ясен и соответствующие изменения внесены в проект - смотреть архив.
mim пишет:
Цитировать
ИМХО. Для начала оставь счетчики без изменения, а измени только запись в ЕЕПРОМ. У тебя все верно, но есть нюансы...

mim - начало сделано, можно узнать нюансы...?
Я спать - а то на работу не встану. Но от познания нового не откажусь - только завтра(вернее уже сегодня), если время появится (в 12 ночи). :eek:

mim

  • Moderator
  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #45 : Май 29, 2012, 09:19:17 »
Иван Николаевич пишет:
Цитировать
можно узнать нюансы...?

Можно... если не бежать впереди паровоза. Времени у меня тоже нет чтобы охватить все изменения разом. Я ведь написал "Для начала оставь счетчики без изменения, а измени только запись в ЕЕПРОМ".
Ну, а так, теперь ищи нюансы. Все ветки я не тестировал набросал с утречка. Там можно еще некоторые переменные убрать. На досуге я подумаю....
 

masivnik

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #46 : Май 29, 2012, 13:07:45 »
Спасибо mim.
В принципе, что-то я зациклился на этом проекте - надо начинать другой... Если только отшлифовать его, да научится чему-то новому. Так что - если нет времени, то ничего страшного... - оставим пока как есть. Думаю если надо будет, то всегда могу спросить... и усовершенствовать.

Еще раз: Спасибо Всем!!! и БОЛЬШАЯ БЛАГОДАРНОСТЬ MIM-у - всегда найдет время подсказать и указать правильный путь!!! :o

mim

  • Moderator
  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #47 : Май 29, 2012, 13:15:19 »
Иван Николаевич пишет:
Цитировать
Спасибо mim.
В принципе, что-то я зациклился на этом проекте - надо начинать другой... Если только отшлифовать его, да научится чему-то новому. Так что - если нет времени, то ничего страшного... - оставим пока как есть. Думаю если надо будет, то всегда могу спросить... и усовершенствовать.

Еще раз: Спасибо Всем!!! и БОЛЬШАЯ БЛАГОДАРНОСТЬ MIM-у - всегда найдет время подсказать и указать правильный путь!!! :o


Вот тебе на последок...
 

masivnik

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Защита по сетевому напряжению 220 вольт
« Ответ #48 : Май 29, 2012, 20:53:00 »
mim – теперь, нежели в моем варианте, действительно гораздо лучше и понятней что к чему… (переменных меньше, вычисления не дублируются, запись в EEPROM только значения срабатывания, индикация этого значения и не только…).
Немного изменил:
1. Дабы, после срабатывания защиты и включения автомата, продолжала работать защита – изменил сравнение (U_svet>250 OR U_svet<190) AND U_OFF= 0 на U_svet>250 OR U_svet<190;
2. И в тоже время, для того чтобы постоянно не долбить по записи в EEPROM в макросе AC_OFF, добавил в вычисления OFF=0, таким образом, постоянная запись в EEPROM и изменение U_OFF будет только если напряжение выше или ниже приделов и временной задержки.