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

Тема: Преобразование word_real с перестановкой байтов

  1. #1
    Пользователь
    Регистрация
    07.06.2018
    Адрес
    Казань
    Сообщений
    54

    По умолчанию Преобразование word_real с перестановкой байтов

    Для передачи показаний температуры по модбасу с МВ110-8А на СПК1ХХ использую преобразование 2word_to_real с помощью объединения как в документации. При нагреве температура по месту становится T1, по модбасу отображается примерно T1/2. При перемене местами вордов в переменных, привязанных к регистрам канала МВ110-8А, отображается число, не относящееся к действительности. Попробовал сделать преобразование с применением перестановки байтов, используя 2 объединения как в документации - пока не присвоены между собой байтовые переменные из разных объединений у вордов и байтов первого объединения есть значения текущей температуры (рис.1), после присвоения они переходят в нули (рис.2 и 3). Пробовал менять местами байты в присвоениях, ворды в регистрах канала МВ110-8А - результат без улучшений. Что делаю не так?
    Изображения Изображения

  2. #2

  3. #3
    Пользователь
    Регистрация
    07.06.2018
    Адрес
    Казань
    Сообщений
    54

    По умолчанию

    Евгений, здравствуйте! С шаблонами понятно, но хочется сделать с преобразованием.

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,062

    По умолчанию

    Тогда как минимум стоит указать, какое значение аналогового входа соответствует скриншоту 1.
    Около 26 градусов?

  5. #5
    Пользователь
    Регистрация
    07.06.2018
    Адрес
    Казань
    Сообщений
    54

    По умолчанию

    Датчик был с стакане с кипятком в другом помещении, но когда делал фото экрана прошло около часа, может 50 градусов С, не определял специально.

  6. #6
    Пользователь
    Регистрация
    07.06.2018
    Адрес
    Казань
    Сообщений
    54

    По умолчанию

    С подключениями и настройкой каналов в МВ110-8А всё нормально. Ранее для передачи значений использовалась переменная INT, привязывалась в один регистр модуля, показания соответствовали действительности и совпадали с показаниями штатных датчиков в климатических камерах.

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,062

    По умолчанию

    Цитата Сообщение от АнтоN Посмотреть сообщение
    С подключениями и настройкой каналов в МВ110-8А всё нормально. Ранее для передачи значений использовалась переменная INT, привязывалась в один регистр модуля, показания соответствовали действительности и совпадали с показаниями штатных датчиков в климатических камерах.
    Подключитесь, пожалуйста, к модулю конфигуратором, сделайте скриншоты настроек и текущего измеренного значения.

  8. #8
    Пользователь
    Регистрация
    07.06.2018
    Адрес
    Казань
    Сообщений
    54

    По умолчанию

    С байтами сегодня разобрался - я неправильно присваивал переменные, нужно было наоборот.
    Насчёт измерений: проверил в мастерской на имеющейся аппаратуре СПК110+ТРМ210+ДТС исполнение преобразований и через 2word_to_real и через 2word_to_4bytes-4bytes_to_real - через оба преобразования на СПК приходит ровно то же, что и отображается на ТРМке. Значит дело в МВ110-8А на объекте. К нему я не подключался, так как при записи проекта в СПК1ХХ (на объекте) температура со всех каналов модуля отображалась нормальной, правда при нагреве я не проверял соответствие показаний по месту у камер и на СПК. Как появится возможность доступа к МВ110-8А на объекте - проверю настройку его каналов.
    Евгений, благодарю за помощь!

  9. #9
    Пользователь
    Регистрация
    07.06.2018
    Адрес
    Казань
    Сообщений
    54

    По умолчанию

    Сегодня получил доступ к модулям МВ110-8А. Всего в проекте, разработанном другим работником до меня в 2014 году, используется 2 таких модуля. В коде программы для первого модуля использовалось преобразование измеренных значений температуры с помощью выражения ch_n:=(in_n*0,01)*3)-50, для второго - ch_n:=in_n*0,01 (см. фото во вложении). И почему то это меня не насторожило, когда я решил заменить эти выражения на преобразование 2word_to_real с помощью объединения))
    К первому МВ110-8А подключены через НПТ 8 ДТСХХ4.Exi с НСХ Pt100, ко второму - 6 ДТСХХ4.Exi через барьеры ИСКРА с НСХ Pt100 и 2 ДТС3ХХХ с НСХ Pt1000. В настройках каналов модулей типы датчиков были заданы и НСХ соответствовали паспортным данным датчиков, но границы нижних и верхних пределов измерений были оставлены по умолчанию 0 и 100 соответственно, когда у ДТСХХ4 диапазон измерения -50..+250С, у ДТС3ХХХ -50..+120С. После записи в каналы модулей нужных диапазонов измерений показания на СПК стали соответствовать показаниям штатных датчиков климатических камер.

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

    По умолчанию

    Цитата Сообщение от АнтоN Посмотреть сообщение
    Сегодня получил доступ к модулям МВ110-8А. Всего в проекте, разработанном другим работником до меня в 2014 году, используется 2 таких модуля. В коде программы для первого модуля использовалось преобразование измеренных значений температуры с помощью выражения ch_n:=(in_n*0,01)*3)-50, для второго - ch_n:=in_n*0,01 (см. фото во вложении). И почему то это меня не насторожило, когда я решил заменить эти выражения на преобразование 2word_to_real с помощью объединения))
    К первому МВ110-8А подключены через НПТ 8 ДТСХХ4.Exi с НСХ Pt100, ко второму - 6 ДТСХХ4.Exi через барьеры ИСКРА с НСХ Pt100 и 2 ДТС3ХХХ с НСХ Pt1000. В настройках каналов модулей типы датчиков были заданы и НСХ соответствовали паспортным данным датчиков, но границы нижних и верхних пределов измерений были оставлены по умолчанию 0 и 100 соответственно, когда у ДТСХХ4 диапазон измерения -50..+250С, у ДТС3ХХХ -50..+120С. После записи в каналы модулей нужных диапазонов измерений показания на СПК стали соответствовать показаниям штатных датчиков климатических камер.
    так вроде предшественник тоже самое делал, только он брал целочисленные значения с каждого из кaнaлов, преобразовывал диапазон от 0 до 100 в 300 и потом вычитал 50, чтоб получить интерполированные -50...250.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Похожие темы

  1. СМИ2 - порядок байтов
    от Владислав Г. в разделе Панели оператора (HMI)
    Ответов: 13
    Последнее сообщение: 25.11.2016, 13:48
  2. Преобразование 4...20 мА в 0...10 В
    от Turboblock в разделе Подбор Оборудования
    Ответов: 6
    Последнее сообщение: 30.01.2015, 18:57
  3. SysLibCom.lib (SysComRead) потеря байтов.
    от AlexPC1 в разделе ПЛК1хх
    Ответов: 19
    Последнее сообщение: 13.10.2014, 22:38
  4. ПЛК63 + SysLibCom, потеря байтов
    от monteg в разделе ПЛК63/73
    Ответов: 202
    Последнее сообщение: 18.04.2013, 10:11
  5. потеря байтов в ответной посылке с периодом 4-5 с.
    от Смирнов Роман в разделе ПЛК1хх
    Ответов: 44
    Последнее сообщение: 23.04.2009, 08:16

Ваши права

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