-
Проблема с ТРМ151 запись уставки
Здраствуйте, столкнулся со следующей проблемой:
Необходимо записывать значения в уставку типа мощность
При записи часть значений прибором не воспринимается
Т.е 0,07 записывается а 0,08 уже нет.
На графике значения 0 - запись прошла успешно, -104 ошибка
значения не записываются одни и теже.
код записи
s:=FormatFloat('0.00',TrackBar2.Position/100);
f:=StrToFloat(s) ;
i:=WriteStoredDotS(16,0,'sp.lu',f,1);
-
Пользователь
Через какую программу меняете параметры?
-
-
Да, кстати, через конфигуратор ТРМ151 все пишется замечательно, -104 это вроде неверный формат данных, но я хоть убей не понимаю почему 0,07 0,09 0,10 верные данные, а тоже 0,09 0,12 итд нет
-
Если вы используете библиотеку owen_io, то -104 означает что прибор вернул ошибку nErr, после получения такого сообщения надо бы считать из прибора эту самую ошибку функцией LastErrToStr из набора библиотеки. Посмотрев ошибку можно попробовать понять в чем проблема.
-
var i,res:integer;
p:array [0..300] of char ;
ss,tt:double;
//****************
tt:=0.01;
for i:=1 to 100 do
begin
ss:=tt*i;
ss:=RoundTo(ss,-3);
res:=WriteStoredDots(16,0,'sp.lu',ss,1);
LastErrToStr(p);
Memo1.Lines.Add(floattostr(ss)+' '+p);
sleep(500);
end;
//**************************************************
0,01 Неверно задано положение точки (при фиксированной точке)
0,02 Неверно задано положение точки (при фиксированной точке)
0,03 Неверно задано положение точки (при фиксированной точке)
0,04 Неверно задано положение точки (при фиксированной точке)
0,06 Неверно задано положение точки (при фиксированной точке)
0,08 Неверно задано положение точки (при фиксированной точке)
0,12 Неверно задано положение точки (при фиксированной точке)
0,16 Неверно задано положение точки (при фиксированной точке)
0,24 Неверно задано положение точки (при фиксированной точке)
0,29 Неверно задано положение точки (при фиксированной точке)
0,32 Неверно задано положение точки (при фиксированной точке)
0,48 Неверно задано положение точки (при фиксированной точке)
0,53 Неверно задано положение точки (при фиксированной точке)
0,58 Неверно задано положение точки (при фиксированной точке)
0,59 Неверно задано положение точки (при фиксированной точке)
0,61 Неверно задано положение точки (при фиксированной точке)
0,64 Неверно задано положение точки (при фиксированной точке)
0,96 Неверно задано положение точки (при фиксированной точке)
0,97 Неверно задано положение точки (при фиксированной точке)
Все остальные значения - Операция завершилась успешно
-
возьмите последнюю версию библиотеки и воспользуйтесь функцией ReadStoredDotEx(). предпоследний параметр -- позиция запятой. попробуйте передать туда 3.
-
Я так понимаю, что нужна WriteStoredDotEx()
Не подскажете декларацию функции, в хелпе с библиотекой она отсутствует. Какой тип должен быть у позиции запятой?
-
вроде так
WriteStoredDotEx(DWORD adr,DWORD adr_type,char *command, float value, int point, int index)
-
Данное описание не проходит
TWriteStoredDotEx=function(adr: DWORD ;
adr_type: DWORD ;command:PChar;value:single;point:integer;
index:integer): integer;stdcall;
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума