Глава 5. Micro-Cap 7.0, Windows. Цифровой регулятор угла опережения зажигания для автомобиля

Давным-давно, когда зимы были зимними, а лето летним, когда напряжение и ток были именно током и напряжением, и даже сопротивление было сопротивлением, а не каким-то импедансом с абсолютно мнимой частью, вот в те давние времена очень узкий круг автолюбителей, а были это именно автолюбители, не то, что нынче, обратился ко мне с просьбой проверить работу схемы электронного регулятора угла опережения зажигания, опубликованной в одном из журналов. Схема, с моей точки зрения, работать не должна была, но в те времена отказать автолюбителю рука не поднималась. Так я оказался втянут в историю, которую вспомнил сегодня, и далекие отголоски которой хочу использовать для описания работы с программой Micro-Cap.

По своей природе и образу жизни я – пешеход. Отличить карбюратор от дифференциала в автомобиле, следовательно, не могу. Конечно, первое, что мне захотелось у них узнать, после того как схема, которую я собрал по их просьбе, работать не захотела, а что такое зажигание?

Как все специалисты они «забросали» меня терминами: трамблер, бобина, свечи и еще что-то, что сегодня я, пожалуй, и не вспомню. Закончилось все тем, что мне пришлось открыть какой-то самоучитель «Автопробегом по...», и попытаться разобраться самому, что такое зажигание в автомобиле? Не скажу, что все понял тогда, сознаюсь, что все позабыл сегодня, и то, как это я сегодня понимаю, изображено на рисунке.




Рис.4.1. Мое представление о работе двигателя


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

Если кто-то захочет меня поправить, я не буду возражать.

Но, тем не менее, что же такое опережение зажигания? Насколько я тогда понял весь «фокус» во времени горения смеси в цилиндре (на рисунке это интервал от Т1 до Т2). На низких оборотах двигателя воздушно-бензиновая смесь успевает сгореть, пока поршень находится в верхнем положении. Но с ростом оборотов двигателя, если поджигать смесь в момент прохождения поршнем верней мертвой точки (моменты Т0 и Т2), то горение смеси будет продолжаться до момента, когда поршень очень сильно опустится вниз, а, значит, сила, толкающая поршень, очень ослабеет. Чтобы этого не происходило, с ростом числа оборотов смесь следует поджигать до того момента, как поршень поднялся в верхнюю часть цилиндра. И тем раньше, чем больше число оборотов двигателя. Именно этот механизм должен обеспечить регулятор угла опережения.

Отказавшись от поиска решения на аналоговой основе, я решил использовать цифровые элементы. Сегодня, как мне кажется, схема подобного устройства не имеет практической ценности, но реализация этого решения с помощью компьютерной программы стала бы неплохим сюжетом для рассказа о работе программы, особенно в силу некоторой отдаленности задачи, в ее конечной ипостаси, от электроники.

Итак, что я помню, о схеме? Немного. Помню, что использовал счетчики с прямым и обратным отсчетом, и, если не ошибаюсь, использовал предустановку счетчика. Счетчик с предустановкой и двумя направлениями счета это, например, К155И7 (74193). Запускаем программу Micro-Cap:




Рис.4.2. Программа Micro-Cap

В основном меню программы выбираем раздел «Компонент» и в библиотеке цифровых элементов (Digital Library), перемещаясь по подменю, отыскиваем нужную нам микросхему 74193. После выбора компонента его контур будет привязан к курсору мышки до тех пор, пока не будет нажата левая клавиша. Перемещаемся в нужное место, нажимаем левую клавишу и размещаем счетчик в рабочей области чертежа, после чего на клавиатуре нажимаем «Esc», если нам не больше не нужны счетчики.




Рис.4.3. Размещение счетчиков на чертеже

Что еще нужно в схеме?

Для фиксации двух положений поршня, где-нибудь на маховике (или еще где-то, что жестко связано с движением поршня), понадобится установить датчики верхнего и нижнего положения поршня в цилиндре. На рис.4.1 они расположены в зоне маховика. Когда поршень находится в верхнем положении, датчик верхнего положения запустит некое устройство, которое обозначит время перемещения поршня в нижнее положения, что, в свою очередь, позволит нам определить число оборотов двигателя, ведь конечная задача – это регулировать угол зажигания в зависимости от числа оборотов двигателя. Нижний датчик на рис.4.1 отметит прохождение поршнем этого положения. В дальнейшем я планирую после срабатывания этого датчика запускать отсчет в обратную сторону.

На схеме вместо датчиков я использую генератор прямоугольных импульсов, частота которого определит скорость вращения двигателя.

Кроме этого генератора я использую второй генератор прямоугольных импульсов для организации счета. Поищем в программе подходящие генераторы.




Рис.4.4. Источники импульсного напряжения в программе Micro-Cap

Не найдя именно генератора прямоугольных импульсов, я выбираю источник импульсного напряжения в основном меню «Компоненты» в разделе «Analog PrimitivesWaveform SourcesPulse Source» и перемещаю его (их, мне нужно три генератора) на чертеж. Щелчок левой клавиши мышки открывает диалог выбора параметров источника.




Рис.4.5. Диалог задания параметров источника напряжения


В диалоге я с удовольствием выбираю в качестве нужной мне модели генератор прямоугольных импульсов (SQUARE) и (сделаю вид, что сразу, но это не так) сразу задаю параметры генератора, на всякий случай, обозначив его модель как SQUARE_1, через переменные P5, P4 и P3, где первый параметр, я надеюсь, определяет период – в данном случае 10 мС, а последующие длительность единичного (5 мС) и нулевого состояния (5 мС). Период в 10 миллисекунд в данном случае должен соответствовать времени одного оборота двигателя на скорости 500 оборотов/в минуту. Аналогично я добавляю еще один генератор, определяя его параметры из следующих соображений.

В данный момент я хочу проверить работу схемы в самом первом приближении, отложив на время вопрос о регулировке угла опережения зажигания, поэтому я оставлю один счетчик. Я хочу при движении поршня вниз включать прямой счет, а при движении поршня вверх включать обратный счет. Из-за равенства этих двух движений по времени я должен получать обнуление счетчиков к началу следующего цикла, и, главное, это не должно зависеть от скорости вращения двигателя. Но что же с параметрами двух генераторов? Соображения здесь следующие – на самой низкой частоте вращения двигателя я должен заполнять счетчик, но не переполнять его. Если счетчик считает до 15, то за время полупериода генератора, заменяющего двигатель, генератор счета должен давать не более 15 импульсов. У меня получилось что генератор счета должен иметь период примерно 400 мкС. Таким образом, параметр второго генератора P5=400U, P4=380U, P3=20U. Как видите, я решил не использовать меандр, укоротив единичные импульсы (и опять я сделаю вид, что решил это сразу). Мне остается соединить все входы счетчика должным образом, отыскав среди компонент резистор, конденсатор и батарею, для которой я определяю напряжение 5V в качестве значения (VALUE). Кроме того, я соединяю генераторы с помощью схем И-НЕ и ИЛИ-НЕ (7400 и 7402), с тем, чтобы прямой счет шел только в положительный полупериод основного генератора, а обратный счет во второй полупериод.




Рис.4.6. Первое приближение схемы


Итак, генератор V0 имитирует работу двигателя, генератор V1 служит для прямого счета (вход счетчика UP) и для обратного (DOWN). Входы предустановки и вход очистки счетчика я пока не использую, соединив их с землей, а вход загрузки LOADBAR я соединяю через резистор R1=2.2 кОм с плюсом питающей батареи V2=5V (вначале перепутав, где плюс, а где минус). U1 – схема И-НЕ, U2 – ИЛИ-НЕ.

При установке компонент некоторые затруднения возникли у меня с режимом поворота элемента. Как оказалось для этого следует выбрать элемент, затем, удерживая левую клавишу мышки нажатой, щелкнуть правой клавишей мышки столько раз, сколько необходимо для нужного поворота элемента.

Для симуляции работы схемы я не без оснований выбираю из основного меню пункт «Analisys – Переходные процессы». Это приводит меня к диалогу свойств «Анализа переходных процессов», в котором я устанавливаю время процесса чуть больше 10 мС.




Рис.4.7. Диалоговое окно «Анализа переходных процессов»

Запуск процесса клавишей «Запуск», правда, ничего не изображает, хотя окно графики открывается.

Программа Micro-Cap весьма дорогостоящая, и, думаю, снабжена всеми необходимыми инструкциями по пользованию, я же ищу любой путь для достижения цели, по причине чего из меню «Analisys» выбираю другой пункт «Исследование переходных процессов…», но предварительно выхожу из режима симуляции через появившийся в основном меню пункт «Transient – Выход из Анализа».

Исследование переходных процессов открывает окно графики и рядом сохраняет окно схемы. Расположение окон, как во многих программах Windows, можно регулировать. Щелчок по клавише распахнуть окно на панели окна графики раскрывает его на весь экран, а выбор в основном меню «Окна – Расположить по Вертикали» вновь дает мне два окна. Щелчком по нужным мне точкам схемы я выбираю, какие сигналы меня интересуют. В данном случае я выбрал сигналы (сверху вниз) генератора V0, генератора V1 (на выходе микросхем И-НЕ и ИЛИ-НЕ) и сигналы на выходах счетчика, начиная с выхода QA.




Рис.4.8. Первые ошибки при проверке схемы


Первая ошибка. На рисунке верхний график – сигнал, имитирующий работу датчиков, ниже работа генератора прямого счета, а еще ниже, на выходах счетчика – нулевой результат прямого счета. При обратном счете на выходах счетчика что-то появляется, при прямом – нет. Мне не нравится, что в момент прямого счета на входе DOWN (вход импульсов обратного счета) удерживается логический «0», что, вероятно, не правильно. Проверяем это, включив между выходом микросхемы U2 и входом счетчика инвертор, который можно найти в разделе «Компоненты – Digital Primitives». Кстати, при выборе всех стандартных микросхем я использую параметр TAIMING MODEL=DLY_TTL, который задается в диалоге, открывающемся после установки элемента.

После добавления инвертора счет идет и в прямом, и в обратном направлении. Чтобы получить диаграммы, которые изображены на рис.4.9 ниже, я немного меняю параметры генератора V0, именно P2=0 и P1=0. Разницу вы можете увидеть сами, если надумаете купить программу.




Рис.4.9. Диаграмма работы схемы при низшей частоте оборотов двигателя


На диаграмме верхний график – имитатор датчиков, далее импульсы прямого счета, обратного счета, выходы счетчика и самый нижний график тот, что меня сейчас интересует – график выхода обнуления счетчика. По временным меткам, которые я получил, щелкнув мышкой по выделенной на инструментальной панели клавише, а затем по графику, по этим меткам видно, что импульс проходит в конце движения поршня вверх.

Теперь проверим работу схемы, увеличив число оборотов вдовое. Соответственно, уменьшив период генератора V0 вдвое, до P5=5.2M. Чтобы получить изображение в том же масштабе, я уменьшаю время анализа в диалоговом окне «Анализ переходных процессов» до 5.4М. В результате я получаю следующие диаграммы:




Рис.4.10. Диаграммы работы схемы при частоте оборотов двигателя вдвое выше


Все, что я хотел показать относительно схемы, так это то, что импульс на нижнем графике проходит и при повышении оборотов в верхней точке движения поршня. То есть идея прямого и обратного счета, вроде бы, работает. Этим импульсом обнуления счетчика в реальной схеме (в реальной схеме обнулением всех счетчиков) должен был включаться тиристор электронного зажигания.

Но теперь пойдем дальше.

Все, что у меня сохранилось в памяти, я уже использовал. Я помню, что весь «фокус» был в сохранении постоянным времени горения смеси, конечно, для первого приближения работы регулятора. Но как я этого добивался, я за день работы вспомнить не смог. Пришлось порыться в бумажных архивах, где мне удалось найти эскизы схемы и рабочее описание. Еще день я потратил на то, чтобы понять, что я тогда, лет двадцать назад, написал. Скверная привычка экономить время при записи не раз заставляла меня пожалеть об этом, но, боюсь, и по сей день, скверная привычка берет верх. Что не хорошо.

Суть фокуса, как пояснила расшифровка иероглифов, заключалась в том, что из количества импульсов, полученных при прямом счете, и соответствующих числу оборотов двигателя, следует вычесть постоянное число, пропорциональное максимальному углу опережения (в моих записях это 150, но не записано для какого автомобиля, не указано для одного ли цилиндра, и учитываю ли я обороты двигателя по распределительному валу или нет), а получившуюся разницу вписывать в счетчики с каждым началом цикла движения из верхней точки поршня. Ниже я приведу формулы, а сейчас приведу переделанную схему, где я загрузку счетчика подачей на входы логической «1».




Рис.4.11. Схема с регулировкой угла опережения зажигания


На схеме я не стал добавлять формирователь импульса переписи предустановки (импульсом обнуления счетчика), решив, что пока можно просмотреть начальный цикл работы. Для предустановки я записываю двоичное число 1110, исходя из того, что угол опережения определится одним импульсом. Параметры генераторов следующие: для V0 P5=120M, P4=60M, P3=60M, P2=110N, P1=100N; для V1 P5=3.4M, P4=1.7M, P3=1.7M, P2=110N, P1=100N. В диалоговом окне «Анализ переходных процессов» я задаю параметр «Диапазон времени» равный 120M (120 миллисекунд). Посмотрим, что покажет программа Micro-Cap:




Рис.4.12. Диаграмма работы схемы на низких оборотах двигателя


Нижний график – это импульс обнуления счетчика. А метки времени показывают, что между этим импульсом и завершением цикла проходит около 11 миллисекунд.

Теперь изменим, увеличим частоту оборотов двигателя, период генератора V0 вдвое (уменьшим, соответственно). Не забудем изменить «Диапазон времени» на 60M, и обратим внимание на нижний левый угол, где на рис.4.12 написано Cursor Mode в строке состояния. При изменениях настроек анализа, и некотором усложнении схемы, появляется предупреждение Wait. Следует подождать, пока программа произведет необходимые подсчеты. Но посмотрим, что получается в этом случае:




Рис.4.13. Диаграмма работы схемы при увеличении числа оборотов вдвое


И увеличим обороты еще вдвое, что должно соответствовать 2000 об/мин.




Рис.4.14. Диаграмма работы схемы при максимальных оборотах двигателя


Напомню, что импульс нижнего графика запускает искрообразование. Сравнение диаграмм показывает, что время от момента поджигания смеси до момента прохождения верхней мертвой точки хода поршня на всех трех диаграммах одинаковое (исключая ошибки позиционирования маркера и грубую схему) и около 10-12 мС. Что соответствует идее постоянного времени от момента поджигания смеси бензина и воздуха в цилиндре до момента взрыва смеси в верхней точке движения поршня.

Ниже я помещу рисунок, сделанный из последних трех. Поскольку масштаб трех рисунков я выбрал таким, чтобы сохранить график имитатора работы датчиков одинаковым, мы сможем отметить положения поршня и моменты зажигания:




Рис.4.15. Объединение трех предыдущих диаграмм

Верхний график, относящийся к имитатору формирователя сигналов от датчиков положения маховика (как это изображено на рис.4.1), это временной сигнал, но ему соответствует, что я попытался изобразить надписями о положении поршня, график положений поршня в согласии с оборотом маховика, что я отметил градусами. И три нижних графика – импульсы запуска зажигания, явно показывают, что с ростом скорости вращения двигателя происходит рост угла опережения зажигания. Пока, конечно, схему едва ли можно применить к реальному двигателю, но программа Micro-Cap показала, что двигаемся мы в нужном направлении. Программа показала, что мы вполне можем работать с ней, реализуя конкретные задачи, не связанные только с электроникой, но с помощью электроники, и более того, не прибегая к физической реализации работы до того момента, когда мы вполне убедимся в работоспособности идеи. Скажу больше, если бы меня интересовала в данный момент полная реализация цифровой схемы регулятора опережения зажигания, я просто добавил бы счетчики, думаю одного для реальной схемы мало, и продолжил работу с программой, пока не добился бы нужных параметров, нужной работы схемы, и только после этого перешел бы к работе с макетом или опытным образцом.

Итак, если бы я работал с физическими устройствами, то на данном этапе, этапе проверки идеи, я остановился бы до момента окончательного выбора датчиков, окончательного выбора конкретной модели автомобиля или автомобильного ряда, и получения всех необходимых параметров двигателя, конечно, в части системы зажигания. Продолжение работы с реальным макетом потребовало бы, как минимум, впаять еще несколько счетчиков, перепаять элементы генератора счета и т. д.

Но работа за компьютером не столь хлопотлива, и меня интересует реализация одного из аспектов, которые я при проверке идеи обозначил так: при обнулении счетчиков, импульсом обнуления я включаю тиристор электронной системы зажигания. Но если я использую несколько счетчиков, то каким из импульсов обнуления я собираюсь включать тиристор. Счетчик младших разрядов счета будет обнуляться многократно, средний счетчик (или счетчики) тоже обнулятся не единожды, а обнуление счетчика старшего разряда не дает мне нужного времени для включения искрообразования. И к этому же вопросу примыкает второй, вопрос загрузки счетчиков. С одним счетчиком я загружаю его импульсом обнуления (предположительно), а если счетчиков два или больше?

В своих эскизах я не нашел решения этих простых вопросов, и я не помню, как поступил несколько лет назад.

Сформулируем еще раз идею формирования импульса зажигания и перезагрузки счетчиков – при обнулении счетчика, когда все счетчики обнулятся, следует формировать импульс зажигания и до момента начала следующего цикла прекратить прямой счет, но произвести предварительную загрузку счетчиков.

Для начала я опять воспользуюсь одним счетчиком, вероятно, сказывается привычка использовать макетную плату без перепайки, чтобы попытаться решить, как я буду это делать. И я воспользуюсь для поиска решения тем, что записал ранее – «до момента начала следующего цикла». Я попробую найти решение с помощью триггера. Использую для начала триггер К155ТМ2 (7474).




Рис.4.16. Формирование искрообразования и перезаписи счетчика


Импульсом обнуления счетчика я сброшу его по RESET (или установлю по SET), а передним фронтом формирователя сигналов датчиков верну в исходное положение. Такая схема, хотя бы в отношении счетчика старшего разряда, должна работать. Что мы и проверим:




Рис.4.17. Поверка схемы искрообразования


В данном случае, как и ранее, верхний график относится к имитатору датчиков, а нижний показывает сигнал на входе загрузки счетчика, LOADBAR. Диапазон времени в диалоге «Анализ переходных процессов» я установил таким, чтобы отображалось два цикла. Передним фронтом этого импульса можно формировать искру зажигания, счетчик до начала следующего цикла перестает считать, на диаграммах видно, что загружается число 1110 (4-7 графики). Сигналы загрузки от триггера и по включению питания объединены двухвходовой схемой И. Пока это искомый вариант. Добавим еще один счетчик. Изменим параметры генератора счета, учитывая, что максимальное число теперь около 225, а загружаемое число возьмем равным 220 (двоичное 11011100). Если на низшей частоте, основной генератор с периодом 120 мС, нужно записывать при прямом счете, за 60 мС, число 225, то период генератора счета получается 250 мкС. Немного повозившись, и запутавшись, с обнулением обоих счетчиков, я получаю схему, которая, по первому впечатлению, работает:




Рис.4.18. Увеличение количества счетчиков в схеме регулятора

Проверка при трех значениях частоты генератора, имитирующего работу датчиков, показывает графики весьма похожие на те, что получены ранее. Вот как это выглядит на больших оборотах двигателя:




Рис.4.19. Графики работы схемы с двумя счетчиками


Время между моментом подачи искры в цилиндр двигателя и началом нового цикла сохраняется около 10 мС в трех режимах работы схемы, относящихся к трем режимам работы двигателя. Верхний – это имитатор датчиков, ниже четыре графика работы счетчика X3 (младшие разряды), далее сигнал загрузки этого счетчика, он же сигнал подачи искры передним фронтом, ниже четыре сигнала второго счетчика. Но мне не ясно, действительно ли второй датчик обнуляется, или я обманываюсь. Чтобы это прояснить, я несколько изменю состав графиков, убрав сигналы с выходов второго счетчика, с ним пока ясно, и добавлю выходные сигналы обнуления счетчиков:




Рис.4.20. Графики формирования сигнала загрузки первого счетчика


Здесь второй график – обнуление счетчика старших разрядов (X1), третий – загрузка этого датчика, следующий – обнуления счетчика младших разрядов (Х3), затем сигнал его загрузки, а последние четыре графика последовательно выходы этого счетчика. Сигнал действительно приходит при обнулении этого счетчика, но меня смущает, что сигналы загрузки обоих счетчиков совпадают (третий и пятый графики). Правильно ли это?

Не знаю, как бы я сделал это с физическими счетчиками, но с программным макетом я попытаюсь, отключив цепь загрузки счетчика X3, посмотреть, что с ним происходит при обнулении следующего счетчика:




Рис.4.21. Графики проверки правильности загрузки счетчиков


Второй график на рисунке – обнуление счетчиков старших разрядов, ниже обнуление счетчика младших разрядов. Мои сомнения относятся к двум временным отметкам на рис.4.21. Сейчас я запускаю схему зажигания в момент 20,352 мС, а не следует ли это делать после следующего обнуления в момент 24,323 мС? И тут только до меня доходит, где я ошибаюсь.

Когда я записываю число, которое нужно отсчитать при реверсном счете, первым отсчитывается число, записанное в младших разрядах. После этого обнуление счетчика младших разрядов меня не интересует. То-то я смутно вспоминал, что в реальной схеме я включал зажигание гораздо проще, чем сделал это сейчас. Конечно, все, что я «сгородил» для обнуления счетчика младших разрядов, можно из схемы удалить – это лишнее.

Но насколько удобнее работать за компьютером. Если бы я занимался перепайкой выводов, впаивал бы и выпаивал микросхемы…

Итак, окончательно на данный момент схема выглядит так:




Рис.4.22. Окончательная схема проекта


Попутно хочу отметить, что полярность батареи питания, если помните, вначале работы я и здесь запутался, полярность батареи питания можно получить видимой на чертеже, установив опцию «Имя вывода» в разделе «Отображать» диалога свойств этого элемента. Ненужные выводы и элементы можно выделить щелчком левой клавиши мышки и удалить, либо используя привычно для всех редакторов меню «Редактирование», либо нажав на клавиатуре клавишу Delete. Еще одно полезное свойство программы – клавиша на инструментальном меню, которая показывает напряжения во всех узлах схемы. Эта клавиша на нижней части инструментального меню, на которой надпись 1.3. Работает режим отображения напряжения после выхода из режима анализа.

Конечно, я рассказал лишь о малой части возможностей программы Micro-Cap. Программа достаточно хороша, и заслуживает большего, но она и достаточно дорога, чтобы ожидать подробного руководства, пересказывать которое я совсем не собираюсь.

В завершение этой главы я хочу нарисовать полученный график, показывающий зависимость угла опережения зажигания от числа оборотов двигателя, основываясь на данных, полученных с помощью программы EDA. Времена, полученные при симуляции последней схемы – это 9 миллисекунд для 500, 1000 и 2000 об/мин (времена 120, 60, 30 мС). Для расчета графика я произвожу подсчет – если за 120 миллисекунд совершается полный оборот в 360 градусов, то за 9 миллисекунд: (360/120) * 9 = 27 градусов (54 и 108 градусов соответственно).




Рис.4.23. График, построенный на основе данных эксперимента


Подведем итоги этой главы.

Как и ожидалось, вернее, как и задумывалось, график близок к прямой. Реально это не так. Но получить реальный график можно было за счет его аппроксимации отрезками прямой. Для этого следовало бы менять загружаемое в счетчики число в зависимости от числа оборотов двигателя. Кроме того, я очень сомневаюсь, что угол опережения зажигания может быть равен 108 градусам. В моих заметках речь шла о 15. Но при этом я мог рассматривать углы на распределительном валу, который обслуживает четыре цилиндра двигателя. Контакты в моих записях разомкнуты на 75 градусах, замкнуты на 15 градусах. То есть речь шла о 90 градусах. Но, думаю, практического применения схема в настоящий момент не имеет, а, если кто-то задумает повторить ее в физическом виде, по описанию, сделанному выше, можно понять, как реализовать схему. Мне же хотелось продемонстрировать удобство работы с программой EDA, что, надеюсь, мне удалось.








Hosted by uCoz