Siemens — Команды преобразования

Набор команд S7–200 Глава 6 Принцип действия команды преобразования вещественного числа в строку Формат вещественных чисел, используемый S7–200, поддерживает не более 7 значащих цифр. Попытка отобразить более 7 значащих цифр приводит к ошибке округления. На рис. 6–20 описан операнд формата для команды преобразования вещественного числа в строку. Длина выходной строки определяется полем ssss. Размеры 0, 1 или 2 байта недопустимы. Количество цифр справа от десятичной точки в выходном буфере определяется полем nnn. Допустимый диапазон поля nnn составляет от 0 до 5. Задание 0 цифр справа от десятичной точки приводит к тому, что число отображается без десятичной точки.

Выходная строка заполняется символами пробела ASCII для значений nnn, больших 5, или если указанная длина выходной строки слишком мала для хранения преобразованного значения. Бит c определяет использование запятой (с=1) или десятичной точки (с=0) в качестве разделителя целой и дробной части. На рис. 6–20 приведены примеры чисел, форматированных с помощью десятичной точки (c = 0), с одной цифрой справа от десятичной точки (nnn = 001) и выходной строкой, имеющей длину 6 символов (ssss = 0110). Значение OUT представляет собой длину строки. Выходная строка форматируется в соответствии со следующими правилами: - Положительные числа записываются в выходной буфер без знака.

- Отрицательные числа записываются в выходной буфер с ведущим знаком минус (-). - Нули в старших разрядах слева от десятичной точки (кроме цифры, смежной с десятичной точкой) подавляются. - Значение справа от десятичной точки округляется в соответствии с заданным количеством цифр справа от десятичной точки. - Размер выходной строки должен, по крайней мере, на три байта превышать количество цифр справа от десятичной точки. - Числа в выходной строке выравниваются вправо. Рис. 6–20. Операнд FMT для команды преобразования вещественного числа в строку 111 Команда преобразования вещественного числа в строку (RTS) преобразует вещественное число IN в строку символов ASCII.

Формат (FMT) определяет точность преобразования справа от десятичной точки, форму представления разделителя целой и дробной части – в виде запятой или точки, а также длину выходной строки. Результат преобразования помещается в строку, начинающуюся с OUT. Длина результирующей строки определяется в формате и может составлять от 3 до 15 символов. Дополнительную информацию вы найдете в главе 4, где описан формат строк. Сбойные состояния, устанавливающие ENO = 0 ■ 0006 (косвенный адрес) ■ 0091 (операнд вышел за пределы допустимого диапазона) ■ Недопустимый формат: nnn > 5 ssss FMT Out Out Out Out Out Out Out MSB LSB +1 +2 +3 +4 +5 +6 7 6 5 4 3 2 1 0 in=1234.5 6 1 2 3 4 .

5 s s s s c n n n in= -0.0004 6 0 . 0 ssss = длина выходной строки in= -3.67526 6 − 3 . 7 c = запятая (1) или десятичная точка (0) nnn = цифры справа от десятичной точки in = 1.95 6 2 . 0 Out Out +1 Out +2 Out +3 Out +4 Out +5 Out +6 6 1 2 3 4 . 5 6 0 . 0 6 − 3 . 7 6 2 . 0 s s s s c n n n