Показано с 1 по 4 из 4

Тема: ТРМ 202 + Delphi

  1. #1

    По умолчанию ТРМ 202 + Delphi

    У кого есть готовый пример как при помощи owen_io_lib считать с трм 202 значения? Адаптер АС3 - полуавтоматический. Можно на мыло Parxs@mail.ru

  2. #2

    По умолчанию

    Я делал через OPC сервер. Качал для дельфы сервер, в CODESYS настраивал трм, только у меня 138, и в оболочке уже отображал температуру
    C наилучшими пожеланиями, Иванов Даниил

  3. #3
    Пользователь
    Регистрация
    11.10.2012
    Адрес
    Минск
    Сообщений
    1

    По умолчанию

    Цитата Сообщение от Parxs Посмотреть сообщение
    У кого есть готовый пример как при помощи owen_io_lib считать с трм 202 значения? Адаптер АС3 - полуавтоматический. Можно на мыло Parxs@mail.ru
    Тоже искал ответ на этот вопрос. Но не нашел. Пришлось разбираться самому.

    // ...

    const
    spd_300:Integer=-3;
    spd_600:Integer=-2;
    spd_1200:Integer=-1;
    spd_2400:Integer=0;
    spd_4800:Integer=1;
    spd_9600:Integer=2;
    spd_14400:Integer=3;
    spd_19200:Integer=4;
    spd_28800:Integer=5;
    spd_38800:Integer=6;
    spd_57600:Integer=7;
    spd_115200:Integer=8;


    prty_NONE:Integer=0;
    prty_EVEN:Integer=1;
    prty_ODD:Integer=2;

    databits_7:Integer=0;
    databits_8:Integer=1;

    stopbit_1:Integer=0;
    stopbit_1_5:Integer=1;
    stopbit_2:Integer=2;

    RS485CONV_MANUAL:Integer=0;
    RS485CONV_AUTO:Integer=1;
    RS485CONV_MANUAL_DTR:Integer=2;

    ADRTYPE_8BIT:Integer = 0;
    ADRTYPE_11BIT:Integer = 1;

    // ...

    function OpenPort(n,speed,part,bits,stop,vidWORD): Integer; Stdcall; External 'owen_io.dll';
    function ClosePort: Integer; Stdcall; External 'owen_io.dll';
    function OwenIO(adr,adr_type,is_readWORD;command,params:PChar;var param_sz:Integer): Integer; Stdcall; External 'owen_io.dll';
    function WriteFloat24(adr,adr_typeWORD;command:PChar;value:Single;index:Integer):Int eger;Stdcall; External 'owen_io.dll';
    function ReadFloat24(adr,adr_typeWORD;command:PChar;var value:Single;index:Integer):Integer;Stdcall; External 'owen_io.dll';

    // ...

    var TempPV, TmpSp1: Single;
    Address, Fres : Integer;
    params: array [0..3] of Char;

    // ...


    // Подключаюсь
    if OpenPort(ComPortNb-1, spd_115200, prty_NONE, databits_8, stopbit_1, RS485CONV_AUTO)<0 then
    begin
    // Ругаюсь что не подключился
    Exit;
    end;

    Address := 28; // У меня адрес устройства 28

    // Определяю показания термодатчика
    Fres := ReadFloat24(Adress, ADRTYPE_8BIT, 'Pv ', TempPV, -1);
    if Fres < 0 then
    // Ругаюсь что не получил значение TempPV

    // Определяю значение терморегулятора 1

    Fres := ReadFloat24(Address, ADRTYPE_8BIT, 'Sp ', TmpSp1, 0);
    if Fres < 0 then
    // Ругаюсь что не получил значение TmpSp1

    // Устанавливаю значение терморегулятора

    TmpSp1 := 30; // Задаю значение
    // Сначала необходимо получить разрешение на запись параметра Sp
    params[0] := #0;
    params[1] := #0;
    params[2] := chr(145); // код команды
    params[3] := chr(7); // Sp

    Fres := OwenIO(Address, ADRTYPE_8BIT, 1, 'attr', params, 4);
    if Fres < 0 then
    // Ругаюсь что не получилось получить разрешение на запись параметра Sp

    else
    begin
    Fres := WriteFloat24(Address, ADRTYPE_8BIT, 'Sp ', TmpSp1, 0);
    if Fres < 0 then
    // Ругаюсь что не получилось задать значение TmpSp1
    end;

    ClosePort;

    // ...

  4. #4

    По умолчанию

    Попробовал представленный пример, всё работает.

    Попытался по аналогии изменить положение десятичной точки, не получилось. Подскажите что делаю не так.

    dP1 := 2; // Задаю значение

    params[0] := #0;
    params[1] := #0;
    params[2] := chr(179);
    params[3] := chr(235);


    Fres := OwenIO(Address, ADRTYPE_8BIT, 1, 'attr', params,4);

    if Fres < 0 then
    begin
    //
    end
    else
    begin
    Fres := WriteByte(Address, ADRTYPE_8BIT, 'dP ', dP1, 0);
    if Fres < 0 then
    //
    end;

Похожие темы

  1. OPC Codesys Delphi
    от DanJer в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 27.04.2012, 14:13
  2. ieee754 в Delphi
    от Alex_Kos в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 05.03.2012, 11:53
  3. СИ8 и delphi
    от CybSys в разделе Помощь Разработчикам
    Ответов: 14
    Последнее сообщение: 14.10.2010, 21:09
  4. Delphi + МВА-8 (АС-3)
    от Гость_Павел в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 02.04.2008, 08:24
  5. OPC + Delphi
    от Gans в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 18.12.2006, 10:31

Ваши права

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