Строки и текст
Операции с данными
Обрабатывайте текстовые данные как профессионал. От динамической генерации этикеток до парсинга протоколов, освойте каждую инструкцию манипуляции со строками в вашем PLC.
Зачем обрабатывать строки в PLC?
Хотя PLC в первую очередь предназначены для бинарной и числовой логики, операции со строками необходимы для современных промышленных интерфейсов. Они позволяют генерировать динамические сообщения для HMI, парсить штрих-коды или QR-коды со сканеров и взаимодействовать с ИТ-системами через протоколы форматированного текста.
TIA Portal предлагает надежный набор инструкций для управления типами STRING (ASCII) и WSTRING (Unicode), гарантируя, что ваша машина сможет четко общаться на любом языке.
Конкатенация и вставка
Создание динамических сообщений
CONCAT — Конкатенация строк
CONCATЧто она делает
Объединяет две или более строки в одну выходную строку. Исходные строки добавляются в том порядке, в котором они определены.
Когда использовать
Создание полного сообщения о состоянии из префикса и имени переменной или формирование строки CSV для логирования.
Советы экспертов
Всегда проверяйте максимальную длину целевой строки, чтобы избежать усечения данных.
В SCL вы можете использовать оператор '+' для более простой конкатенации, если это поддерживается.
Комбинируйте CONCAT с пробелами, чтобы обеспечить читаемость вывода на HMI.
INSERT — Вставка в строку
INSERTЧто она делает
Вставляет подстроку в существующую строку в указанной позиции символа (P).
Когда использовать
Добавление единиц измерения (например, 'kg' или '°C') внутрь динамического текстового шаблона.
Советы экспертов
Если P равно 0, подстрока вставляется в начало.
Если P больше длины строки, подстрока добавляется в конец.
Полезно для динамического форматирования строк даты/времени.
Поиск и модификация
Анализ текстовых данных
FIND — Поиск подстроки
FINDЧто она делает
Ищет определенный шаблон внутри строки и возвращает начальную позицию. Возвращает 0, если шаблон не найден.
Когда использовать
Поиск разделителей (например, запятых или точек с запятой) в строке ввода со сканера.
Советы экспертов
Поиск чувствителен к регистру. 'Error' отличается от 'error'.
Используйте возвращенную позицию напрямую в инструкции MID для извлечения данных.
В цикле можно найти несколько вхождений, обновляя исходную строку.
REPLACE — Замена части
REPLACEЧто она делает
Заменяет определенное количество символов, начиная с позиции P, новой подстрокой.
Когда использовать
Обновление переменной части статического сообщения без пересборки всей строки.
Советы экспертов
Чтобы удалить символы, не добавляя новых, используйте пустую строку в качестве замены.
Часто используется для замены плейсхолдеров типа {val} реальными значениями.
Будьте осторожны с количеством символов, чтобы избежать неожиданного сдвига остальной части текста.
Преобразование и извлечение
Связь чисел и текста
VAL_STRG / STRG_VAL — Преобразование
VAL_STRGЧто она делает
Преобразует числовые значения (Int, Real) в String (VAL_STRG) или извлекает числа из String (STRG_VAL).
Когда использовать
Отображение температуры Real в пользовательском текстовом сообщении или преобразование ввода с последовательного порта в Integer.
Советы экспертов
Настройте вход FORMAT, чтобы определить десятичные знаки и поведение знака.
STRG_VAL чувствителен к десятичному разделителю (точка или запятая).
Проверяйте статус выхода, чтобы убедиться, что преобразование прошло успешно.
LEFT / RIGHT / MID — Извлечение
MIDЧто она делает
Извлекает часть строки слева, справа или из определенной средней позиции (MID).
Когда использовать
Получение префикса из штрих-кода или извлечение значения, находящегося в скобках.
Советы экспертов
MID(IN, L, P) извлекает L символов, начиная с позиции P.
Если L превышает количество доступных символов, инструкция возвращает все до конца строки.
Необходимо для извлечения данных из сторонних протоколов последовательной связи.
STRING против WSTRING
Выбор правильного текстового формата
| Свойство | STRING | WSTRING |
|---|---|---|
| Кодировка | ASCII / Расширенный ASCII | Unicode (UTF-16) |
| Байт на символ | 1 байт | 2 байта |
| Макс. длина | 254 символа | 16382 символа |
| Использование | Стандартный западный текст | Международные / спецсимволы |
| Влияние на память | Низкое | Высокое (двойное) |
| Префикс SCL | '' (Одинарные кавычки) | W#'' |
Часто задаваемые вопросы
Какова максимальная длина STRING в TIA Portal?
Стандартная STRING может содержать до 254 символов. Если вам нужно больше, вы должны использовать тип WSTRING, который может обрабатывать до 16 382 символов на S7-1500.
Почему мое преобразование VAL_STRG завершается ошибкой?
Самая частая причина — недостаточная длина целевой строки или несоответствие в параметре FORMAT (например, попытка уместить большое число REAL в маленькую STRING).
Можно ли использовать строки в оптимизированных блоках данных?
Да, строки полностью поддерживаются в оптимизированных DB. Однако помните, что они всегда занимают в памяти свой максимально определенный размер плюс 2 байта для заголовков длины.
Как сравнивать две строки в SCL?
Вы можете использовать стандартные операторы сравнения (=, <>, <, >). TIA Portal сравнивает строки символ за символом на основе их значений ASCII/Unicode.