Инструкции TIA Portal

Операции преобразования
Масштабирование и Типы

Преобразование данных — это мост между физическим миром и цифровым кодом. Освойте масштабирование аналоговых сигналов и трансформацию типов данных.

Что такое операции преобразования в TIA Portal?

Операции преобразования позволяют трансформировать значение из одного типа данных в другой (например, из целого в вещественное) или управлять точностью чисел с плавающей запятой. Они также включают инструменты нормализации и масштабирования, необходимые для обработки аналоговых сигналов.

TIA Portal предлагает современные инструкции, такие как SCALE_X и NORM_X, которые заменяют старые блоки SCALE/UNSCALE систем S7-300, обеспечивая большую гибкость и точность.

Преобразование типов

Трансформация и округление числовых форматов

CONVERT — Преобразовать значение

CONV

Что она делает

Преобразует значение из исходного типа данных в целевой. Поддерживает преобразования между целыми, вещественными числами, символами, временем и строками.

Когда использовать

Подготовка целого числа для сложных расчетов путем перевода в Real или преобразование кода ошибки в String для HMI.

Советы профи

В LAD щелкните по типам данных блока, чтобы выбрать источник и цель.

В SCL: myReal := INT_TO_REAL(myInt);

Опасайтесь потери точности при преобразовании больших типов в короткие.

ROUND / TRUNC

ROUND

Что они делают

ROUND округляет число с плавающей запятой до ближайшего целого. TRUNC просто отсекает десятичную часть.

Когда использовать

Отображение физического измерения в виде целого числа или преобразование результата Real в индекс массива (Int).

Советы профи

Если десятичная часть ровно .5, ROUND округляет до ближайшего четного целого (стандарт IEC).

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

Обе принимают Real/LReal и обычно возвращают DInt.

CEIL / FLOOR

CEIL

Что они делают

CEIL (Потолок) генерирует большее или равное целое число. FLOOR (Пол) генерирует меньшее или равное целое число.

Когда использовать

Расчет необходимого количества контейнеров (всегда округлять вверх с помощью CEIL).

Советы профи

CEIL(10.1) = 11 ; FLOOR(10.9) = 10.

Важно для алгоритмов логистики.

Полезно для удержания значения в строгих целочисленных границах.

Масштабирование (Scaling)

Обработка аналоговых сигналов

NORM_X — Нормализовать

NORM_X

Что она делает

Трансформирует значение из диапазона [MIN..MAX] в нормализованное значение от 0.0 до 1.0.

Когда использовать

Чтение сырого аналогового входа (например, 0-27648) и перевод его в проценты.

Советы профи

Обычно сразу следует за блоком SCALE_X.

Если вход выходит за границы, выход превысит 0.0 или 1.0.

Убедитесь, что MIN не равно MAX.

SCALE_X — Масштабировать

SCALE_X

Что она делает

Принимает нормализованное значение [0.0..1.0] и проецирует его на физический диапазон (например, 0-100°C).

Когда использовать

Преобразование результата NORM_X в понятную оператору инженерную единицу.

Советы профи

Комбинация NORM_X + SCALE_X — современный стандарт Siemens.

Позволяет легко менять диапазоны датчиков.

Также служит для отправки физических уставок на аналоговые выходы.

Инструкции Legacy

Совместимость с S7-300 (FC105 / FC106)

SCALE / UNSCALE

Что она делает

Старые блоки, выполняющие прямое преобразование за один шаг.

Когда использовать

Обслуживание программ, мигрированных из Step 7 Classic.

Советы профи

SCALE соответствует старому FC105.

Используйте BIPOLAR для отрицательных сигналов (+/- 10В).

Предпочитайте NORM_X/SCALE_X для новых разработок.

Сравнение методов

Выбор правильной инструкции

Вы хотите...РекомендуемаяПример
Сменить тип (Int -> Real)CONVERTТочный расчет
Убрать десятичныеTRUNCПростое отображение
ОкруглитьROUNDСтатистика
Датчик 4-20мАNORM_X + SCALE_XДавление 0-16 бар
Округление вверхCEILРасчет паллет
Код S7-300SCALE (FC105)Миграция

Часто задаваемые вопросы

Почему использовать NORM_X и SCALE_X вместо одного блока?

Это дает большую гибкость для фильтрации или ограничения нормализованного значения перед масштабированием.

Какое стандартное значение для аналоговых входов Siemens?

Обычно от 0 до 27648 для униполярных сигналов.

Как преобразовать в String?

CONVERT делает это нативно, или используйте VAL_STRG для большего контроля.

Разница между ROUND и TRUNC?

ROUND округляет до ближайшего, TRUNC просто отсекает хвост.

Оптимизируйте ваши аналоговые расчеты

T-IA Connect сгенерирует ваши оптимизированные сети масштабирования.