Это старая версия документа.
Содержание
Контроллер UPS Nano v3
Контроллер питания UPS «Nano» является вспомогательным устройством, работающем совместно с ПЛК на базе jroboplc. Основное назначение устройства - мониторить работу блока питания и в случае, если идет работа от батареи, информировать об этом ПЛК, чтобы тот корректно завершил свою работу, а по завершении работы ПЛК устройство также отключает батарею, переводя тем самым блок питания полностью в выключенное состояние.
Дополнительно устройство может:
- измерять температуру
- опрашивать один логический вход (сухой контакт)
- управлять одним логическим выходом (реле)
Устройство контактирует с ПЛК посредством обмена данными по последовательной связи RS232 (9600, 8N1).
Со стороны ПЛК для работы с устройством необходимо использовать перефирийный модуль promauto.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 | вход | Подключается к одноименным клеммам БП |
подключение
протокол обмена
Параметры последовательного подключения: 9600, 8N1.
Запрос:
<ver> <BatTimeout> <SerTimeout> <резерв> <Aux> <Beep> <crc32> 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 <IO_state> <T> <crc32> 0 1 2 3 4 5 6 7
- IO_state - состояние входов и выходов:
- b0 - вход AcOk
- b1 - вход BatLow
- b2 - вход AuxInp
- T - текущая измеренная температура
Порядок записи слова - сначала старший байт, затем младший.
Ответ ошибочный:
FF <ver> 0 0 <crc32> 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 секунд.
прошивка
версия 4 - оптимизирована запись в EEPROM
Для прошивки использовать 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
В Arduino IDE выставить:
- Главное меню / Tools / Board =
Arduino Nano
- Главное меню / Tools / Port = выбрать соответствующий порт
- Главное меню / Tools / Processor =
ATmega328P
(если будет ошибка записи, выбратьOld Bootloader
)
файлы для воспроизводства
посылка для проверки
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