PDA

Просмотр полной версии : Преобразование типов данных



user2
26.03.2025, 16:07
Подскажите пожалуйста как можно преобразовать целое число в панели сп3хх полученное с ТРМ202 в тип float (не просто указать в параметрах дисплея 1 значение дробной части) для отображения и дальнейшего сохранения в памяти панели (или подключенной flash)

Александр Пинэко-Скворцов
26.03.2025, 16:22
Подскажите пожалуйста как можно преобразовать целое число в панели сп3хх полученное с ТРМ202 в тип float (не просто указать в параметрах дисплея 1 значение дробной части) для отображения и дальнейшего сохранения в памяти панели (или подключенной flash)

Добрый день.

Уточните, пожалуйста, что конкретно планируете считывать? Для измеренных значений и уставок есть возможность читать float (см. скриншот ниже).
В остальном, конвертация выполняется с помощью макросов на языке ANSI С. См. справку в конфигураторе СП3хх.
82692

imaex
26.03.2025, 16:38
А если просто умножить целое на вещественное, разве не будет неявного преобразования? Типа Аf=Аi*1.0 ?

user2
26.03.2025, 16:42
82693
82694
Я правильно указал параметры? Выдает 0, или вообще не то число

Александр Пинэко-Скворцов
26.03.2025, 16:47
82693
82694
Я правильно указал параметры?

Если ТРМ подключен к PLC порту, его адрес действительно 1, и Вы не хотите видеть цифры после запятой (в дробной части установили 0), то здесь верно.

1exan
26.03.2025, 16:47
Я правильно указал параметры?

Выглядит похоже, если хотели увидеть показания 1-го канала ТРМ

user2
26.03.2025, 16:57
Да, так и есть, но почему-то не получается
Целое число считывает а float нет

Александр Пинэко-Скворцов
26.03.2025, 17:39
Да, так и есть, но почему-то не получается
Целое число считывает а float нет

Поменяйте параметр Изменить порядок регистров в настройках порта.
82695

kondor3000
26.03.2025, 17:51
Да, так и есть, но почему-то не получается
Целое число считывает а float нет

Если использовать математику в ФО (функц. области), то деление целого числа в полученном регистре на 10.0 (Float), 82696
получаем число Float, в назначенном регистре. Смотри скрины. работа82697
Режим ФО непрерывный.

user2
26.03.2025, 18:02
Поменяйте параметр Изменить порядок регистров в настройках порта.
82695

Да, этот параметр уже выбран (галочка установлена)

МихаилГл
27.03.2025, 05:54
Да, этот параметр уже выбран (галочка установлена)

А с убранной "галочкой"?

user2
27.03.2025, 09:11
Рабочий метод👍, благодарю вас

kondor3000
27.03.2025, 09:19
Рабочий метод��, благодарю вас

Это вы о чём?

user2
27.03.2025, 09:46
float считывает нормально ��

МихаилГл
27.03.2025, 10:51
float считывает нормально ��

Что помогло то, перестановка слов или функциональная область... Вот оП чем речь)

user2
27.03.2025, 10:58
Функциональная область помогла для перевода в тип float и параметр Изменить порядок регистров (убрал галочку и нормально считались данные float напрямую с трм без всяких переводов)

Валенок
27.03.2025, 13:47
Что помогло то, перестановка слов или функциональная область... Вот оП чем речь)
Изменение состояния галки на противоположное, очевидно же. А ФО тут про другое, за каким её тут трогали непонятно