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

Тема: Частота получения данных по RS232 СИ30 СИ8 owen_io.dll

  1. #11

    По умолчанию

    Цитата Сообщение от alfdivn Посмотреть сообщение
    Обмен идет в одном потоке, пока не удается достичь скорости которая уже есть, так как при запросе прибор не отдает других данных:
    0.1 - 0.1 - 0.1 - 0.1 - 0.1 - 0.2 - 0.2 - 0.2 - 0.2 - 0.3 и т.д., хотя процесс идет непрерывно и с гораздо большей частотой...
    Если бы удалось победить это, может настройкой прибора или еще как-то, то потом можно и скорость опроса поднять, а сейчас скорость поднять будет тот же ряд, только число повторов вырастет .
    мне для понимания более детального проблемы.
    у Вас получаются данные
    0.1 - 0.1 - 0.1 - 0.1 - 0.1 - 0.2 - 0.2 - 0.2 - 0.2 - 0.3 и т.д
    а на приборе по факту
    0.1-0.2-0.3-0.3-0.4-0.5 ? (повтор специально добавил мол реальная физическая задержка)
    правильно понимаю?

  2. #12

    По умолчанию

    В общем разобрались в чем было дело, дело в том, что электронщики при сборке шкафа и настройке приборов, установили округление на СИ30 до 0.1, когда Артем написал опять ряд цифр и меня осенила мысль что перемещение в данных ед. гораздо медленнее проходит чем значение меняется на 0.1, увеличили точность до 0.01 и все встало на свои места.
    Если в СИ8 считываем число имп. и потом их разницу переводим с определенным коэф. в милиметры, там такой проблемы не оказалось.
    С тензодатчиком и модулем ввода еще веселее получилось, зачем то поставили два МВ110-224.1ТД в шкаф, один основной другой дублирующий, перепутали адреса и настраивали один, а тот что в работе был не трогали, в итоге исправили обновление данных и все тоже заработало, для СИ30 при скорости шины 38400 вышли на 60 Гц получения данных в программе и для МВ110-224.1ТД 45Гц.

    В общем тему можно закрывать спасибо участникам, за то что натолкнули на нужные мысли

  3. #13

    По умолчанию

    Как так получилось,что у Вас все получилось. Просто интересно. Какой у Вас датчик стоит для измерения усилия. Неужели
    тензодатчик? Если да ,то как его можна опрашивать с частотой 60 Гц. Просветите.

  4. #14

    По умолчанию

    Цитата Сообщение от alfdivn Посмотреть сообщение
    Мы используем АС3 конвертер.

    В качестве приемника выступает 1С
    owen_io.dll завернута через visual studio c# в dll, добавлены классы, чтобы 1С могла ее подключать
    для общения через owen_io.dll созданы 3 класса
    OPCStartConnect(num) // открывает порт
    OPCReadData(adress,typedata,namevar) // читает данные
    OPCEndConnect(void) // закрывает порт

    вот класс для чтения данных (нужное имя я передаю цифрой, а то у 1С и C# нестыковка в текстовых переменных)

    public string OPCReadData(int Address, int typeD, int NameD)
    {
    float value=0;
    int dcnt = 0;
    int dcnt1 = 0;
    int timestamp = 0;
    float dataM = 0;

    string ret;

    string[] nameS = new string[10];
    nameS[0] = "DCNT";
    nameS[1] = "Rd.pF";
    nameS[2] = "DSPD";
    nameS[3] = "Ctr";
    nameS[4] = "CEU";

    IntPtr name = Marshal.StringToCoTaskMemAnsi(nameS[NameD]);

    if(typeD == 0)
    {
    res1 = NativeMethods.ReadSI8BCD(Address, 0, name,ref dcnt);
    dataM = dcnt;
    }
    if(typeD == 1)
    {
    res1 = NativeMethods.ReadIEEE32(Address, 0, name, ref value, ref timestamp, -1);
    dataM = value;
    }
    if(typeD == 2)
    {
    res1 = NativeMethods.ReadSInt(Address, 0, name, ref dcnt, -1);
    dataM = dcnt;
    }
    if(typeD == 3)
    {
    res1 = NativeMethods.ReadUInt(Address, 0, name, ref dcnt1, -1);
    dataM = dcnt1;
    }
    if (res1 == 0)
    ret = Convert.ToString(dataM);
    else
    ret = Convert.ToString(res1);

    return ret;

    }

    Это кусок кода в 1С, как бы все просто, открыл, считал, закрыл....

    OPCconnect = Новый COMОбъект("COMobjOPC.COMOCR");
    аб = OPCconnect.OPCStartConnect(1); // открываем порт (номер COM порта)
    ..............
    ЦИКЛ (пока не остановится траверса)
    .............
    ЗначениеДатчика = OPCconnect.OPCReadData(АдресДатчика,ТипДанных,ИмяП еременной);
    .............
    КОНЕЦЦИКЛА
    OPCconnect.OPCEndConnect();
    Добрый день, можете выложить обвертку для dll?

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

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 31.03.2017, 19:51
  2. Ответов: 13
    Последнее сообщение: 21.02.2014, 09:28
  3. ПЛК100 + RS232 = Передача данных
    от DrKillJoy в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 10.03.2011, 20:51
  4. проблема получения данных с приборов
    от ольга в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 01.10.2009, 08:00
  5. проблема получения данных с приборов
    от ольга в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 01.10.2009, 07:51

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

Ваши права

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