Голосование

Считаете ли вы необходимым использование международных форматов WITS/WITSML на станциях ГТИ?

Безусловно!
10 (76.9%)
Да, но форматы устарели.
0 (0%)
Эти форматы должны поддерживаться российскими программистами, но особой надобности в них нет.
2 (15.4%)
Нет необходимоти поддержки этих форматов. Мы их просто не используем.
1 (7.7%)
Я патриот, и нам не надо ничего буржуйского!
0 (0%)

Проголосовало пользователей: 13

Голосование закончилось: 04 Февраль 2008, 15:32:52

Автор Тема: WITS/WITSML  (Прочитано 59044 раз)

Оффлайн boikovsoft

  • Старожил
  • ****
  • Сообщений: 288
  • Карма: +7/-0
  • Инженер-программист
    • http://oilsoft-service.com
WITS/WITSML
« : 04 Февраль 2008, 15:32:52 »
Здравствуйте уважаемые форумчане!

Предлагаю здесь обсудить международные форматы, для обмена данными между станциями.

Кто, что знает про этот формат пишите. Постораюсь сделать всякого рода программульки конвертирования.

Вам не обязательно быть программистом, чтобы обсуждать эти форматы вы може просто высказать свое мнение.

Вот ссылки на буржуйском языке:
http://www.witsml.org/
http://oilsoft-service.com

Оффлайн boikovsoft

  • Старожил
  • ****
  • Сообщений: 288
  • Карма: +7/-0
  • Инженер-программист
    • http://oilsoft-service.com
WITS/WITSML
« Ответ #1 : 04 Февраль 2008, 20:38:31 »
Beda Спасибо за Файлы.

Первое что хочется спросить:
Почему расширения разные: Один файл Dat, другой Kys?
Что, раcширешение может быть разным?
http://oilsoft-service.com

Оффлайн Beda

  • Глобальный модератор
  • *****
  • Сообщений: 203
  • Карма: +16/-5
    WITS/WITSML
    « Ответ #2 : 04 Февраль 2008, 21:01:05 »
    Цитата: "boikovsoft"
    Beda Спасибо за Файлы.

    Первое что хочется спросить:
    Почему расширения разные: Один файл Dat, другой Kys?
    Что, разрешение может быть разным?

    Файл WITS2.dat - информация поглубинка.
    Файл WITS2.kys - ключ файла поглубинки.
    Всё будет так как надо, даже если будет иначе...

    Оффлайн boikovsoft

    • Старожил
    • ****
    • Сообщений: 288
    • Карма: +7/-0
    • Инженер-программист
      • http://oilsoft-service.com
    WITS/WITSML
    « Ответ #3 : 04 Февраль 2008, 21:06:23 »
    По файлам сразу видно, что это 2 потоковых файла. Для программистов TStream или TMemoryStream.
    Считать его несоставляет ни какого труда.
    Теперь нужно определиться, какую структуру надо на него накладывать.

    Цитата: "Beda"

    Файл WITS2.dat - информация поглубинка.
    Файл WITS2.kys - ключ файла поглубинки.


    Не совсем понятно.

    Что находиться в WITS2.dat файле?
    Что находиться в WITS2.kys файле?
    Они работают всегда в паре (т.е. структура разделена на 2 файла)?
    http://oilsoft-service.com

    Оффлайн Beda

    • Глобальный модератор
    • *****
    • Сообщений: 203
    • Карма: +16/-5
      WITS/WITSML
      « Ответ #4 : 05 Февраль 2008, 19:25:40 »
      Первая позиция каждой записи в теле файла - название скважины.
      Название скважины может состоять из 16 алфавитно-цифровых символов и обычно является именем, указанным оператором. К названию скважины может быть добавлен четырехзначный номер для разделения данных, полученных из различных источников.
      Всё будет так как надо, даже если будет иначе...

      Оффлайн boikovsoft

      • Старожил
      • ****
      • Сообщений: 288
      • Карма: +7/-0
      • Инженер-программист
        • http://oilsoft-service.com
      WITS/WITSML
      « Ответ #5 : 05 Февраль 2008, 22:38:56 »
      Цитата: "Beda"
      Первая позиция каждой записи в теле файла - название скважины.
      Название скважины может состоять из 16 алфавитно-цифровых символов и обычно является именем, указанным оператором. К названию скважины может быть добавлен четырехзначный номер для разделения данных, полученных из различных источников.


      По содержимому я понял, что эти файлы относятся к уровню 16.
      Накладываю структуру на заголовок файла:
      TMyStruct=record
         WELLID:array [1..16] of char; // 16 байт
         STKNUM:Smallint; // 2 байта знаковый целый
         RECID:Smallint;
         SEQID:Longint; // 4 байта знаковый целый
         DATE:Longint;
         TIME:Longint;
         ACTCOD:Smallint;
        end;
      Считывать поток начинаю с 0 байта поллучается абра кадабра. Не совпадает вообще ни чего.
      Вообще не пойму, там что-то не заполнено, либо я неправильно открываю.

      Если даже просто в тотал командере открыть как HEX. Можно увидеть что там много незаполненного по байтам практически нули аш до 1024 байта и только потом данные какието начинаются.

      Если верить тотал командеру, то получается:
      4 - байта непонятно.
      далее 16 - байт тоже непонятно.
      32 - текст "Raima Data Manager Version 3.21A"
      А потом до 1024 байта одни нули шпарят.

       :?:   :?  :( Требуется помощь. Хоть через приват хоть как. Помогите плиз. Сообщите что там находиться.

      Потратил сегодня пол дня на это.
      Опыт работы с потоками у меня большой. И если не знать структуры или не иметь обратной связи (т.е. Програмку для изменения данных в этом потоке), то считать данные практически невозможно! Нужно хотябы для начала знать, по максимуму все, что там находиться.

      Обращаюсь ко всем заинтересованным лицам:
      Кто знает хоть что нибудь по WITS помогите :cry:
      http://oilsoft-service.com

      Оффлайн Beda

      • Глобальный модератор
      • *****
      • Сообщений: 203
      • Карма: +16/-5
        WITS/WITSML
        « Ответ #6 : 06 Февраль 2008, 01:06:31 »
        Файлы взяты из базы данных, созданной объектно-ориентированным интерфейсом Raima Object Manager на платформе Юникс.
        За названием скважины в каждой записи следует номер бокового ствола. Этот номер изменяется от нуля (0 - вертикальный ствол) и увеличивается на единицу при переходе к очередному боковому стволу при сохранении названия скважины. Этот номер должен присутствовать обязательно, поскольку комбинации названия скважины и номеров бокового ствола используются для идентификации главного ствола и всех боковых стволов.
        Это поле не оставляется незаполненным (-9999.0 или <>).
        Это поле также не служит указателем интервалов одной скважины различного диаметра. Это число указывает порядковый номер бокового ствола.
        В исследуемом файле записан 0, скважина вертикальная.

        Попробуйте начать считывание файла с позиции 1024.
        Успеха!
        Всё будет так как надо, даже если будет иначе...

        Оффлайн boikovsoft

        • Старожил
        • ****
        • Сообщений: 288
        • Карма: +7/-0
        • Инженер-программист
          • http://oilsoft-service.com
        WITS/WITSML
        « Ответ #7 : 06 Февраль 2008, 06:01:02 »
        Beda
        Мне грусно об этом говорить, но я скланяюсь к мнению, что это не WITS. Это какойто другой формат.
        Практически целый день я проковырялся с этим файлом.

        Начнем рассуждать логически:
        Если это WITS, то тогда Ну как не крути заголовок должен поподать под структуру описанную в первых семи пунктах любого уровня. ВОт это уже отвергает то, что это WITS.
        Далее. Прочесывая данные, и анализируя переодичность повторения байтов я пришел к выводу што с такой последовательностью размеров типов в описании нет.

        Вы наверно ошиблись.

        Хоть конечно опыт работы с потоками у меня и большой. Но всеже я невсезнайка и могу чего-то недопонимать.
        Я уже завтра могу сделать маленькую программульку которая бы делала  хотябы часть WITS, согласно описанию структуры WITS. И вы сразу увидете на сколько кардинально будет видна разница между этими файлами даже если их открыть в блокноте.

        Поэтому я сразу спросил почему расширешение у файлов Dat и Kys.
        Я бы дал расширешение *.WITS.

        Вы меня заразили этим WITS, и я рад бы его реализовать, но немогу так вслепую подбирать структуру.
        Из практики могу сказать следующее:
        Ковырял я как-то одну БД с неизвестной структурой. Примерно тоже самое. Так вот, полное выявление структуры растянулось аш на 2,5 года. И это при том, что мне хоть было известно, что там находиться. А тут полная неизвестность. Много неясного.

        Надо подключать еще людей на подмогу. Хотябы пусть свои WITS пришлют с описанием:
        -К какому уровню относится информация.
        -Какая скважина
        ...По максимуму.
        Чтобы было за что зацепиться.

        В этих файлах я ненашел информации о скважинах. Может текст записан там особым способом в UNIX используя свою таблицу кодировок. Короче непонятно.

        Может сюда REA пригласить он наверняка с Unix работал. Может он чем поможет. Я думаю ему тоже будет это интересно и полезно.

        ЛЮДИ НЕ МОЛЧИТЕ ПИШИТЕ СВОЕ МНЕНИЕ!!!
        АКТИВНЕЕ ИНАЧЕ ТЕМА УМРЕТ.  :cry:
        http://oilsoft-service.com

        Оффлайн boikovsoft

        • Старожил
        • ****
        • Сообщений: 288
        • Карма: +7/-0
        • Инженер-программист
          • http://oilsoft-service.com
        WITS/WITSML
        « Ответ #8 : 06 Февраль 2008, 15:46:48 »
        Покопался в интернете и склоняюсь к мнению, что это файл СУБД (Система Управления Базой Данных) Raima Database Manager описание этой СУБД тут:
        http://www.interface.ru/birdstep/rdm.htm
        http://www.interface.ru/centura1/rom.htm
        Проанализировал Paradox`овскую БД (база данных), структуры даже чемто похожи. Под заголовок отводиться тоже 1024 байта.
        http://oilsoft-service.com

        Оффлайн boikovsoft

        • Старожил
        • ****
        • Сообщений: 288
        • Карма: +7/-0
        • Инженер-программист
          • http://oilsoft-service.com
        WITS/WITSML
        « Ответ #9 : 06 Февраль 2008, 19:50:10 »
        Код вида работ

        Оригинал находиться здесь:
        http://www.witsml.org/Docs/WITSActivityCodes.htm

        Этот номер указывает на вид операций на буровой в момент регистрации/записи параметров.
        Спецификация WITS предусматривает следующие коды операций на буровой скважине:

        0. Неопределенный вид
        1. Монтаж/демонтаж оборудования
        2. Бурение
        3. Наращивание бурильной колонны
        4. Расширение ствола скважины
        5. Бурение по пилотному стволу
        6. Отбор керна
        7. Приготовление/обработка бурового раствора
        8. Спуск компоновки труб в скважину
        9. Подъем компоновки труб из скважины
        10. Профилактическое обслуживание оборудование
        11. Ремонт бурового оборудования
        12. Перетяжка талевой системы
        13. Инклинометрия
        14. Каротаж на кабеле
        15. Спуск обсадной колонны
        16. Цементирование обсадной колонны
        17. Тампонажные работы
        18. Цементирование под давлением
        19. Ожидание затвердения цемента
        20. Разбурка цементного камня
        21. Монтаж/демонтаж ПВО
        22. Функциональные поверки ПВО
        23. Опробование пласта испытателем на трубах
        24. Ловильные работы
        25. Операции по ориентированию скважин
        26. Глушение скважины
        27. Прихват труб
        28. Ожидание метеоусловий
        29. Подводные работы
        30. Проверка скважины на перелив
        31. Опрессовка колонны, определение прочности пород под башмаком.
        32. Поглощение
        33. Короткий спуск компоновки
        34. Короткий подъем компоновки

        Если вы считаете, что что-то не так, выкладывайте свой вариант.

        Beda спасибо за помощь!
        http://oilsoft-service.com

        Оффлайн boikovsoft

        • Старожил
        • ****
        • Сообщений: 288
        • Карма: +7/-0
        • Инженер-программист
          • http://oilsoft-service.com
        WITS/WITSML
        « Ответ #10 : 06 Февраль 2008, 22:29:24 »
        Вот перевод и сразу описание структуры на Delphi
          {Заголовок}
          TWITSHead=record
           WELLID:array [1..16] of char;  //  Буквенно цифровая последовательно иденцифицирующая отправителя, или содержит название скважины
           STKNUM:Smallint;               //  Номер скважины
           RECID:Smallint;                //  150 + номер структуры [1..25], [26..49] - зарезервировано, [50..80] можно заказать на разработку свои.
           SEQID:Longint;                 //  Идентификатор последовательности записей. Первый сгенерированный отчет равен 0, все последующие увеличиваются на 1.
           DATE:Longint;                  //  Дата записи. Формат записи ГГММДД. Например, 04.04.1991 записывается как 910404
           TIME:Longint;                  //  Время записи. Формат записи ЧЧММСС. Например, 22:50:15 записывается как 225015
           ACTCOD:Smallint;               //    Код текущей операции на буровой [0..34].
          end;


          {---Данные уровня 151---}
          {Данные, приобретенные в в реальном масштабе времени и вычисленный по интервалу
          спускового механизма; переданный отчет(рекорд) и сброс вычисления при вызове
          интервала происходит}
          TWITS_151=record
           DEPTBITM : Single;  // положение долота (измереннаяглубина).
           DEPTBITV : Single;  // Глубина нахождения долота по вертикали
           DEPTMEAS : Single;  // Глубина скважины (измеренное значение)
           DEPTVERT : Single;  // глубина скважины по вертикали
           BLKPOS   : Single;  // Положение тальблока над сталом ротора
           ROPA     : Single;  // скорость проходки (среднее значение за интервал регистрации)
           HKLA     : Single;  // Средняя за выбранный интервал нагрузка на крюке
           HKLX     : Single;  // Максимальная за выбранный интервал нагрузка на крюке
           WOBA     : Single;  // Средняя за выбранный интервал нагрузка на долото за интервал
           WOBX     : Single;  // Максимальная за выбранный интервал нагрузка на долото за интервал
           TORQA    : Single;  // Средний за выбранный интервал момент на роторе
           TORQX    : Single;  // Максимальный за выбранный интервал момент на роторе
           RPMA     : SmallInt;// Средняя за выбранный интервал скорость вращения ротора
           SPPA     : Single;  // Среднее за выбранный интервал давление на манифольде
           CHKP     : Single;  // Среднее за выбранный интервал давление в затрубье
           SPM1     : SmallInt;// Среднее за выбранный интервал ходы 1 насоса
           SPM2     : SmallInt;// Среднее за выбранный интервал ходы 2 насоса
           SPM3     : SmallInt;// Среднее за выбранный интервал ходы 3 насоса
           TVOLACT  : Single;  // Средний за выбранный интервал суммарный объем раствора во всех активных емкостях.
           TVOLCACT : Single;  // Средний за выбранный интервал суммарный объем раствора во всех активных емкостях указанных в структуре 11 пунк 14
           MFOP     : SmallInt;// Средний за выбранный интервал расход раствора на выходе из скважины [1..100] в процентах. Измеряется лопаткой.
           MFOA     : Single;  // Средний за выбранный интервал расход на выходе из скважины в литр/метр
           MFIA     : Single;  // Средний за выбранный интервал расход на входе в скважину в Литр/метр
           MDOA     : Single;  // Средний за выбранный интервал удельный вес раствора на выходе
           MDIA     : Single;  // Средний за выбранный интервал удельный вес раствора на входе
           MTOA     : Single;  // Средняя за выбранный интервал температура раствора на выходе
           MTIA     : Single;  // Средняя за выбранный интервал температура раствора на входе
           MCOA     : Single;  // Проводимость раствора на выходе (среднее значение за интервал регистрации)
           MCIA     : Single;  // Среднее за выбранный интервал сопративление раствора на входе
           STKC     : Longint; // Совокупное количество ходов насосов отсчитанное либо от начало бурения или по желанию оператора
           LAGSTKS  : SmallInt;// Отставание раствора в ходах насосов.
           DEPTRETM : Single;  // Глубина выходящего раствора.
           GASA     : Single;  // Среднее за выбранный интервал суммарное содержание горючих газов
           SPARE1   : Single;  // Резервное поле записи (параметр определяется оператором)
           SPARE2   : Single;  // Резервное поле записи (параметр определяется оператором)
           SPARE3   : Single;  // Резервное поле записи (параметр определяется оператором)
           SPARE4   : Single;  // Резервное поле записи (параметр определяется оператором)
           SPARE5   : Single;  // Резервное поле записи (параметр определяется оператором)
          end;

        Если че не ругайте. Выкладывайте свои варианты.

        Опять спасибо Bede за помощь в переводе.
        http://oilsoft-service.com

        Оффлайн 7777777

        • Начинающий
        • *
        • Сообщений: 3
        • Карма: +0/-2
          WITS/WITSML
          « Ответ #11 : 06 Февраль 2008, 23:56:44 »
          Цитата: "boikovsoft"
          По файлам сразу видно, что это 2 потоковых файла. Для программистов TStream или TMemoryStream.


          А что, сейчас еще есть программисты которые пишут на Дельфи?

          Оффлайн boikovsoft

          • Старожил
          • ****
          • Сообщений: 288
          • Карма: +7/-0
          • Инженер-программист
            • http://oilsoft-service.com
          WITS/WITSML
          « Ответ #12 : 07 Февраль 2008, 14:45:06 »
          Цитата: "7777777"
          А что, сейчас еще есть программисты которые пишут на Дельфи?


          Очень много. Вы даже представить себе не можете сколько их много.

          Это извечный вопрос среди программистов, что лучше?

          Насколько я помню Geoscope был написан на Delphi.

          Не вижу ни чего в этом плохого.

          1. Если результат выполнен. То вчем проблема?
          2. Вы в курсе, что разница между С++ и Delphi компании Borland небольшая. Классы все теже самые. Различия в синтексе. Даже компаненты можно ставить одни и теже хоть на си хоть на дельфи. Причем сами компоненты могут быть написаны на любом из этих языков.

          Программист в праве выбирать язык программирования.
          И если речь идет о быстрой разработке прилажения, то несоммненно мой выбор падает на Delphi. Я могу программировать и на С++. А надоли все усложнять?
          Мои програмки по размеру не уступают сишным.
          Да не спорю, C++ дает больше возможностей, чем Object pascal в Delphi.
          Я незнаю не одной задачи, которую нельзя было решить на Delphi, а на C++ можно. Небольшой проигрыш в скорости есть. Но если знать особенности языка, можно написать прилажение по скорости не уступающее С++. Да и с нынешними мощностями компьютеров. Этот выигрыш абсолютно незаметен.

          Когда я учился в институте, у нас был преподователь по компьютерной графике, который программировал на Паскале. Так вот он написал программу для ЦУП по управлению спутником, писал он это на Turbo pascal 7.0 под DOS. И там были не только сложнейшие расчеты. Там отображался сам спутник в 3-х мерном виде причем, ни каких тормазов на машине 486 я незаметил. Изображение было на столько реалистичным, что просто поражало воображение.

          Тут на форуме, говорилось о системах прогнозирования. А это уже попахивает алгоритмами искуственного интеллекта. Так вот алгоритмы и логику лучше вссего реализоввывать на языке Prolog.

          Для справки:
          Русские программисты написали программу на Прологе в свое время для Бурана. Эта программа сажала Буран полностью в автоматическом режиме. И насколько я помню из лекций. Американцы досих пор несмогли сделать, этого для своего Шатла.

          У каждого языка есть свои достоинства и недостатки. Мне больше нравиться Дельфи. И ничего в этом плахого я невижу.
          http://oilsoft-service.com

          Оффлайн boikovsoft

          • Старожил
          • ****
          • Сообщений: 288
          • Карма: +7/-0
          • Инженер-программист
            • http://oilsoft-service.com
          WITS/WITSML
          « Ответ #13 : 07 Февраль 2008, 15:12:17 »
          Вопрос ко всем:

          Кто знает, в какой последовательности должны записываться Записи? Например:

          TWITSHead,TWITS_151,TWITS_151,TWITS_151...

          или

          TWITSHead,TWITS_151,TWITSHead,TWITS_151,TWITSHead,TWITS_151,...

          т.е. Первые 7 пуктов пишуться только в начале файла или они зписываются как единая структура с различными уровнями?
          http://oilsoft-service.com

          Оффлайн 7777777

          • Начинающий
          • *
          • Сообщений: 3
          • Карма: +0/-2
            WITS/WITSML
            « Ответ #14 : 07 Февраль 2008, 18:39:19 »
            Цитата: "boikovsoft"
            Цитата: "7777777"
            А что, сейчас еще есть программисты которые пишут на Дельфи?


            Очень много. Вы даже представить себе не можете сколько их много.


            Бедные, несчастные люди... Как научили их в детстве Паскакалю, так они и остались изуродованными на всю жизнь.

            Россия, вообще - странная страна. Программисты почему-то пишут поголовно на Паскале, в то время как во всем мире пишут на С/С++. Файлы они архивируют непременно RARом, хотя в мире никто даже не догадывается о его существовании. А в интернет выхдят через Оперу, в то время как в остальном мире ей пользуются меньше 3%

            Цитата: "boikovsoft"
            2. Вы в курсе, что разница между С++ и Delphi компании Borland небольшая.


            Я догадываюсь - судя по тому, что эффективность Борландовского С-компилятора на порядок уступает остальным. В то время как Intel, MSVC и gcc показывают между собой разничу в проценты или десятки процентов, Борланд уступает им в разы. Но это - опять же! - не мешает российским программистам его использовать.

             



            Покер онлайн