Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 18 из 18

Тема: ТРМ101 и Owen_io.dll

  1. #11

    По умолчанию

    Допустимые значения в рамках. Пробовал индексы (0 и 1) - без толку. Пробовал использовать GetExtendedLasErr-возвращает 0. Ее можно самостоятельно использовать или только после LastErrToStr?

  2. #12

    По умолчанию

    можно. только использовать надо было GetDeviceLastErr().

  3. #13

    По умолчанию

    Накидал простейший проект для ПЛК150 - он мастер, пишет в зависимости от дискретного входа 1 либо SH=1, KU=1,005, либо SH=0, KU=1. Ну, там FloatPIC и все остальное соответственно моему ТРМ101. Все работает прекрасно, а от компа-ни в какую. Сейчас подсуну ПЛК под видом ТРМки

  4. #14

    По умолчанию

    Цитата Сообщение от Дмитрий Егоренков Посмотреть сообщение
    можно. только использовать надо было GetDeviceLastErr().
    Хм... У меня в описании библиотеки такой функции нет.

    А вот что показали эксперименты с подменой ТРМки ПЛК150-ым: Функция WriteFloat24 пишет какое-то особо малое значение (1,735409... в -39 степени), причем и при вызове для параметра SH, и при вызове для параметра KU. SH это воспринимает как 0 и для него это нормальное значение, а KU ругается из-за того, что 0 для него значение не допустимое. Вот только почему такое значение передается? В пошаговой отладке я вижу, что в WriteFloat24 передаются правильные параметры. Такая вот эпидерсия...

  5. #15

    По умолчанию

    у вас в дельфи как функция WriteFloat24 описана?

  6. #16

    По умолчанию

    TProcWriteFloat24=function (adr,adr_type: DWORD;command: pchar;var value: single;index: integer):integer;stdcall;
    WriteFloat24:TProcWriteFloat24;
    Так в хелпе на библиотеку она описывается. Подключил LastErrToStr(), она дала вот что "Значение мантиссы превышает ограничение дескриптора" (не ручаюсь что дословно так)
    Последний раз редактировалось Hemann; 12.01.2010 в 22:30.

  7. #17

    По умолчанию

    должно быть так:

    TProcWriteFloat24=function (adr,adr_type: DWORD;command: pchar;value: single;index: integer):integer;stdcall;

    у вас не значение передается, а указатель на переменную.

  8. #18

    По умолчанию

    дима, спасибо большое! все пошло. одна голова хорошо, а две лучше

Страница 2 из 2 ПерваяПервая 12

Метки этой темы

Ваши права

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