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

Тема: Общение с прибором с помощью скрипта

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от denprox Посмотреть сообщение
    С# оказалось мы не можем использовать, лицензия Standart. А с вопросом разобрались. Если создать программу (в нашем случае ST), при создании входящего параметра, необходимо установить флажок "Ось 0" на вкладке Массивы, поставить тип массива Byte. Тогда будет создан параметр типа ARRAY[*] OF BYTE. Что позволяет установить связь с выходным параметром Response в COMPortByteSync. Ну а дальше уже в скрипте можно разобрать посылку. И вот тут появился новый вопрос, как преобразовать например массив из 4 байт в число типа Real ?

    Прибор присылает массив 41 байт.
    [41, 225, 245, 6, 1, 243, 47, 206, 55, 204, 12, 26, 9, 0, 0, 154, 153, 153, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 59, 0, 0, 0, 0, 0, 15]

    5-8 байты - Тепловая энергия. [243, 47, 206, 55]. Формула для преобразования будет такой: B3*(2^24) + B2*(2^16) + B1*(2^8) + B0. Чтобы не изобретать велосипед, какие встроенные функции позволяют сделать это в MS4D ?
    Пытались DWORD_OF_BYTE (OSCAT) затем DWORD_TO_REAL использовать, но результат совсем не тот, что ожидается.
    Надо использовать вот такие преобразования, выложено на ST для Овен Лоджика.
    Исправленные варианты сборки WORD2_ТО_REAL __выложил capzap ___ https://owen.ru/forum/showthread.php?t=37203&page=10#95
    REAL_TO_DWORD выложил EFrol (формат IEEE754) __________ https://owen.ru/forum/showthread.php...l=1#post450141

    И всё собрано вместе REAL_TO_DWORD и DWORD_TO_REAL https://owen.ru/forum/showthread.php...l=1#post450146
    На ST это делается указателями на раз, не знаю, есть ли указатели в этой скаде.
    Последний раз редактировалось kondor3000; 14.04.2025 в 14:17.

  2. #2
    Пользователь
    Регистрация
    02.11.2012
    Адрес
    г.Челябинск
    Сообщений
    107

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Надо использовать вот такие преобразования, выложено на ST для Овен Лоджика.
    Исправленные варианты сборки WORD2_ТО_REAL __выложил capzap ___ https://owen.ru/forum/showthread.php?t=37203&page=10#95
    REAL_TO_DWORD выложил EFrol (формат IEEE754) __________ https://owen.ru/forum/showthread.php...l=1#post450141

    И всё собрано вместе REAL_TO_DWORD и DWORD_TO_REAL https://owen.ru/forum/showthread.php...l=1#post450146
    На ST это делается указателями на раз, не знаю, есть ли указатели в этой скаде.
    Не совсем понятно, как это использовать в MS4D. Компилятор ругается если создать функцию с кодом function IEEE754_

  3. #3

    По умолчанию

    Цитата Сообщение от denprox Посмотреть сообщение
    Не совсем понятно, как это использовать в MS4D. Компилятор ругается если создать функцию с кодом function IEEE754_
    А вы хотите прямо из Лоджика взять и в Скаду вставить? )))) Да ещё и не то что вам надо. Вам нужен arrWToReal в виде программы на ST.
    Примерно так для Мастер скада 4D 1 Для Мастер скада 4 D.jpg
    Входы BYTE 4 штуки и выход REAL назначить в Скаде.
    Последний раз редактировалось kondor3000; 14.04.2025 в 15:14.

  4. #4
    Пользователь
    Регистрация
    02.11.2012
    Адрес
    г.Челябинск
    Сообщений
    107

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А вы хотите прямо из Лоджика взять и в Скаду вставить? )))) Да ещё и не то что вам надо. Вам нужен arrWToReal в виде программы на ST.
    Примерно так для Мастер скада 4D 1 Для Мастер скада 4 D.jpg
    Входы BYTE 4 штуки и выход REAL назначить в Скаде.
    Запустить получилось, но на выходе имеем значение 4.847436937090457E-36, ожидаемое значение 0.000[n]. Текущее значение прибор выдает примерно 0.000411

  5. #5

    По умолчанию

    Цитата Сообщение от denprox Посмотреть сообщение
    Запустить получилось, но на выходе имеем значение 4.847436937090457E-36, ожидаемое значение 0.000[n]. Текущее значение прибор выдает примерно 0.000411
    Для чего я вам дал пример с 4 Байтами на входе, переставляя регистры и байты, добейтесь правильных показаний. Скрин 1 Перестановка байт.jpg
    Всего 4 варианта, 1 не правильный уже у вас есть.
    И ещё в примере выход REAL (4 байта), а у вас LREAL (8 байт)

    У меня всё работает 1 Работа Скады_arBToReal.jpg
    Последний раз редактировалось kondor3000; 14.04.2025 в 20:22.

  6. #6
    Пользователь
    Регистрация
    02.11.2012
    Адрес
    г.Челябинск
    Сообщений
    107

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Для чего я вам дал пример с 4 Байтами на входе, переставляя регистры и байты, добейтесь правильных показаний. Скрин 1 Перестановка байт.jpg
    Всего 4 варианта, 1 не правильный уже у вас есть.
    И ещё в примере выход REAL (4 байта), а у вас LREAL (8 байт)

    У меня всё работает 1 Работа Скады_arBToReal.jpg
    Да тоже всё заработало, перепечатывал со скриншота, в этом месте "exp_raw := SHR((stuffAdd MOD 2147483648), 23);" пропустил одну цифру))

    Всем спасибо за помощь!)

  7. #7

    По умолчанию

    Цитата Сообщение от denprox Посмотреть сообщение
    Да тоже всё заработало, перепечатывал со скриншота, в этом месте "exp_raw := SHR((stuffAdd MOD 2147483648), 23);" пропустил одну цифру))
    Всем спасибо за помощь!)
    А байты или регистры переставляли?
    Ну вы даёте))) У вас же ссылки на программы на ST все есть, Лоджик поставить 2 минуты и скопипастить программу 10 секунд)))
    Отличие в Лоджике, это возведение в степень pow поменять на EXPT и убрать функцию.
    Последний раз редактировалось kondor3000; 15.04.2025 в 16:15.

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 06.04.2022, 07:51
  2. Ответов: 13
    Последнее сообщение: 05.07.2019, 11:34
  3. Ответов: 4
    Последнее сообщение: 05.06.2017, 20:40
  4. Ответов: 10
    Последнее сообщение: 22.03.2017, 08:57
  5. Общение с монитором Com-порта
    от Makin_Pavel в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 06.03.2017, 10:11

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

Ваши права

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