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

Тема: owen_io.dll + C#

  1. #1

    По умолчанию owen_io.dll + C#

    День добрый, уважаемые

    Столкнулся с проблеммой, не могу прочитать данные типа float по протоколу Овен с прибора MB110.

    Код:
                string nm = "Read";
                IntPtr name = Marshal.StringToCoTaskMemAnsi(nm);
                int i = 0;
    
                    float value = 0;
                    int time = 0;
    
                ConnectionError res = (ConnectionError)NativeMethods.ReadIEEE32(
                        deviceAddress + i, 0, name, ref value, ref time, -1);
    
                    if (res == ConnectionError.Ok)
                    {
                        textBoxMemo.Text = value.ToString();
                    }
                    else
                    {
                        MessageBox.Show("Ошибка чтения  " + nm + " : " + res.ToString());
                       
                    }
                Marshal.FreeCoTaskMem(name);
    ошибка - NErr, код 104

    обращение к dll
    Код:
            [DllImportAttribute("owen_io.dll", CharSet = CharSet.Unicode, EntryPoint = "ReadIEEE32", CallingConvention = CallingConvention.StdCall)]
            public static extern int ReadIEEE32(int adr, int adr_type, System.IntPtr command, ref float value, ref int time, int index);
    чтение через ReadUInt проходит успешно, работаю через АС4

  2. #2

    По умолчанию

    Ответ сам себе ( по доброй традиции форума )
    для чтения параметра "rEAd" прибора МВ110-8а добавка к адресу и "индекс" должны быть равны (номер канала -1 ) .
    для чтения канала 4 мы имеем:
    Код:
    ConnectionError res = (ConnectionError)NativeMethods.ReadIEEE32(
                        deviceAddress + 3, 0, name, ref value, ref time , 3);

  3. #3

    По умолчанию

    Может кому пригодится... работа с ТРМ212

    SP...:

    Код:
       public string trm_set_sp(int channel, int deviceAddress, float value) 
            {
                string st = "";
                string nm = "SP";
                IntPtr name = Marshal.StringToCoTaskMemAnsi(nm);
                int i = channel - 1;
    
                ConnectionError res = (ConnectionError)NativeMethods.WriteFloat24(
                        deviceAddress + i, 0, name, value, -1);
    
                if (res == ConnectionError.Ok)
                {
                    st = "ok";
                }
                else
                {
                    st = "Ошибка записи ТРМ: " + res.ToString();
                }
                Marshal.FreeCoTaskMem(name);
                return st;
            }

    PV...:

    Код:
      public string trm_get_pv(int channel, int deviceAddress, ref float value)
            {
                string st = "";
                string nm = "PV";
                IntPtr name = Marshal.StringToCoTaskMemAnsi(nm);
                int i = channel - 1;
    
                ConnectionError res = (ConnectionError)NativeMethods.ReadFloat24(
                deviceAddress + i, 0, name, ref value, -1);
    
                if (res == ConnectionError.Ok)
                {
                    st = "ok";
                }
                else
                {
                    st = "Ошибка чтения ТРМ: " + res.ToString();
                }
                Marshal.FreeCoTaskMem(name);
                return st;
            }

    r-S...:

    Код:
       public string trm_set_vkl(int channel, int deviceAddress, int value)
            {
                string st = "";
                string nm = "r-S";
                IntPtr name = Marshal.StringToCoTaskMemAnsi(nm);
                int i = channel - 1;
    
                ConnectionError res = (ConnectionError)NativeMethods.WriteByte(
                        deviceAddress + i, 0, name, value, -1);
    
                if (res == ConnectionError.Ok)
                {
                    st = "ok";
                }
                else
                {
                    st = "Ошибка записи ТРМ: " + res.ToString();
                }
                Marshal.FreeCoTaskMem(name);
                return st;
            }

Похожие темы

  1. owen_io.dll + VB6
    от mastech в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 16.08.2011, 12:27
  2. ТРМ148 и owen_io.dll
    от mlab в разделе Сервисное ПО
    Ответов: 2
    Последнее сообщение: 08.07.2009, 12:16
  3. использование owen_io.dll
    от Alor в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 29.04.2008, 15:34
  4. owen_io.dll
    от Arkady в разделе Помощь Разработчикам
    Ответов: 8
    Последнее сообщение: 27.07.2007, 07:36
  5. owen_io.dll
    от Vladimir в разделе Помощь Разработчикам
    Ответов: 4
    Последнее сообщение: 27.04.2007, 15:13

Ваши права

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