вопрос про RS232 to TTL conv и подключение ИБП по комп порту.

gus21rus
Offline
Зарегистрирован: 21.05.2017

В общем, задался я вопросом научить ардуину опрашивать ИБП на состояние. Нашел документацию по протоколу обмена данными, но вот незадача, при подключении ИБП к ардуине через 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());

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

gus21rus пишет:

 в чем может быть соль господа

Соль скорее всего в солонке, а про проблему Вы дали слишком мало информации.

Например, что в документации написано про скорость обмена? Вы правильную выставляете? Пробовали менять и подбирать?

gus21rus
Offline
Зарегистрирован: 21.05.2017

в документации описано что обмен данными происходит на скорости 2400бод, подбирал, но безуспешно. Пробовал преобразовывать вывод с серийного порта1 в тип char. нулевой результат. В документации указан стандарт по которому он передает данные, и в основном это тип float (возможно он передает в текстовом виде в виде MM.M) но и parseFloat() не решил подобную проблему.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

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

gus21rus
Offline
Зарегистрирован: 21.05.2017

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 и ибп)

нан

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А вот как раз то, что по команде  I<cr> Вы пытались в char преобразовать? И вообще, давайте Ваш код целиком. и заодно что он там печатает

sadman41
Offline
Зарегистрирован: 19.10.2016

gus21rus пишет:

В общем, задался я вопросом научить ардуину опрашивать ИБП на состояние. Нашел документацию по протоколу обмена данными

Я правильно понимаю, что UPS типа IPPON с протоколом Megatec? У меня есть необходимость проверить свой исходный код на работоспособность, но нет железки. У вас есть железка, но нет кода. Можем скооперироваться. Оставьте свой адресок, если интересен такой вариант.

gus21rus
Offline
Зарегистрирован: 21.05.2017

ЕвгенийП пишет:

А вот как раз то, что по команде  I<cr> Вы пытались в char преобразовать? И вообще, давайте Ваш код целиком. и заодно что он там печатает


Агась. При переводе в тип char он выводит в основном пустые ячейки и нераспознаные символы.

gus21rus
Offline
Зарегистрирован: 21.05.2017

sadman41 пишет:

gus21rus пишет:

В общем, задался я вопросом научить ардуину опрашивать ИБП на состояние. Нашел документацию по протоколу обмена данными

Я правильно понимаю, что UPS типа IPPON с протоколом Megatec? У меня есть необходимость проверить свой исходный код на работоспособность, но нет железки. У вас есть железка, но нет кода. Можем скооперироваться. Оставьте свой адресок, если интересен такой вариант.


Все верно, ippon blackpower 600 и насколько я ознакомился с манулами протокол стандартный для многих моделей. Если вы хотите отладить свою программу присылайте, проверю.

sadman41
Offline
Зарегистрирован: 19.10.2016

gus21rus пишет:
Все верно, ippon blackpower 600 и насколько я ознакомился с манулами протокол стандартный для многих моделей. Если вы хотите отладить свою программу присылайте, проверю.

...и куда?

gus21rus
Offline
Зарегистрирован: 21.05.2017

sadman41 пишет:

gus21rus пишет:
Все верно, ippon blackpower 600 и насколько я ознакомился с манулами протокол стандартный для многих моделей. Если вы хотите отладить свою программу присылайте, проверю.

...и куда?

gus21rus@mail.ru