Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Проблема с ТРМ151 запись уставки

  1. #1

    По умолчанию Проблема с ТРМ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);

  2. #2

    По умолчанию

    Через какую программу меняете параметры?

  3. #3

    По умолчанию

    Через Delphi 7

  4. #4

    По умолчанию

    Да, кстати, через конфигуратор ТРМ151 все пишется замечательно, -104 это вроде неверный формат данных, но я хоть убей не понимаю почему 0,07 0,09 0,10 верные данные, а тоже 0,09 0,12 итд нет

  5. #5

    По умолчанию

    Если вы используете библиотеку owen_io, то -104 означает что прибор вернул ошибку nErr, после получения такого сообщения надо бы считать из прибора эту самую ошибку функцией LastErrToStr из набора библиотеки. Посмотрев ошибку можно попробовать понять в чем проблема.

  6. #6

    По умолчанию

    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 Неверно задано положение точки (при фиксированной точке)

    Все остальные значения - Операция завершилась успешно

  7. #7

    По умолчанию

    возьмите последнюю версию библиотеки и воспользуйтесь функцией ReadStoredDotEx(). предпоследний параметр -- позиция запятой. попробуйте передать туда 3.

  8. #8

    По умолчанию

    Я так понимаю, что нужна WriteStoredDotEx()
    Не подскажете декларацию функции, в хелпе с библиотекой она отсутствует. Какой тип должен быть у позиции запятой?

  9. #9

    По умолчанию

    вроде так
    WriteStoredDotEx(DWORD adr,DWORD adr_type,char *command, float value, int point, int index)

  10. #10

    По умолчанию

    Данное описание не проходит
    TWriteStoredDotEx=function(adr: DWORD ;
    adr_type: DWORD ;command:PChar;value:single;point:integer;
    index:integer): integer;stdcall;

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •