Страница 11 из 24 ПерваяПервая ... 91011121321 ... ПоследняяПоследняя
Показано с 101 по 110 из 239

Тема: примеры для программирования

  1. #101

    По умолчанию

    Люди добрые, если у кого-то есть пример работы с модулями МДВВ, и МВА8 с использованием протокола ОВЕН и библиотеки owen_io.dll написанный на delphi, поделитесь, пожалуйста. Мой e-mail: mr.rail@mail.ru

  2. #102

    По умолчанию

    И со мной поделитесь примерами работы с модулями МДВВ, и МВА8 с использованием протокола ОВЕН и библиотеки owen_io.dll написанный на delphi, пожалуйста.
    epe@udm.ru

  3. #103

    По умолчанию

    Имеется несколько модулей ввода/вывода МК110, МУ110, МВ110. Модули объеденены в сеть RS-485 и сконфигурированы, нормально опрашиваются конфигуратором М110, через преобразователь АС4.

    Обязательно ли использование библиотеки owen_io.dll для работы с модулями через AC4???
    Ранее я писал программу на VB .NET для работы с контроллерами ADAM по протоколу DCON. Посмотрел руководства на модули, поменял соответственно передаваемые команды. Но с ОВЕН прога не работает, пробовал DCON, MODBUS, ОВЕН протоколы, смотрел снифером передаваемые команды конфигуратора М110 при опросе входов. От модулей ответа нет.

    Вообще после установки драйвера AC4, я могу работать с появившимся COM3, как с обычным COM RS-232 или нет?

    Код:
    1109	0.00000502	Mx110.exe	IOCTL_SERIAL_GET_HANDFLOW	Silabser2	SUCCESS		
    1110	0.00375355	Mx110.exe	IOCTL_SERIAL_SET_BAUD_RATE	Silabser2	SUCCESS	Rate: 9600	
    1111	0.00001017	Mx110.exe	IOCTL_SERIAL_SET_RTS	Silabser2	INVALID PARAMETER		
    1112	0.00294542	Mx110.exe	IOCTL_SERIAL_CLR_DTR	Silabser2	SUCCESS		
    1113	0.00108344	Mx110.exe	IOCTL_SERIAL_SET_LINE_CONTROL	Silabser2	SUCCESS	StopBits: 1 Parity: NONE WordLength: 8	
    1114	0.00386592	Mx110.exe	IOCTL_SERIAL_SET_CHAR	Silabser2	SUCCESS	EOF:1a ERR:0 BRK:0 EVT:d XON:11 XOFF:13	
    1115	0.00398516	Mx110.exe	IOCTL_SERIAL_SET_HANDFLOW	Silabser2	SUCCESS	Shake:0 Replace:80000040 XonLimit:128 XoffLimit:128	
    1116	0.00297524	Mx110.exe	IOCTL_SERIAL_CLR_RTS	Silabser2	SUCCESS		
    1117	0.00001109	Mx110.exe	IOCTL_SERIAL_SET_TIMEOUTS	Silabser2	SUCCESS	RI:2 RM:4 RC:100 WM:10 WC:500	
    1118	0.00294100	Mx110.exe	IOCTL_SERIAL_PURGE	Silabser2	SUCCESS	Purge: TXCLEAR RXCLEAR	
    1119	0.00195705	Mx110.exe	IOCTL_SERIAL_PURGE	Silabser2	SUCCESS	Purge: TXABORT TXCLEAR RXCLEAR	
    1120	0.00001246	Mx110.exe	IOCTL_SERIAL_SET_WAIT_MASK	Silabser2	SUCCESS	Mask: RXFLAG BRK ERR 	
    1121	0.00091432	Mx110.exe	IRP_MJ_WRITE	Silabser2	SUCCESS	Length 14: #HPHGTMOHVIJH.	
    1122	0.04798078	Mx110.exe	IOCTL_SERIAL_WAIT_ON_MASK	Silabser2	SUCCESS		
    1123	0.00001404	Mx110.exe	IOCTL_SERIAL_GET_COMMSTATUS	Silabser2	SUCCESS		
    1124	0.00000144	Mx110.exe	IRP_MJ_READ	Silabser2	SUCCESS	Length 30: #HPGOTMOHJKJOITJGJHJHKRKTNOVO.
    помогите пожалуйста решить проблему
    Последний раз редактировалось O_o; 11.09.2012 в 08:32.

  4. #104
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    Нащет ас4 после установки дров появившийся виртуальный com порт для програмиста ничем не отличаетса от реального а нащет работы с модульми на форуме вроде видел пример на си

  5. #105
    Пользователь
    Регистрация
    08.01.2011
    Адрес
    Брянск
    Сообщений
    196

    По умолчанию

    Имеется прибор ТРМ251 с прошивкой версии V1.10 (базовый адрес 16)
    для чтения с первого входа синтаксис команды снизу правильный?
    ReadFloat24(16,0,'rEAD',val,-1);

  6. #106

    По умолчанию Re

    Цитата Сообщение от Doomnik Посмотреть сообщение
    Имеется прибор ТРМ251 с прошивкой версии V1.10 (базовый адрес 16)
    для чтения с первого входа синтаксис команды снизу правильный?
    ReadFloat24(16,0,'rEAD',val,-1);
    Синтаксис правильный если режим адресации на приборе 8 бит (не 11)
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  7. #107

    По умолчанию

    Господа, очень нужна помощь. Никогда не приходилось работать с оборудованием компании ОВЕН (впрочем, как и с аналогичными приборами других компаний). Передо мной пославлена задача: необходимо передачу данных с прибора ТРМ202 в Excel. Нет ли у кого-нибудь похожего примера?
    P.S. Я так понимаю, что надо настроить OPC-сервер, который выложен на сайте, выставить в нем и в ТРМ202 одинаковые параметры, а затем сохраненную конфигурацию как-то прикрутить к Excel (но как это реализовать я не знаю) Верно ли я думаю?
    Заранее благодарен за любую помощь и советы.

  8. #108
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Excel понимает файлы с расширением .csv, в котором поля разделяются точкой с запятой ";". Вам необходимо найти программу для ПК, которая по модбас будет брать данные из трм и складывать в такого типа файл.

  9. #109
    Пользователь
    Регистрация
    08.01.2011
    Адрес
    Брянск
    Сообщений
    196

    По умолчанию

    прибор: трм251 (прошивка V1.10).
    базовый адрес:16
    скорость: 9600
    биты данных: 8
    стоп бит: 1
    длинна адреса: 8
    четность: нет
    com-порт: №1

    через АС3-М

    пытаюсь в прибор послать команду "rEAd" и собственно получить результат.
    Пишу в delphi 2010

    у приборов ТРМ2хх с прошивкой 1.10 я так понял команда rEAd не требует индексации, надо послать -1..

    первый вход имеет индекс "0", второй - индекс "1". Чтобы считать данные с первого входа, надо послать команду по адресу "адрес - 0".. Значит шлем по адресу 16.

    имеем: ReadIEEE32(16,0,'rEAd',val,tm,-1);

    Снизу привел свой код полностью... результат замера должен придти в компонент Edit1.

    Получаю ошибку -104. И не понимаю что не так..

    Код:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    const
    // Определения четности (Без)
            prty_NONE:integer=0;
    // Определения количества Бит данных
            databits_8:integer=1;
    // Определения количества стоп Бит
            stopbit_1:integer=0;
    // Вид конвертора RS485 (Автоматический конвертор)
            RS485CONV_AUTO:integer=1;
    
    
    type
    TProcOpenPort=function (n,speed,part,bits,stop,vid:DWORD):integer;stdcall;
    TProcSetupPort=function (n,speed,part,bits,stop,vid:DWORD):integer;stdcall;
    TProcClosePort=function :integer;stdcall;
    TProcSetApiMode=function (n:DWORD):integer;stdcall;
    TProcReadIEEE32=function (adr,adr_type:DWORD;command:pchar;var value:single;var time:integer;index:integer):integer;stdcall;
        TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Label1: TLabel;
        Label2: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
    Form1: TForm1;
    hLibInst:cardinal;
    func_avail:boolean;
    OpenPort:TProcOpenPort;
    SetupPort:TProcSetupPort;
    ClosePort:TProcClosePort;
    ReadIEEE32:TProcReadIEEE32;
    SetApiMode:TProcSetApiMode;
    
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     hLibInst:=LoadLibrary('owen_io.dll');
     if(hLibInst<>0)
       then
        begin
         func_avail:=true;
         OpenPort:=GetProcAddress(hLibInst,'OpenPort');
         if(not Assigned(OpenPort)) then
           begin
            func_avail:=false;
            exit;
           end;
         ClosePort:=GetProcAddress(hLibInst,'ClosePort');
         if(not Assigned(ClosePort)) then
           begin
            func_avail:=false;
            exit;
           end;
         SetupPort:=GetProcAddress(hLibInst,'SetupPort');
         if(not Assigned(SetupPort)) then
           begin
            func_avail:=false;
            exit;
           end;
         ReadIEEE32:=GetProcAddress(hLibInst,'ReadIEEE32');
         if(not Assigned(ReadIEEE32)) then
           begin
            func_avail:=false;
            exit;
           end;
         SetApiMode:=GetProcAddress(hLibInst,'SetApiMode');
         if(not Assigned(SetApiMode)) then
           begin
            func_avail:=false;
            exit;
           end;
          end
     else
      func_avail:=false;
    end;
    
    // ОТКРЫВАЕМ COM-ПОРТ #1
    procedure TForm1.Button1Click(Sender: TObject);
    var
     op_succ:integer;
    begin
     if func_avail then
       begin
         SetApiMode(1);
         op_succ:=OpenPort(0,2,0,databits_8,stopbit_1,RS485CONV_AUTO);
         if (op_succ<>0) then
           Application.MessageBox('Не удалось открыть порт', 'Ошибка!', MB_OK)
         else
           begin
            SetupPort(0,2,0,databits_8,stopbit_1,RS485CONV_AUTO);
           end;
        end
     else
          Application.MessageBox('Не удалось открыть порт (функция!)', 'Ошибка!', MB_OK);
    end;
    
    // ЗАКРЫВАЕМ COM-ПОРТ #1
    procedure TForm1.Button2Click(Sender: TObject);
    var
     cp_succ:integer;
    begin
     if func_avail then
       begin
       cp_succ:=ClosePort();
        if (cp_succ<>0) then
          Application.MessageBox('Не удалось закрыть порт', 'Ошибка!', MB_OK);
       end
     else
          Application.MessageBox('Не удалось закрыть порт (функция!)', 'Ошибка!', MB_OK);
    end;
    
    // ПО ИДЕЕ ЧИАТЕМ С ПЕРВОГО ВХОДА ТРМ251
    procedure TForm1.Button3Click(Sender: TObject);
    var
     iee:integer;
     val:single;
     tm:integer;
    begin
      iee:=ReadIEEE32(16,0,'rEAd',val,tm,-1);
      Edit1.Text:=FloatToStr(val);
      Edit2.Text:=IntToStr(iee);
      end;
    
    
    end.
    воспользоваться функцией LastErrToStr не могу.. Приходит какими-то квадратиками и иероглифами - не читаемо.

    если кто-то поможет новичку - буду рад.
    Последний раз редактировалось Doomnik; 11.08.2011 в 19:56.

  10. #110
    Пользователь
    Регистрация
    08.01.2011
    Адрес
    Брянск
    Сообщений
    196

    По умолчанию

    Дамы и господа!!!

    ОТВЕЧУ СЕБЕ САМ!!!

    код, написанный мною для ТРМ 251 выше, работает!!!
    При компиляции в Делфи 6, всё заработало!!! И даже LastErrToStr теперь не иероглифами, а русскими буквами!!!!!

    я компилировал в Делфи 2010, ОС Виндовс севен 64 бита.

    думайте дальше сами...

    я слышал что в Делфи 2010 уникод... Из-за этого?
    Последний раз редактировалось Doomnik; 11.08.2011 в 21:08.

Страница 11 из 24 ПерваяПервая ... 91011121321 ... ПоследняяПоследняя

Ваши права

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