Здравствуйте уважаемые форумчане.
Есть контроллер ПЛК73 и однофазный амперметр МЭ110-224.1Т подключенный к первому по линии RS-485 и протоколу ModBus_RTU.
Написал програмку для контроллера и уперся в такой момент, что в считанном буфере вместо тех данных которые я должен преобразовать в значение типа float лежит полная фигня.
Код:
IF COM_SERVICE1.ready=FALSE THEN
Settings.Port:=com_num;
Settings.dwBaudRate:=115200;
Settings.byParity:=0;
Settings.dwTimeout:=0;
Settings.byStopBits:=0;
Settings.dwBufferSize:=0;
Settings.dwScan:=0;
COM_SERVICE1(Enable:=TRUE , Settings:=Settings , Task:=OPEN_TSK );
com_ready:=FALSE;
ELSE
COM_SERVICE1.Enable:=FALSE;
com_ready:=TRUE;
END_IF
IF com_ready=TRUE THEN
get_modbus(
Enable:=enabl ,
Mode:=MB_RTU ,
DevAddr:=11 ,
FirstAddr:=29 ,
Quantity:=2,
ComHandle:=Settings.Port ,
TimeOut:=TimeOut ,
Buffer:=Buffer ,
Complete=>cmpl ,
Exception=>err ,
ByteCnt=>DataSize );
IF cmpl THEN
IF err=0 THEN
ptr_D:=ADR(d);
ptr_D^:=buffer[6];
ptr_D:=ptr_D+1;
ptr_D^:=buffer[7];
ptr_D:=ptr_D+1;
ptr_D^:=buffer[8];
ptr_D:=ptr_D+1;
ptr_D^:=buffer[9];
END_IF
END_IF
END_IF
IF err <> 0 THEN
enabl := FALSE;
END_IF
enabl:=TRUE;
При просмотре измеренного значения в конфигураторе, значение равно 0.273 А.
Следовательно я должен получить что-то типа http://www.binaryconvert.com/result_...48046050055051, но этого не происходит.
Подскажите пожалуйста, куда копать?
Заранее очень Вам благодарен за полноценный ответ.