06_InstructionSet_r (1087186), страница 9
Текст из файла (страница 9)
Результатпреобразования помещается в 8 последовательныхбайтов, начиная с адреса OUT.Сбойные состояния,устанавливающие ENO = 0■ 0006 (косвенный адрес)■ Недопустимый формат■ nnn > 5Массив символов ASCII всегда содержит 8 элементов.105Программируемый контроллер S7-200. Системное руководствоНа рис. 6–15 описан операнд формата для команды преобразования целого числа в строкусимволов ASCII. Размер выходного буфера всегда равен 8 байтам. Количество цифрсправа от десятичной точки в выходном буфере определяется полем nnn.
Допустимыйдиапазон поля nnn составляет от 0 до 5. Задание 0 цифр справа от десятичной точкиприводит к тому, что число отображается без десятичной точки. Для значений nnn,больших 5, выходной буфер заполняется пробелами ASCII. Бит c определяетиспользование запятой (с=1) или десятичной точки (с=0) в качестве разделителя целой идробной части. Старшие 4 бита формата должны быть нулями.На рис. 6–15 показаны примеры чисел, форматированных с помощью десятичной точки (c= 0), с тремя цифрами справа от десятичной точки (nnn=011). Выходной буферформатируется в соответствии со следующими правилами:-Положительные числа записываются в выходной буфер без знака.-Отрицательные числа записываются в выходной буфер с ведущим знаком минус (-).-Нули в старших разрядах слева от десятичной точки (кроме цифры, смежной сдесятичной точкой) подавляются.-Числа в выходном буфере выравниваются вправо.FMTMSB7 60 050403c2n1nLSB0nc = запятая (1) или десятичная точка (0)nnn = цифры справа от десятичной точкиOut Out+1Out+2in=12-in=-123in=1234in = -12345-1Out Out+3 +40.012...Out Out Out+5 +6 +7012123234345Рис.
6–15. Операнд FMT для команды преобразования целого в строку символов ASCII (ITA)Принцип действия команды преобразования двойного целого в строкусимволов ASCIIКоманда преобразования двойного целого в строкусимволов ASCII (DTA) преобразует двойное слово IN вмассив символов ASCII. Операнд формат FMTопределяет точность преобразования справа отдесятичной точки. Результат преобразованияпомещается в 12 последовательных байтов, начиная садреса OUT.Сбойные состояния,устанавливающие ENO = 0■ 0006 (косвенный адрес)■ Недопустимый формат■ nnn > 5Размер выходного буфера всегда равен 12 байтам.На рис.
6–16 описан операнд формата для команды преобразования двойного целого встроку символов ASCII. Количество цифр справа от десятичной точки в выходном буфереопределяется полем nnn. Допустимый диапазон поля nnn составляет от 0 до 5. Задание 0цифр справа от десятичной точки приводит к тому, что число отображается без десятичнойточки. Для значений nnn, больших 5, выходной буфер заполняется символами пробелаASCII. Бит c определяет использование запятой (с=1) или десятичной точки (с=0) вкачестве разделителя целой и дробной части. Старшие 4 бита формата должны бытьнулями.На рис. 6–16 показаны примеры чисел, форматированных с помощью десятичной точки (c= 0), с четырьмя цифрами справа от десятичной точки (nnn=100).
Выходной буферформатируется в соответствии со следующими правилами:106-Положительные числа записываются в выходной буфер без знака.-Отрицательные числа записываются в выходной буфер с ведущим знаком минус (-).-Нули в старших разрядах слева от десятичной точки (кроме цифры, смежной сдесятичной точкой) подавляются.-Числа в выходном буфере выравниваются вправо.Набор команд S7–200Глава 6FMTMSB70OutLSB6050403c2n1n0nOut Out+1 +2Out Out+3 +4in=−12in=1234567Out Out Out Out Out Out+5 +6 +7 +8 +9 +100.001−123.456Out+1127c = запятая (1) или десятичная точка (0)nnn = цифры справа от десятичной точкиРис. 6–16.
Операнд FMT для команды преобразования целого числа в строку символов ASCII (DTA)Принцип действия команды преобразования вещественного числа в строкусимволов ASCIIКоманда преобразования вещественного числа в строкусимволов ASCII (RTA) преобразует число с плавающейточкой IN в символы ASCII.
Формат FMT определяетточность преобразования справа от десятичной точки, атакже форму представления разделителя целой идробной части – в виде запятой или точки и размервыходного буфера.Сбойные состояния,устанавливающие ENO = 0■ 0006 (косвенный адрес)■ nnn > 5■ ssss < 3■ ssss< число символов в OUTРезультат преобразования помещается в выходномбуфере, начиная с адреса OUT.Длина (количество символов) результирующей строки символов ASCII соответствуетразмеру выходного буфера и может быть задана в диапазоне от 3 до 15 символов илибайтов.Формат чисел с плавающей точкой, используемый S7–200, поддерживает не более 7значащих цифр. Попытка отобразить более 7 значащих цифр приводит к ошибкеокругления.На рис.
6–17 описан операнд формата (FMT) для команды RTA. Размер выходного буфераопределяется полем ssss. Размеры 0, 1 или 2 байта недопустимы. Количество цифрсправа от десятичной точки в выходном буфере определяется полем nnn. Допустимыйдиапазон поля nnn составляет от 0 до 5. Задание 0 цифр справа от десятичной точкиприводит к тому, что число отображается без десятичной точки. Выходной буферзаполняется символами пробела ASCII для значений nnn, больших 5, или если заданныйвыходной буфер слишком мал для хранения преобразованного значения. Бит c определяетиспользование запятой (с=1) или десятичной точки (с=0) в качестве разделителя целой идробной части.На рис. 6–17 также приведены примеры чисел, форматированных с помощью десятичнойточки (c = 0), с одной цифрой справа от десятичной точки (nnn=001) и размером буфера,равным 6 байтам (ssss=0110).
Выходной буфер форматируется в соответствии соследующими правилами:Положительные числа записываются в выходной буфер без знака.Отрицательные числа записываются в выходной буфер с ведущим знаком минус (-).Нули в старших разрядах слева от десятичной точки (кроме цифры, смежной сдесятичной точкой) подавляются.Значение справа от десятичной точки округляется в соответствии с заданнымколичеством цифр справа от десятичной точки.Размер выходного буфера должен, по крайней мере, на три байта превышатьколичество цифр справа от десятичной точки.Числа в выходном буфере выравниваются вправо.FMTOut Out Out OutMSBLSB76543210sssscnnnssss = размер выходного буфераc = запятая (1) или десятичная точка (0)nnn = цифры справа от десятичной точкиin = 1234.51+12+23in = −0.0004in = −3.67526in = 1.95−+34Out Out+4 +5.50.3.072.0Рис. 6–17.
Операнд FMT для команды преобразования вещественного числа в строку символов ASCII(RTA)107Программируемый контроллер S7-200. Системное руководствоПример: Команда преобразования строки символов ASCII в 16-ричное числоNetwork 1LDI3.2ATHVB30, VB40, 3`3'33`E'45`A'413EATHAxУказание: X показывает, что половина байта неменяетсяVB40VB30Пример: Команда преобразования целого числа в строку символов ASCIINetwork 1LDITA12345ITAVW2' '20' '20'1'31VB10VB11...//Преобразовать целое число из VW2//в 8 символов ASCII, начиная с VB10,//с использованием формата 16#0B//(запятая вместо десятичной точки,//за которой следуют 3 цифры).I2.3VW2, VB10, 16#0B'2'32','2C'3'33'4'34'5'35Пример: Команда преобразования вещественного числа в строку символов ASCIINetwork 1 //Преобразовать вещественное число из VD2//в 10 символов ASCII, начиная с адреса// VB10, с помощью формата 16#A3//(запятая вместо десятичной точки,// за которой следуют 3 цифры).LDI2.3RTAVD2, VB10, 16#A3123.45VD2108RTA' '20' '20VB10VB11' '20...'1'31'2'32'3'33'.'2E'4'34'5'35'0'30Набор команд S7–200Глава 6Команды преобразования строкПреобразование числовых значений в строкиКоманды преобразования целого числа в строку (ITS),преобразования двойного целого числа в строку (DTS),преобразования вещественного числа в строку (RTS)преобразуют целое, двойное целое или вещественноечисло (IN) в строку символов ASCII (OUT).Принцип действия команды преобразованияцелого числа в строку символовКоманда преобразования целого числа в строкусимволов (ITS) преобразует целое число IN в строкусимволов ASCII длиной 8 символов.
Формат (FMT)определяет точность преобразования справа отдесятичной точки, а также форму представленияразделителя целой и дробной части – в виде запятойили точки. Результирующая строка записывается в 9последовательных байтов, начиная с OUT. Подробнуюинформацию о форматах строк символов вы найдете вглаве 4.Сбойные состояния, устанавливающие ENO = 0■ 0006 (косвенный адрес)■ 0091 (операнд вышел за пределы допустимого диапазона)■ Недопустимый формат (nnn > 5)На рис. 6–18 описан операнд формата для командыпреобразования целого числа в строку.
Длина выходнойстроки всегда равна 8 символам. Количество цифрсправа от десятичной точки в выходном буфереопределяется полем nnn. Допустимый диапазон поляnnn составляет от 0 до 5. Задание 0 цифр справа отдесятичной точки приводит к тому, что числоотображается без десятичной точки. Для значений nnn,больших 5, выходом является строка из 8 пробеловASCII. Бит c определяет использование запятой (с=1)или десятичной точки (с=0) в качестве разделителяцелой и дробной части. Старшие 4 бита форматадолжны быть нулями.На рис. 6–18 показаны примеры чисел, форматированных с использованием десятичнойточки (c = 0), с тремя цифрами справа от десятичной точки (nnn = 011).Значение OUTпредставляет собой длину строки.Выходная строка форматируется в соответствии со следующими правилами:-Положительные числа записываются в выходной буфер без знака.-Отрицательные числа записываются в выходной буфер с ведущим знаком минус (-).-Нули в старших разрядах слева от десятичной точки (кроме цифры, смежной сдесятичной точкой) подавляются.-Числа в выходной строке выравниваются вправо.Таблица 6–19.
Допустимые операнды для команд преобразования числовых значений в строкиВходы/выходыТип данныхОперандыININTDINTREALIW, QW, VW, MW, SMW, SW, T, C, LW, AIW, *VD, *LD, *AC,константаID, QD, VD, MD, SMD, SD, LD, AC, HC, *VD, *LD, *AC, константаID, QD, VD, MD, SMD, SD, LD, AC, *VD, *LD, *AC, константаFMTBYTEIB, QB, VB, MB, SMB, SB, LB, AC, *VD, *LD, *AC, константаOUTSTRINGVB, LB, *VD, *LD, *AC109Программируемый контроллер S7-200. Системное руководствоFMTMSB7 60 050403c2n1nLSB0nin=12in=-123in=1234in = -12345c = запятая (1) или десятичная точка (0)nnn = цифры справа от десятичной точкиOut Out Out Out Out Out Out Out Out+1 +2 +3 +4 +5 +6 +7 +8082.01−88−8...0121123345234Рис. 6–18. Операнд FMT для команды преобразования целого числа в строкуПринцип действия команды преобразования двойного целого числа встрокуКоманда преобразования двойного целого числа встроку (DTS) преобразует двойное целое число IN встроку ASCII длиной 12 символов.
Формат (FMT)определяет точность преобразования справа отдесятичной точки, а также форму представленияразделителя целой и дробной части – в виде запятойили точки. Результирующая строка записывается в 13последовательных байтов, начиная с адреса OUT.Дополнительную информацию вы найдете в главе 4, гдеописан формат строк.Сбойные состояния,устанавливающие ENO = 0■ 0006 (косвенный адрес)■ 0091 (операнд вышел за пределыдопустимого диапазона)■ Недопустимый формат (nnn > 5)На рис. 6–19 описан операнд формата для команды преобразования двойного целогочисла в строку.