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

Программируемый контроллер S7-200. Системное руководство FMT MSB LSB 2 1 0 6 7 5 4 3 in=-123 in=12 c = запятая (1) или десятичная точка (0) nnn = цифры справа от десятичной точки in = -12345 in=1234 Рис. 6–18. Операнд FMT для команды преобразования целого числа в строку Принцип действия команды преобразования двойного целого числа в строку На рис. 6–19 описан операнд формата для команды преобразования двойного целого числа в строку. Длина выходной строки всегда равна 12 символам. Количество цифр справа от десятичной точки в выходном буфере определяется полем nnn . Допустимый диапазон поля nnn составляет от 0 до 5.

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

- Отрицательные числа записываются в выходной буфер с ведущим знаком минус (-). - Нули в старших разрядах слева от десятичной точки (кроме цифры, смежной с десятичной точкой) подавляются. - Числа в выходной строке выравниваются вправо. FMT MSB LSB 2 1 0 6 7 5 4 3 in=12 in=-1234567 c = запятая (1) или десятичная точка (0) nnn = цифры справа от десятичной точки Рис. 6–19. Операнд FMT для команды преобразования двойного целого в строку 110 Out Out +1 Out +2 Out +3 Out +4 Out +5 Out +6 Out +7 Out +8 8 0 . 0 1 2 8 − 0 . 1 2 3 8 1 . 2 3 4 8 − 1 2 . 3 4 5 0 0 0 0 c n n n Команда преобразования двойного целого числа в строку (DTS) преобразует двойное целое число IN в строку ASCII длиной 12 символов.

Формат (FMT) определяет точность преобразования справа от десятичной точки, а также форму представления разделителя целой и дробной части – в виде запятой или точки. Результирующая строка записывается в 13 последовательных байтов, начиная с адреса OUT. Дополнительную информацию вы найдете в главе 4, где описан формат строк. Сбойные состояния, устанавливающие ENO = 0 ■ 0006 (косвенный адрес) ■ 0091 (операнд вышел за пределы допустимого диапазона) ■ Недопустимый формат (nnn > 5) Out Out +1 Out +2 Out +3 Out +4 Out +5 Out +6 Out +7 Out +8 Out +9 Out +10 Out +11 Out +12 12 0 . 0 0 1 2 12 − 1 2 3 . 4 5 6 7 0 0 0 0 c n n n