Самые обсуждаемые темы (topbloger) wrote,
Самые обсуждаемые темы
topbloger

Categories:

А почему не микроконтроллер?



Всегда, когда я публиковал что-то связанное с штатным блоком управления магнитофона «Электроника-004», неизменно получал вопрос: «А почему не микроконтроллер?» Действительно, плата разработки конца 70-х годов, набитая микросхемами логики, сегодня смотрится совсем непрезентабельно. Хотя свои функции она выполняет вполне нормально. Понятно, что сегодня все это должно быть сделано на микроконтроллере. В общественном сознании циркулирует уверенность, что реализовать это – раз плюнуть. Действительно, заменить полтора десятка микросхем жесткой логики микроконтроллером может любой ардуинщик, потратив на это пару вечеров. Не знаю почему, но для меня в последнее время все проекты стали очень сложными. Даже простые. Старость, наверное. Всё теперь на грани возможного, а иногда становится и вовсе невыполнимым. Но я попытался. На это ушел год напряженного труда. Что-то работает, но проект все еще оставляет впечатление очень сырого. Более того, остается под сомнением вообще его пригодность к использованию.



Коротко про новую плату блока управления (БУ) я уже писал. Но такая длительная и тяжелая работа заслуживает более подробного рассказа.

Штатная плата имеет размеры 250х150 мм и довольно плотно усеяна компонентами. На ней насчитывается 15 микросхем логики, 2 ОУ и микросхема аналогового коммутатора. Плюс ко всему более 30-ти транзисторов, не считая диодов, резисторов и конденсаторов.



В оригинале применяется TTL-логика с довольно высоким потреблением. Ее можно заменить на КМОП-логику серии 74HC, значительно снизив потребление. При этом требуется некоторая корректировка номиналов, о чем я уже писал. Все это можно упростить и сделать более компактным, применив микроконтроллер и SMD-монтаж.

Начал работу, как обычно, с изучения аналогов. Пришлось просмотреть сервис-мануалы на многие фирменные катушечные магнитофоны. В первую очередь это Revox A700, A77, B77, PR99. Потом Studer A80, A800, A807, A810, A812, A820. Tascam BR20. Teac X-2000R. Technics RS-1500, RS-1700. Fostex A-8, E-2, E-8, G16S, 80. Otari MTR-10, MTR-15, MTR-90, MX-55, MX-5050. Ampex ATR-800. Philips N4520, N7300. Pioneer RT-909. Sansui SD-7000. Denon DH-510. Tandberg TD20A. Akai GX-365, GX-370, GX-650, GX-635, GX-77, GX-747. STM-310, STM-610. Ну и, конечно, все семейство «Электроника» и «Олимп».

Затем определился с основными функциями БУ и набором сигналов, которые приходят и уходят. Эти сигналы подписаны на блок-схеме, которая является заглавной картинкой поста.

Самая важная задача БУ – стабилизация натяжения магнитной ленты. На БУ поступают сигналы TEN1 и TEN2 с датчиков натяжения. Руководствуясь этими сигналами, БУ меняет напряжение питания боковых двигателей, чтобы натяжение ленты оставалось постоянным. На плате БУ должна быть собрана часть схемы управления двигателями, снаружи установлены только регулирующие транзисторы. Они управляются сигналами M1 и M2, а оттуда приходят сигналы обратной связи FBM1 и FBM2. В режиме перемоток принимающий двигатель не управляется, на него подается повышенное напряжение, которое включается сигналами FFD и REW.

Ведущий двигатель имеет свой собственный контроллер. От БУ требуется только один сигнал – реверс (M-REVERSE). Выбор скорости производится механическим переключателем без участия БУ.

ЛПМ имеет 3 электромагнита: EM1 (Tape Lift Solenoid) – отвод ленты от головок в режиме перемотки, EM2 (Brake Solenoid) – отвод тормозных лент, EM3 (Press Solenoid) – прижим ролика. Для каждого электромагнита решил сделать управление со стартовым импульсом, после которого подается пониженный ток удержания. В оригинале такое управление было только у электромагнита ролика. Поэтому для управления каждым электромагнитом требуются два сигнала: Force и Hold. Всего их шесть: EM1F, EM1H, EM2F, EM2H, EM3F, EM3H.

Для контроля окончания магнитной ленты имеется специальный оптический датчик (Tape End Sensor). Он формирует сигнал END, который поступает на БУ.

Для контроля движения ленты имеется индуктивный датчик, который реагирует на лопасти крыльчатки, расположенной под правым обводным роликом. Он формирует сигнал движения ленты (MOVE). В режиме перемотки постоянную времени этого датчика можно уменьшить с помощью специального сигнала (TC).

Аналоговый тракт магнитофона управляется всего с помощью трех логических сигналов: блокировка УВ (MUTE), включение реверсного канала (REVERSE) и включение режима записи (REC). Остальные переключения и регулировки производятся кнопками и регуляторами с передней панели без участия БУ.

Управление ЛПМ магнитофона осуществляется с передней панели, на которой расположено 8 кнопок. В семи из них находятся светодиоды подсветки. Поэтому для управления задействовано 8 входных сигналов для кнопок и 7 выходных сигналов для светодиодов. Сигналы следующие: кнопка «Откат» (KEY_ROLL), «Пауза» (KEY_PAUSE, LED_PAUSE), «Воспроизведение назад» (KEY_PLAYR, LED_PLAYR), «Перемотка назад» (KEY_REW, LED_REW), «Перемотка вперед» (KEY_FFD, LED_FFD), «Воспроизведение вперед» (KEY_PLAYF, LED_PLAYF), «Стоп» (KEY_STOP, LED_STOP), «Запись» (KEY_REC, LED_REC).

Это тот минимум, который обеспечивается штатным БУ. Я решил на первом этапе ограничится этим минимумом, чтобы работа не превратилась в невыполнимую. Хотя на плате нового БУ сразу предусмотрел возможность дальнейшего расширения. Сразу добавил приемник ИК ДУ, а также ряд сигналов и интерфейсов для связи с будущими новыми блоками.

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

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



К рычагу прикреплена алюминиевая шторка специальной формы, которая входит в зазор между двумя половинками ферритовой чашки Б14. В каждой половинке размещена обмотка. Одна из обмоток питается от генератора частотой примерно 1.3 МГц, другая подключена к детектору. Когда между половинками сердечника вдвигается шторка, связь между обмотками падает и напряжение на выходе датчика уменьшается. Шторка входит в зазор при поднятии рычага, поэтому чем больше натяжение ленты, тем меньше напряжение на выходе. Полярность выходного напряжения в штатных датчиках натяжения магнитофона "Электроника-004" – отрицательная.

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

В датчике используются две пружины разной жесткости. При отклонениях рычага до +10° (считая от горизонтального положения) работает мягкая пружина.



При отклонениях больше +10° к ней добавляется вторая пружина, более жесткая.



Дополнительно датчик содержит демпфер в виде емкости, заполненной вязкой силиконовой жидкостью. На фото видна ее крышка с тремя винтами. Внутри емкости поворачивается пластмассовая шайба, связанная с рычагом. Благодаря вязкому трению свободные колебания рычага демпфируются.

Схемотехника и конструкция датчиков натяжения вызывает ряд вопросов, но я сознательно пока их не касаюсь. Занимаюсь исключительно БУ, не отвлекаясь на модернизацию других узлов. Их время придет позже.

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



Датчики натяжения «Электроники» и Студеров с Ревоксами – близнецы-братья. Вот сравнительные фото датчиков Revox A700 и Э-004 (фото найдены в Сети):





Сначала попробовал воспользоваться набором разновесов в мешочке, привязанном к отрезку ракорда. Пользоваться всем этим оказалось крайне неудобно.


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



Шкалы напечатал на лавсановой пленке, которая почти не растягивается. Получились динамометры со шкалами до 130 гс, 550 гс и 1500 гс.



С помощью динамометров стало гораздо легче измерять натяжение магнитной ленты. Но что я увидел? При одном и том же положении рычага натяжителя можно получить совершенно разные показания динамометра. На фотографиях ниже видно, как при положении рычага -10° динамометр показывает от 65 гс до 95 гс. Все зависит от предыстории движения рычага. Какое значение является верным?



О чем-то подобном предупреждают в сервис-мануале на Studer A810:



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



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


Полученные данные занесены в таблицу: колонка 1 - это угол отклонения рычага, колонка 2 - величина приложенной вертикально силы F1.


Зависимость величины отклонения рычага от силы F1 показана на графике ниже (красный график).


На графике видны два практически линейных участка: при отклонениях рычага от -30° до +10°, когда работает мягкая пружина, и от +10° до +30°, когда к ней добавляется жесткая. Рабочее натяжение ленты обеспечивается на первом участке, а второй участок служит для сглаживания колебаний натяжения в переходных режимах. Середина первого участка соответствует отклонению рычага -10°, именно это положение указано как номинальное в сервис-мануалах магнитофонов Studer, являющихся прообразом ЛПМ данного магнитофона. Пружина рычага натяжителя должна быть отрегулирована так, чтобы при номинальном положении рычага обеспечивалось номинальное натяжение ленты. Для бытового аппарата, работающего в основном с лентами толщиной 35 мкм, это натяжение составляет порядка 70 гс.

Вертикальная сила, действующая на рычаг натяжителя, не равна натяжению ленты. Геометрия тракта такова, что углы обхвата ролика натяжителя лентой зависят от величины отклонения рычага. При отклонении рычага на угол a1 относительно горизонтального положения, угол обхвата ролика слева составит a2, справа - a3.


Вклад натяжения веток ленты от катушки до ролика натяжителя и от ролика натяжителя до обводного ролика в вертикальную составляющую силы F1 будет разный в зависимости от значения углов a2 и a3. Если пренебречь трением в осях роликов и считать натяжение ленты для всех веток равным T, тогда сила F1 = T * sin(a2) + T * sin(a3). Откуда T = F1 / (sin(a2) + sin(a3)).

Значения углов огибания a2 и a3 для разных углов поворота рычага a1 приведены в колонках 3 и 4 в таблице выше. В колонке 5 приведены соответствующие значения натяжения ленты T. На основе этих данных можно построить график зависимости натяжения ленты от угла поворота рычага (синий график выше). Натяжение ленты всегда меньше вертикальной составляющей силы, действующей на рычаг, поскольку эту силу создают сразу две ветки ленты. В начале хода рычага (-30°) сила натяжения T = 0.89 * F1, в конце хода (+30°) T = 0.56 * F1. Довольно сложная зависимость T от F1 на графике выглядит как простое смещение графика натяжения вниз.

Следует отметить, что при данной геометрии тракта углы огибания лентой ролика зависят не только от угла отклонения рычага, но и от диаметра рулона ленты. Все расчеты выше выполнены для диаметра рулона 100 мм. Конфигурация тракта при разных диаметрах рулона показана на рисунке ниже:


Даже при неизменном угле отклонения рычагов (что и поддерживает САР натяжения) натяжение ленты все равно не будет постоянным. Оно будет зависеть от диаметра рулонов. Поэтому реализовать точную стабилизацию натяжения ленты в данном ЛПМ не представляется возможным (по крайней мере, простыми средствами). Но зависимость натяжения от диаметра рулона не такая большая. Для катушек №27 погрешность не превышает 4.5%. Минимум натяжения наблюдается в середине рулона, в начале и конце рулона натяжение растет. Для всего диапазона катушек от №10 до №27 погрешность не превышает 8.5%. Надо отметить, что штатная аналоговая САР натяжения имеет более высокую погрешность, чем погрешности, связанные с геометрией ЛПМ.

САР использует выходное напряжение датчика натяжения, которое зависит от угла поворота рычага. Вид этой зависимости задан формой шторки и конструктивными особенностями датчика. В результате эта зависимость тоже нелинейная (колонка 6 таблицы выше). Выходное напряжение датчика уменьшается при поднятии рычага. Отрицательная полярность выходного напряжения датчика здесь не показана, чтобы не запутывать картину. Вместо этого показан модуль выходного напряжения. На графике зависимость выглядит так:


Рабочим является участок от -30° до +10°, здесь линейность выходного напряжения вполне нормальная. Зависимость выходного напряжения от натяжения показана ниже:


Рабочий участок здесь от 50 до 100 гс. На этом графике он сжат, наглядней построить обратную зависимость – натяжения от напряжения:


Рабочий участок от 2.5 до 1.5 В достаточно линеен. Номинальное натяжение 70 гс обеспечивается при напряжении датчика примерно 1.875 В, что соответствует примерно 25% диапазона графика по оси X.

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

Штатная САР натяжения ленты представляет собой аналоговый пропорциональный регулятор (P-регулятор). Из-за ограниченного усиления появляется заметная погрешность. Для получения заданного натяжения при большом диаметре рулона от двигателя требуется больший момент, чем при маленьком диаметре. Поскольку диапазон изменения диаметра довольно широкий, напряжение питания двигателя тоже должно меняться в широких пределах. У P-регулятора выходной сигнал пропорционален входному (величине ошибки), поэтому с ростом требуемого момента растет и ошибка натяжения. Ниже на графике показано изменение натяжения ленты справа и слева при проигрывании катушки №27. Ступеньки на графике связаны с тем, что проигрывались короткие фрагменты, далее снятие графика прерывалось, делалась перемотка на 10 минут вперед, затем снова снимался фрагмент и т.д.


Проблемы штатной САР заключаются не только в наличии статической ошибки натяжения. В переходных режимах наблюдаются заметные колебания натяжения. Они проявляются особенно сильно на аппаратах, где жидкостные демпферы датчиков натяжения заполнены не полностью. Вот как выглядит график натяжения при включении рабочего хода:


Демпфировать колебания можно не только механическим способом, но и электронным. Реализовать это можно добавлением в P-регулятор D-компоненты. Для аналогового регулятора вся доработка заключается в добавлении одной RC-цепочки. Такая цепочка была в Revox A700, есть она и в более поздних магнитофонах "Олимп". Но в Э-004 почему-то отсутствует.


С такой цепочкой получается PD-регулятор, колебания натяжения ленты при этом заметно уменьшаются:


Чтобы устранить статическую погрешность натяжения ленты, в регулятор надо добавить I-компоненту, превратив его в полноценный PID. Анализ схем фирменных магнитофонов показывает, что ни в одном из них такого регулятора нет. Везде применяется PD-регулятор. Единственным аппаратом с аналоговым PID-регулятором оказался редкий "Олимп-700".


Поскольку ЛПМ "Олимп-700" не отличается от ЛПМ "Электроника-004", этот регулятор можно использовать в качестве отправной точки при создании цифрового регулятора на микроконтроллере. Параметры регулятора можно вычислить на основе номиналов, но проще их определить измерением на модели. Можно смоделировать отдельно P, I и D ветки регулятора.



В результате воздействий, показанных на схеме, на выходе получаем следующие отклики:



По откликам можно рассчитать коэффициенты для каждой из веток регулятора. Vout_p = Vin * 37; Vout_d = Vin * 138 * t; Vout_d = Vin * 1.23 / t. Диапазоны входных и выходных напряжений для аналогового и цифрового регулятора будут близки, поэтому можно надеяться, что приблизительно такие же значения коэффициентов подойдут и для цифрового регулятора.

Цифровую САР натяжения ленты решил построить следующим образом. Сигналы датчиков натяжения поочередно считываются с помощью АЦП, период выборок 1 мс. Несколько выборок усредняются, в результате получается период дискретизации, задаваемый константой TSAMPLE. Выбор периода дескретизации регулятора – темный для меня вопрос. Имеем дело с достаточно инерционной механической системой, период собственных колебаний натяжителей составляет сотни миллисекунд. На мой взгляд, подойдет период дискретизации в несколько миллисекунд. При усреднении код АЦП приводится к диапазону 0…65535, чтобы можно было легко менять количество усреднений.

Используется внутренний ИОН, полная шкала АЦП составляет 2.56 В. Подстроечными резисторами на платах датчиков натяжения диапазон выходного сигнала датчика устанавливается равным входному диапазону АЦП. Далее код АЦП поступает на программные PID-регуляторы. Регуляторы реализованы в диффренциальной форме с использованием 32-разрядной целочисленной арифметики:

uint16_t TPid::Execute(uint16_t inp)
{
  //PID-регулятор реализован в дифференциальной форме:
  //Y(n) = Y(n-1) - Kp*[X(n)-X(n-1)] + Ki*Err(n) - Kd*[X(n)-2*X(n-1)+X(n-2)]
  int32_t Y = Yp;
  //учет пропорциональной составляющей:
  int32_t div1 = (int32_t)inp - Xp;
  Y = Y - (int32_t)K.p * div1 * (SCALE_Y / 10);
  //учет интегральной составляющей:
  int32_t err = (int32_t)Ref - inp;
  Y = Y + (int32_t)K.i * err * (SCALE_Y * T_SAMPLE / 1000);
  //учет дифференциальной составляющей:
  if((Y > 0) && (Y < (TEN_MAX * SCALE_Y))) //при ограничении D отключается
  {
    int32_t div2 = (int32_t)inp - 2 * (int32_t)Xp + Xpp;
    Y = Y - (int32_t)K.d * div2 * (SCALE_Y * 10 / T_SAMPLE);
  }
  //ограничение выходного значения:
  if(Y < 0) Y = 0;
  if(Y > (TEN_MAX * SCALE_Y)) Y = (TEN_MAX * SCALE_Y);
  //обновление величин:
  Yp = Y;
  Xpp = Xp;
  Xp = inp;
  return(Y / SCALE_Y);
}

Для каждого из режимов для регуляторов задается нужное образцовое значение Ref. Текущее натяжение сравнивается с образцовым, на основе величины ошибки вырабатывается величина воздействия, которая выводится в ШИМ ЦАП. Выходное напряжение ШИМ фильтруется и подается на буферный усилитель, который управляет регулирующими транзисторами боковых двигателей.

Чтобы временно прервать длинный рассказ (он не влезет в один пост) и одновременно прийти к какому-то логическому завершению, забегу немного вперед. Про схемотехнику и другие узлы БУ напишу в следующий раз, а теперь немного расскажу о результатах работы САР натяжения.

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

Настройку PID, как всегда, делал чисто интуитивно, но довольно быстро были подобраны приемлемые коэффициенты. Их значение не очень-то совпадало с коэффициентами аналогового прототипа PID. Возможно, я здесь что-то не учитываю. Переходной процесс цифровой САР мало чем отличался от результата работы аналоговой. Как и положено регулятору с интегральным звеном, статическая ошибка получилась нулевой, натяжение ленты стало поддерживаться с высокой точностью вне зависимости от диаметра рулона. В этом смысле цифровая САР работает превосходно.

Но что разительно отличается от аналоговой САР – так это границы устойчивости. Для аналоговой системы можно паять в обвязке ОУ практически что угодно – устойчивость сохраняется. Когда добавлял D-звено, номиналы взял первые попавшиеся. Ни намека на генерацию. В то же время когда в цифровом PID совсем немного меняю D-коэффициент – тут же получаю генерацию. И так по всем коэффициентам: шаг влево, шаг вправо – становится плохо. Это сильно беспокоит. На разных экземплярах магнитофона может быть отличие каких-то механических параметров, будет ли регулятор устойчивым – это вопрос.

Пробовал менять период дискретизации раз в 10 в тут и другую сторону – ничего принципиально не меняется. Есть какие-то отличия в регулировании, но незначительные. Сейчас установил период дискретизации 4 мс, с ним и работаю.

Скорее всего, я просто не умею правильно строить подобные САР. Описывал свои проблемы на форуме Вегалаб, где многие занимаются модернизацией магнитофонов и туда ходит много людей. Жду, пока появится спец по САР и все разъяснит. Но спец все не появляется...

Еще одной неожиданностью стал странный график выходного воздействия, формируемого PID. На графике видны короткие выбросы довольно большой, причем чаще всего одинаковой амплитуды. Они, конечно, до двигателей не доходят и убираются фильтром ШИМ, давая какое-то среднее значение, но тем не менее.



Сначала подозревал наличие ошибки в программе. но потом понял, что это действие D-компоненты регулятора. D-коэффициент здесь довольно большой, чтобы получалась нужная переходная характеристика. Одна ступенька 10-разрядного АЦП, будучи умноженной на этот коэффициент, дает такой выброс. Т.е. мы видим дискретность АЦП. При повышении частоты дискретизации D-коэффициент уменьшается, выбросы тоже уменьшаются. Но на устойчивость или качество работы регулятора это совершенно не влияет.

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

Цифровая САР оставляет неоднозначное впечатление. Она получилась слишком капризной. Аналоговый PID-регулятор работает всегда и при любых условиях. Возможно, цифровую САР можно допилить, но сейчас я даже не знаю, куда копать. Подумываю даже сделать глупую работу и собрать аналоговый PID-регулятор, чтобы убедиться в одном из двух. Или цифровой никуда не годен и следует выбросить его. Или, наоборот, в аналоговом тоже не все гладко и цифровой предпочтителен. Например, из-за своей гибкости, которая может потребоваться при реализации всяких дополнительных режимов. В аналоговом что-то поменять можно только с помощью паяльника.

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



источник - leoniv 
[1 ссылок 65 комментариев 2000 посещений]
читать полный текст со всеми комментариями
Tags: leoniv
Subscribe

Recent Posts from This Journal

promo topbloger november 1, 19:44 233
Buy for 50 tokens
Привет! В моем блоге автоматически топботом собираются все самые интересные темы блогосферы. Более полно посмотреть все интересные посты блогосферы вы можете на сайте t30p.ru. Узнать какие из ваших постов попадали в ТОП 30 можно на сайте topbloger.ru. Подписаться на чтение самых…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments