вопрос про RS232 to TTL conv и подключение ИБП по комп порту.
- Войдите на сайт для отправки комментариев
Вс, 21/05/2017 - 17:27
В общем, задался я вопросом научить ардуину опрашивать ИБП на состояние. Нашел документацию по протоколу обмена данными, но вот незадача, при подключении ИБП к ардуине через RS232 (MAX232) конвертер вместо корректных данных я получаю набор цифр, ибп отвечает на запросы, но похоже что "они не понимают друг друга" в чем может быть соль господа, кто сталкивался с подобным? Код проброса данных выглядит следующим образом:
if(Serial1.available()>0) while(Serial1.Available!=0) Serial.print(Serial1.read()); if(Serial.available()>0) while(Serial.available()>0) Serial1.print(Serial.read());
в чем может быть соль господа
Соль скорее всего в солонке, а про проблему Вы дали слишком мало информации.
Например, что в документации написано про скорость обмена? Вы правильную выставляете? Пробовали менять и подбирать?
в документации описано что обмен данными происходит на скорости 2400бод, подбирал, но безуспешно. Пробовал преобразовывать вывод с серийного порта1 в тип char. нулевой результат. В документации указан стандарт по которому он передает данные, и в основном это тип float (возможно он передает в текстовом виде в виде MM.M) но и parseFloat() не решил подобную проблему.
Не, ну если float, так и печатайте float. Вы же у себя побайтно печатаете. Печатайте так. как написано в докуиментации. Если float, то собирайте 4 байта и печатайте одно число. Вообще, если там написана структура данных, так повторите её полностью.
B. Hardware:
BAUD RATE............... : 2400 bps
DATA LENGTH.......... : 8 bits
STOP BIT..................... : 1 bit
PARITY........................ : NONE
//По поводу обмена данными из документации.
C. COMMUNICATIONS PROTOCOL:
1. Status Inquiry:
Computer : Q1<cr>
UPS : UPS status data stream, such as
(MMM.M NNN.N PPP.P QQQ RR.R S.SS TT.T b7b6b5b4b3b2b1b0<cr>
UPS Information Command:
Computer : I<cr>
UPS : #Company_Name UPS_Model Version<cr>
This function will make the UPS respond with the basic information about the company who manufacture the UPS, the model name of the UPS and the version number of the UPS firmware. The length of every field is listed as follows:
Company_Name : 15 characters, leave space if less than 15 characters
UPS_Model : 10 characters, leave space if less than 10 characters
на попытку отправить запрос Q1 ибп отвечает набором цифр, что всегда заканчиваются на одно и тоже число.
Даже по команде I<cr> он шлет цифры. Соответственно думается мне мы оба друг-друга не понимаем (Arduino и ибп)
нан
А вот как раз то, что по команде I<cr> Вы пытались в char преобразовать? И вообще, давайте Ваш код целиком. и заодно что он там печатает
В общем, задался я вопросом научить ардуину опрашивать ИБП на состояние. Нашел документацию по протоколу обмена данными
Я правильно понимаю, что UPS типа IPPON с протоколом Megatec? У меня есть необходимость проверить свой исходный код на работоспособность, но нет железки. У вас есть железка, но нет кода. Можем скооперироваться. Оставьте свой адресок, если интересен такой вариант.
А вот как раз то, что по команде I<cr> Вы пытались в char преобразовать? И вообще, давайте Ваш код целиком. и заодно что он там печатает
Агась. При переводе в тип char он выводит в основном пустые ячейки и нераспознаные символы.
В общем, задался я вопросом научить ардуину опрашивать ИБП на состояние. Нашел документацию по протоколу обмена данными
Я правильно понимаю, что UPS типа IPPON с протоколом Megatec? У меня есть необходимость проверить свой исходный код на работоспособность, но нет железки. У вас есть железка, но нет кода. Можем скооперироваться. Оставьте свой адресок, если интересен такой вариант.
Все верно, ippon blackpower 600 и насколько я ознакомился с манулами протокол стандартный для многих моделей. Если вы хотите отладить свою программу присылайте, проверю.
...и куда?
...и куда?
gus21rus@mail.ru