====== Контроллер UPS Nano v3 ====== Контроллер питания UPS "Nano" является вспомогательным устройством, работающем совместно с ПЛК на базе jroboplc. Основное назначение устройства - мониторить работу блока питания и в случае, если идет работа от батареи, информировать об этом ПЛК, чтобы тот корректно завершил свою работу, а по завершении работы ПЛК устройство также отключает батарею, переводя тем самым блок питания полностью в выключенное состояние. Дополнительно устройство может: * измерять температуру * опрашивать один логический вход (сухой контакт) * управлять одним логическим выходом (реле) Устройство контактирует с ПЛК посредством обмена данными по последовательной связи RS232 (9600, 8N1). Со стороны ПЛК для работы с устройством необходимо использовать перефирийный модуль [[doc:jroboplc:modules:peripherial:upsnano]]. ===== клеммы ===== ^№^Имя^Тип^Описание^ ^Сторона 1^^^^ | 1 | InpGND | вход |БП - | | 2 | InpVDD | вход |БП + 12В | | 3 | - | - |Не используется | | 4 | LedCmn | выход |Общий выход для светодиодов | | 5 | Led3 | выход |Выход светодиода PLC | | 6 | Led2 | выход |Выход светодиода Bat | | 7,8 | BatCtrl | выход |Реле батареи. Нормально-разомкнутые выходы. Включается между Bat+ блока питания и + аккумулятора | | 9,10 | AuxCtrl | выход |Реле вспомогательное. Нормально-разомкнутые выходы. Управляется командой по последовательному порту | | 11,12 | АсCtrl | выход |Реле питания БП. Нормально-замкнутые выходы. Включается в разрыв L питания БП | ^Сторона 2^^^^ | 13 | RX | rs-232 | | | 14 | TX | rs-232 | | | 15 | GND | rs-232 | | | 16 | TrmGND | выход |Термодатчик | | 17 | TrmDQ | вход |Термодатчик | | 18 | TrmVDD | выход |Термодатчик | | 19,20 | AuxInp | вход |Вспомогательный вход для сух/конт | | 21,22 | BatLow | вход |Подключается к одноименным клеммам БП | | 23,24 | AcOk | вход |Подключается к одноименным клеммам БП | ===== подключение ===== {{ :doc:jroboplc:ups_devices:ups_nano-v3.pdf |pdf}} {{ :doc:jroboplc:ups_devices:ups_nano-v3.rar |dwg}} Подключение UpsNano к PLC по RS-232: ^ UpsNano ^ DB9 Female ^ | 13 RX | 3 TX | | 14 TX | 2 RX | | 15 GND | 5 GND | ===== протокол обмена ===== Параметры последовательного подключения: 9600, 8N1. Запрос: <резерв> 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 * BatTimeout - время отключения батареи при отсутствии опроса и AcOk=0 (сек) * SetTimeout - время определения отсутствия опроса (сек) * Aux - управления реле: * = 0 - выкл * = 1 - вкл * Beep * b5-b4 - Режим работы звукоизлучателя: 0-нормальный, 1-тихий, 2-без звука Значения BatTimeout, SetTimeout сохраняются в EEPROM. Ответ нормальный: 0 0 1 2 3 4 5 6 7 * IO_state - состояние входов и выходов: * b0 - вход AcOk * b1 - вход BatLow * b2 - вход AuxInp * T - текущая измеренная температура Порядок записи слова - сначала старший байт, затем младший. Ответ ошибочный: FF 0 0 0 1 2 3 4 5 6 7 ===== светодиоды ===== Светодиод Plc, синий. Отображает состояние опроса от ПЛК: * Горит прерывисто (1s) - есть опрос. * Горит прерывисто (3 коротких 100ms, пауза 1s) - нет опроса. Светодиод Bat, красный. Отображает состояние работы от батареи. * Не горит - работа от сети. * Горит постоянно - работа от батареи, AcOk=0. * Горит прерывисто (100ms) - работа от батареи, AcOk=0 и BatLow=1. ===== реле ===== BatCtrl служит для разрывания цепи подключения аккумулятора к БП. * замыкается при AcOk = 1 * размыкается, если одновременно: * AcOk = 0; * нет опроса от компьютера в течение SerTimeout+BatTimeout секунд. AcCtrl служит для разрывания цепи питания БП. Является нормально-замкнутым. * размыкается, если одновременно: * AcOk = 0; * нет опроса от компьютера в течение SerTimeout секунд. ===== прошивка ===== [[doc:jroboplc:ups_devices:ups_nano_src_3|версия 3]] [[doc:jroboplc:ups_devices:ups_nano_src_4|версия 4]] - оптимизирована запись в EEPROM Для прошивки использовать [[https://www.arduino.cc/en/software|Arduino IDE]] В Arduino IDE установить библиотеки (Главное меню / Tools / Manage Libraries...): * ''CRC32'' by Christopher Baker (ver >= 2.0.0) * ''DallasTemperature'' by Miles Burton (ver >= 3.9.0) Настройка доступа к COM-порту в ubuntu: sudo apt install avrdude sudo usermod -a -G dialout $USER [[http://wiki.amperka.ru/_media/articles:driver-ch340:ch340ser-wimdows.zip|Драйвер CH340 для Windows]] В Arduino IDE выставить: * Главное меню / Tools / Board = ''Arduino Nano'' * Главное меню / Tools / Port = выбрать соответствующий порт * Главное меню / Tools / Processor = ''ATmega328P'' (если будет ошибка записи, выбрать ''Old Bootloader'') ===== файлы для воспроизводства ===== http://prom-auto.ru/download/?dir=docs/upsnano ===== посылка для проверки ===== 00 00 3C 00 03 00 00 00 00 00 00 92 6A 98 B7 04 00 3C 00 03 00 00 00 00 00 00 22 B3 EB 35