Современная электроника №9/2024

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 47 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА • № 9 / 2024 Таблица. Перечень элементов устройства Обозна - чение Наименование Коли - чество C1 Конденсатор 0805-Y5V-0,1 мкФ +80%–20% 50 В 1 CP1 Конденсатор SR-16B-100 мкФ 1 H1 Диод светоизлучающий L-934YD 1 K1 Реле TRD-12VDC-SC-CL-R 1 R1, R5, R6 Резистор 0805 1,0 кОм±5% 3 R2, R3 Резистор 0805 100 Ом±5% 2 R4 Резистор 0805 1,0 МОм±5% 1 U1-U3 Оптрон РС817А 3 VD1-VD3 Диод 1N4007 3 VT1 Транзистор IRLML2803 1 X1-X4 Соединитель DG142V-02P 4 ное напряжение формирует через токо- ограничивающее сопротивление R6 ток, открывающий выходные транзисторы оптронов U2 и U3. Они позволяют ком- мутировать биполярные сигналы пор- та RS-232, формируемые компьютером. Таким образом, формируется контроль- ная замкнутая цепь, позволяющая ком- пьютеру автоматически определять наличие внешнего питания. Компью- тер осуществляет эту проверку путём ежесекундной посылки нескольких байт через последовательный порт, подключённый к данной контрольной цепи, и проверки возврата этих байт на приёме этого же порта. При пропа- дании внешнего питания контрольная цепь разомкнётся, и компьютер обнару- жит это событие. Питание компьютера автоматически начнёт осуществляться от аккумуляторной батареи через диод VD2. В случае если внешнее питание не восстановится в течение времени, задан- ного в программе контроля, компьютер приступит к автоматической парковке под управлением этой программы. В это время конденсатор CP1 начнёт разряжаться через резистор R4 в течение трёх минут, достаточных для парковки компьютера. При снижении напряже- ния на конденсаторе CP1 ниже 3 В поле- вой транзистор закроется и разомкнёт цепь питания коммутационного реле К1. После этого схема устройства при- водится в исходное состояние в ожи- дании появления внешнего питания. При восстановлении питания компью- тер автоматически запустится благода- ря соответствующимнастройкамБИОС и восстановит своюработу. Таким обра- зом, будет защищена операционная система компьютера и предотвраще- но аварийное прерывание его работы. Светодиодный индикатор H1 с токо- ограничивающим сопротивлением R5 индицирует наличие питающего напряжения компьютера. Диод VD3 гасит напряжение самоиндукции во время размыкания реле К1. Керами- ческий конденсатор С1 фильтрует высокочастотные импульсы, возни- кающие при работе устройства. Сое- динители Х1–Х4 являются самозажим- ными [3] и обеспечивают простоту подключения и надёжность соеди- нений при эксплуатации устройства. Перечень элементов устройства пред- ставлен в таблице. Вместо приведённых в таблице эле- ментов допускается использовать ана- логичные элементы любого типа. Устройство изготавливается на мон- тажной или специально разработан- ной печатной плате и размещается в любом корпусе с подходящими разме- рами, например, в обычной монтажной коробке для электрического монтажа. Программа управления компьютером разработана в виде командного файла ups1.bat. Код этойпрограммысостоит все- гоиз двух строкиприведёнв листинге 1. Листинг 1. Код программы ups1.bat @echo off start /min powershell -executionpolicy bypass -file ups1.ps1 Ярлык данной программы необходи- мо поместить в каталог автозагрузки компьютера. Таким образом програм- ма будет автоматически запускаться при каждом включении компьютера и контролировать наличие внешнего сетевого питания. Первая строка этой программы отключает отображение строк на экра- не монитора, а вторая строка вызывает программу, хранящуюся в файле ups1. ps1. Файл этой программы необходимо поместить в один каталог с программой ups1.bat. Программа файла ups1.ps1 раз- работана на основе команд программ- ной оболочки power shell. Данная про- грамма снабжена комментариями, позволяющими модифицировать её при необходимости. Предварительной трансляции такая программа не требу- ет и выполняется автоматически. Код программы ups1.ps1 для автопарковки компьютера приведён в листинге 2. Листинг 2. Код программы ups1.ps1 # П em.IO.Ports. SerialPort]::getportnames() # По- лучить список доступных сом портов Write-Host 'Доступны порты:'; $cp # Создать новый порт СОМ1 с пара- метрами $port = new-Object System. IO.Ports.SerialPort COM1,9600,None,8,one # COM1<-$cp Автовыбор $port.ReadTimeout = 1000; # Задать время ожидания ответа в мс $port.open() # Открыть порт $n = 0 # Счетчик циклов проверки $e = 0 # Счетчик ошибок проверки while ($e -lt 3) # Если ошибок меньше 3 { $port.WriteLine($buftx); $n++; # $n=$n*2; # Отправить строку и уве- личить счётчик проверки $bufrx = "Нет связи" # Заполнить буфер строкой отличной от тестовой Start-Sleep -Seconds 1 # Пауза 1 сек. $bufrx = $port.ReadLine() # При- нять строку if ( $buftx -ne $bufrx ) {$e++; $e; Write-Host 'Отключено пита- ние!'} # СОМ порт не отвечает! else {$e=0; $n; Write-Host 'Пи- тание в норме! Не закрывайте эту программу! Сверните окно програм- мы!'} Start-Sleep -Seconds 2 # Пауза 2 сек. } $port.Close() # Закрыть порт Write-Host 'Обнаружено отключение питания!' Write-Host 'Завершение работы че- рез 10 сек!' shutdown /s /f /t 10 # Следующие 4 строки закомментиро- вать символом # после отладки: Start-Sleep -s 3 # Пауза 3 сек. Write-Host 'Отмена парковки!' shutdown /a Start-Sleep -s 3 # Пауза 3 сек. Exit # Выход Для проверки работы программы можно запустить её в ручном режиме и убедиться в её функционировании. Если у компьютера отсутствует после- довательный СОМ-порт, вместо него можно использовать любой свободный USB-порт с адаптером USB-COM. После подключения адаптера USB-COMк ком- пьютеру и установки драйверов для него в диспетчере устройств появится вирту- альный СОМ-порт с определённымноме- ром. Если этот номер будет отличаться от СОМ1, потребуется заменить в файле ups1.ps1 все записи «СОМ1» на «СОМn», где n – номер из диспетчера устройств. Литература: 1. URL: http://www.apc.com . 2. URL: https://en.wikipedia.org/ wiki/18650_battery. 3. URL: https://degson.com.

RkJQdWJsaXNoZXIy MTQ4NjUy