Программируемый контроллер S7-200. Системное руководство Преобразование подстрок в числовые значения Команды преобразования подстроки в целое число (STI), преобразования подстроки в двойное целое число (STD) и преобразования подстроки в вещественное число (STR) преобразуют строку символов IN, начинающуюся со смещения INDX, в целое, двойное целое или вещественное число OUT. Сбойные состояния, устанавливающие ENO = 0 ■ 0006 (косвенный адрес) ■ 0091 (операнд вышел за пределы допустимого диапазона) ■ 009B (индекс = 0) ■ SM1.1 (переполнение) Команды преобразования подстроки в целое и двойное целое число преобразуют строки, имеющие следующий формат:
[пробелы] [+ или -] [цифры 0 - 9] Команда преобразования подстроки в вещественное число преобразует строки, имеющие следующий формат: [пробелы] [+ или -] [цифры 0 - 9] [. или ,] [цифры 0 - 9] Значение INDX обычно устанавливается в 1, так что преобразование начинается с первого символа строки. Значение INDX может быть и другим, чтобы начать преобразование с иной точки внутри строки. Этим можно воспользоваться, если входная строка содержит текст, не являющийся частью преобразуемого числа. Например, если строка имеет вид «Температура: 77.8», то установите INDX на значение 13, чтобы пропустить слово «Температура: » в начале строки.
Команда преобразования подстроки в вещественное число не преобразует строки, использующие научную нотацию или экспоненциальные формы вещественных чисел. Команда не генерирует ошибку переполнения (SM1.1), а преобразует строку в вещественное число до экспоненциальной функции, а затем завершает преобразование. Например, строка ‘1.234E6’ преобразуется без ошибки в вещественное число 1.234. Преобразование завершается при достижении конца строки или обнаружения первого недопустимого символа. Недопустимым является любой символ, отличный от цифры (0 - 9). Ошибка переполнения (SM1.1) устанавливается, когда преобразование дает целое число, слишком большое для выходной величины.
Например, команда преобразования подстроки в вещественное устанавливает ошибку переполнения, если входная строка дает значение, большее, чем 32767, или меньшее, чем -32768. Ошибка переполнения (SM1.1) устанавливается также, если преобразование невозможно из-за отсутствия в строке допустимого значения. Например, если входная строка содержит ‘A123’, то команда преобразования устанавливает SM1.1 (переполнение), а выходная величина остается неизменной. Таблица 6–20.
Допустимые операнды для команд преобразования подстрок в числовые значения 112 Входы/выходы Тип данных Операнды IN STRING IB, QB, VB, MB, SMB, SB, LB, *VD, *LD, *AC, константа INDX BYTE VB, IB, QB, MB, SMB, SB, LB, AC, *VD, *LD, *AC, константа OUT INT DINT, REAL VW, IW, QW, MW, SMW, SW, T, C, LW, AC, AQW, *VD, *LD, *AC VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC