Главная страница

Руководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8


Скачать 3.76 Mb.
НазваниеРуководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8
Дата27.07.2022
Размер3.76 Mb.
Формат файлаpdf
Имя файлаs71200_system_manual_r.pdf
ТипРуководство
#636782
страница15 из 40
1   ...   11   12   13   14   15   16   17   18   ...   40
Параметр
Тип данных
Описание
IN, IN1
Real, LReal, Constant
Входы
IN2
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal,
Constant
Вход EXPT
OUT Real,
LReal
Выходы

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200
Системное руководство, 11/2009, A5E02669003-02 135
Состояние
ENO
Команда
Условие
Результат (OUT)
1
Все
Нет ошибки
Допустимый результат
Результат выходит за пределы допустимых значений для Real/LReal
+INF
SQR
IN равняется +/- NaN (не число) +NaN
IN отрицательно -NaN
SQRT
IN равно +/- INF (бесконечность) или +/-
NaN
+/- INF или +/- NaN
IN равно 0.0, отрицательно, -INF или -
NaN
-NaN
LN
IN равно +INF или +NaN
+INF или +NaN
Результат выходит за пределы допустимых значений для Real/LReal
+INF
EXP
IN равно +/- NaN
+/- NaN
SIN, COS,
TAN
IN равно +/- INF или +/- NaN
+/- INF или +/- NaN
IN выходит за пределы допустимого диапазона от -1.0 до +1.0
+NaN
ASIN,
ACOS
IN равно +/- NaN
+/- NaN
ATAN IN равно +/- NaN
+/- NaN
FRAC IN равно +/- INF или +/- NaN
+NaN
IN1 равно +INF, а IN2 не равно -INF
+INF
IN1 отрицательно или -INF
+NaN, если IN2 имеет тип Real/LReal,
-INF в противном случае
IN1 или IN2 равно +/- NaN
+NaN
0
EXPT
IN1 равно 0.0, а IN2 имеет тип Real/LReal
(только)
+NaN

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200 136
Системное руководство, 11/2009, A5E02669003-02
6.1.6
Команда Move
Команды передачи и блочной передачи
Команды передачи используются для копирования элементов данных в новый адрес в памяти и преобразования из одного типа данных в другой. При этом источник данных не изменяется.
• MOVE:
Копирует элемент данных, хранящийся по определенному адресу в новый адрес
• MOVE_BLK:
Прерываемая передача, которая копирует блок элементов данных в новый адрес
• UMOVE_BLK:
Непрерываемая передача, которая копирует блок элементов данных в новый адрес
MOVE
Параметр
Тип данных
Описание
IN
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte,
Word, DWord, Char, Array, Struct, DTL, Time
Адрес источника
OUT
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte,
Word, DWord, Char, Array, Struct, DTL, Time
Целевой адрес
MOVE_BLK, UMOVE_BLK
Параметр
Тип данных
Описание
IN
SInt, Int, DInt, USInt, UInt, UDInt, Real,
Byte, Word, DWord
Начальный адрес источника
COUNT UInt
Число элементов данных, подлежащих копированию
OUT
SInt, Int, DInt, USInt, UInt, UDInt, Real,
Byte, Word, DWord
Начальный адрес назначения

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200
Системное руководство, 11/2009, A5E02669003-02 137
Указание
Правила для операций копирования данных
• Для копирования данных типа Bool используйте SET_BF, RESET_BF, R, S или выходную катушку (LAD)
• Для копирования отдельного элементарного типа данных используйте MOVE
• Для копирования массива данных элементарного типа используйте MOVE_BLK или
UMOVE_BLK
• Для копирования структуры используйте MOVE
• Для копирования строки используйте S_CONV
• Для копирования отдельного символа в строке используйте MOVE
• Команды MOVE_BLK и UMOVE_BLK не могут использоваться для копирования массивов или структур в области памяти I, Q или M.
Команда MOVE копирует отдельный элемент данных из исходного адреса, указанного в параметре IN, в целевой адрес, определяемый параметром OUT.
Команды MOVE_BLK и UMOVE_BLK имеют дополнительный параметр COUNT.
COUNT определяет, сколько элементов данных копируется. Число байтов на копируемый элемент зависит от типа данных, назначенных именам переменных параметров IN и OUT в таблице переменных ПЛК.
Команды MOVE_BLK и UMOVE_BLK отличаются друг от друга способом обработки прерываний:
● Во время исполнения MOVE_BLK прерывающие события ставятся в очередь и
обрабатываются. Используйте команду MOVE_BLK, если данные по адресу назначения передачи не используются в подпрограмме внутри OB прерываний или, если используются, то целевые данные не обязательно должны быть согласованными. Если операция MOVE_BLK прерывается, то последний переданный элемент данных полностью и непротиворечиво находится по целевому адресу. Операция MOVE_BLK возобновляется по окончании исполнения OB прерываний.
● Прерывания ставятся в очередь, но не обрабатываются, пока не завершится исполнение UMOVE_BLK. Используйте команду UMOVE_BLK, если операция передачи должна быть завершена, а целевые данные непротиворечивы, до исполнения подпрограммы OB прерываний. Дополнительную информацию вы найдете в разделе о согласованности данных (стр. 96).
После выполнения команды MOVE параметр ENO всегда принимает значение
ИСТИНА.
Состояние
ENO
Условие
Результат
1
Нет ошибки
Все COUNT элементов успешно скопированы
0
Исходная область (IN) или целевая область (OUT) превышает имеющуюся в распоряжении область памяти
Подходящие по размеру имеющейся памяти элементы копируются. Часть элементов не копируется.

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200 138
Системное руководство, 11/2009, A5E02669003-02
Команды заполнения
Команды FILL_BLK и UFILL_BLK используются следующим образом:
• FILL_BLK:
Команда прерываемого заполнения заполняет определенный диапазон адресов копиями заданного элемента данных.
• UFILL_BLK:
Команда непрерываемого заполнения заполняет определенный диапазон адресов копиями заданного элемента данных.
Параметр Тип данных
Описание
IN
SInt, Int, DIntT, USInt, UInt, UDInt, Real, BYTE,
Word, DWord
Адрес источника данных
COUNT USInt,
UInt
Количество элементов данных, подлежащих копированию
OUT
SInt, Int, DIntT, USInt, UInt, UDInt, Real, BYTE,
Word, DWord
Целевой адрес для данных
Указание
Правила для операций заполнения
• Для заполнения данными типа BOOL используйте SET_BF, RESET_BF, R, S или выходную катушку (LAD)
• Для заполнения отдельным элементарным типом данных используйте MOVE
• Для заполнения массива элементарного типа данных используйте FILL_BLK или
UFILL_BLK
• Для заполнения отдельного символа в строке используйте MOVE
• Команды FILL_BLK и UFILL_BLK не могут использоваться для заполнения массивов в областях памяти I, Q или M.

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200
Системное руководство, 11/2009, A5E02669003-02 139
С помощью команд FILL_BLK и UFILL_BLK элемент данных источника IN копируется в место назначения, причем начальный адрес этого места определяется параметром
OUT. Процесс копирования и заполнения соседних адресов продолжается до тех пор, пока количество копий не будет равно параметру COUNT.
Команды FILL_BLK и UFILL_BLK отличаются друг от друга способом обработки прерываний:
● Во время исполнения FILL_BLK прерывающие события ставятся в очередь и
обрабатываются. Используйте команду FILL_BLK, если данные по адресу назначения не используются в подпрограмме внутри OB прерываний или, если используются, то целевые данные не обязательно должны быть согласованными.
● Прерывания ставятся в очередь, но не обрабатываются, пока не завершится исполнение UFILL_BLK. Используйте команду UFILL_BLK, если операция заполнения должна быть завершена, а целевые данные непротиворечивы, до исполнения подпрограммы OB прерываний.
Состояние
ENO
Условие
Результат
1
Нет ошибки
Элемент IN был успешно скопирован во все COUNT целевых адресов
0
Целевая область (OUT) превышает доступную область памяти
Подходящие по размеру имеющейся памяти элементы копируются. Часть элементов не копируется.

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200 140
Системное руководство, 11/2009, A5E02669003-02
6.1.6.1
Команда Swap (обмен байтов)
Команда SWAP используется для изменения порядка следования байтов в 2-байтовых и 4-байтовых элементах данных. Внутри каждого байта порядок битов не меняется. После выполнения команды SWAP параметр ENO всегда принимает значение ИСТИНА.
Щелкните под именем блока и выберите тип данных из ниспадающего меню.
Параметр
Тип данных
Описание
IN Word,
DWord
Нормально расположенные байты данных в параметре IN
OUT Word,
DWord
Измененный порядок расположения байтов в параметре OUT
Пример: Параметр IN = MB0
Перед выполнением SWAP
Пример: Параметр OUT = MB4,
После выполнения SWAP
Адрес MB0
MB1
MB4 MB5
W#16#1234
WORD
12
MSB
34
LSB
34
MSB
12
LSB
Адрес MB0
MB1 MB2 MB3 MB4
MB5 MB6
MB7
DW#16#
12345678
DWORD
12
MSB
34 56 78
LSB
78
MSB
56 34 12
LSB

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200
Системное руководство, 11/2009, A5E02669003-02 141
6.1.7
Преобразование
Команда преобразования
Команда CONVERT преобразует элемент данных из одного типа данных в другой. Щелкните под именем блока, а затем выберите типы данных для IN и OUT из ниспадающего списка.
После выбора типа данных источника (преобразовать из) в ниспадающем списке отображаются возможные преобразования (преобразовать в). Преобразования из и в
BCD16 ограничены типом данных Int. Преобразования из и в BCD32 ограничены типом данных DInt.
Щелкните под именем блока и выберите типы данных из ниспадающих меню.
Параметр Тип данных
Описание
IN
SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord,
Real, LReal, Bcd16, Bcd32
Значение IN
OUT
SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord,
Real, LReal, Bcd16, Bcd32
Значение IN, преобразованное в новый тип данных
Состояние
ENO
Описание
Результат OUT
1
Нет ошибки
Допустимый результат
0 IN равно +/- INF или +/- NaN
+/- INF или +/- NaN
0
Результат выходит за пределы допустимого диапазона для типа данных
OUT
OUT устанавливается на значение, записанное в младшем байте IN

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200 142
Системное руководство, 11/2009, A5E02669003-02
Команды Round и Truncate
ROUND преобразует вещественное число в целое. Дробная часть вещественного числа округляется до ближайшего целого (IEEE – округление до ближайшего). Если вещественное число находится точно между двумя целыми (напр., 10.5), то вещественное число округляется до четного числа. Например, ROUND (10.5) = 10 или
ROUND (11.5) = 12.
TRUNC преобразует вещественное число в целое. Дробная часть вещественного числа отбрасывается (IEEE – округление до нуля).
Параметр
Тип данных
Описание
IN Real,
LReal
Вход для числа с плавающей точкой
OUT
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal
Округленный или целочисленный выход
Состояние
ENO
Описание
Результат OUT
1
Нет ошибки
Допустимый результат
0 IN равно +/- INF или +/- NaN
+/- INF или +/- NaN
Команды получения из вещественного числа ближайшего большего или ближайшего
меньшего целого числа
Команда CEIL (от ceiling – потолок) преобразует вещественное число в наименьшее целое число, большее или равное вещественному числу (IEEE – округление до + бесконечности).
FLOOR (floor = пол) преобразует вещественное число в наибольшее целое число, не превышающее этого вещественного числа (IEEE – округление до – бесконечности).
Параметр
Тип данных
Описание
IN Real,
LReal
Вход для числа с плавающей точкой
OUT
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal
Преобразованный выход
Состояние
ENO
Описание
Результат OUT
1
Нет ошибки
Допустимый результат
0 IN равно +/- INF или +/- NaN
+/- INF или +/- NaN

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200
Системное руководство, 11/2009, A5E02669003-02 143
6.1.7.1
Команды масштабирования и нормализации
Команды масштабирования и нормализации
SCALE_X масштабирует нормализованный вещественный параметр
VALUE, где (0,0 <= VALUE <= 1,0), в тип данных и диапазон значений, указанные в параметрах MIN и MAX:
OUT = VALUE (MAX – MIN) + MIN
Для команды SCALE_X параметры MIN, MAX и OUT должны относиться к одному и тому же типу данных.
NORM_X нормализует параметр VALUE внутри диапазона значений, указанного в параметрах MIN и MAX:
OUT = (VALUE – MIN) / (MAX – MIN), где (0,0 <= OUT <= 1,0)
Для команды NORM_X параметры MIN, VALUE и MAX должны относиться к одному и тому же типу данных.
Щелкните под именем блока и выберите тип данных из ниспадающего меню.
Параметр
Тип данных
Описание
MIN
SInt, Int, DInt, USInt, UInt, UDInt, Real
Вход для минимального значения диапазона
VALUE SCALE_X:
Real
NORM_X: SInt, Int, DInt, USInt, UInt, UDInt, Real
Входное значение для масштабирования или нормализации
MAX
SInt, Int, DInt, USInt, UInt, UDInt, Real
Вход для максимального значения диапазона
OUT
SCALE_X: SInt, Int, DInt, USInt, UInt, UDInt,
Real
NORM_X: Real
Масштабированное или нормализованное выходное значение
Указание
Параметр VALUE команды SCALE_X должен находиться в диапазоне значений
(0,0 <= VALUE <= 1,0)
Если параметр VALUE выходит за пределы этого диапазона, то:
• операция линейного масштабирования может выдавать значения OUT, меньшие параметра MIN или превышающие параметр MAX для значений OUT, находящихся внутри диапазона значений для типа данных OUT. Для этих случаев исполнение команды SCALE_X устанавливает ENO = ИСТИНА.
• возможно генерирование масштабированных чисел, которые не находятся в диапазоне допустимых значений для типа данных OUT. Тогда параметр OUT устанавливается на промежуточное значение, равное наименее значимой части масштабированного вещественного числа перед окончательным преобразованием в тип данных OUT. Для этих случаев исполнение команды SCALE_X устанавливает
ENO = ЛОЖЬ.
Параметр VALUE команды NORM_X должен находиться в диапазоне значений
(MIN <= VALUE <= MAX)
Если параметр VALUE меньше, чем MIN, или больше, чем MAX, то операция линейного масштабирования может выдавать нормализованные значения OUT, меньшие 0.0 или большие 1.0. В этом случае исполнение команды NORM_X устанавливает ENO = ИСТИНА.

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200 144
Системное руководство, 11/2009, A5E02669003-02
Состояние
ENO
Условие
Результат OUT
1
Нет ошибки
Допустимый результат
0
Результат выходит за пределы допустимого диапазона для типа данных
OUT
Промежуточный результат: Наименее значимая часть вещественного числа перед окончательным преобразованием в тип данных
OUT.
0
Параметр MAX <= MIN
SCALE_X: Наименее значимая часть вещественного числа VALUE, которой заполняется участок памяти, отводимый под
OUT.
NORM_X: значение VALUE в типе данных VALUE, расширенное для заполнения участка памяти размером в двойное слово.
0
Параметр VALUE = +/- INF или +/- NaN
VALUE записывается в OUT
6.1.8
Управление программой
Команды перехода и метки перехода
Команды управления программой используются для воздействия на последовательность исполнения программы в зависимости от тех или иных условий:
JMP: Если имеется поток сигнала к катушке JMP (LAD), или если вход блока JMP принимает значение ИСТИНА
(FBD), то исполнение программы продолжается с первой команды после указанной метки.
JMPN: Если отсутствует поток сигнала к катушке JMP
(LAD), или если вход блока JMP принимает значение
ЛОЖЬ (FBD), то исполнение программы продолжается с первой команды после указанной метки.
LAD
FBD
LABEL [Метка]: Метка места назначения для команды перехода JMP или JMPN.
Параметр
Тип данных
Описание
Label_name
Идентификатор метки Идентификатор для команд перехода и соответствующая метка места перехода
Имена меток создаются непосредственным вводом команды LABEL. Имеющиеся в распоряжении имена меток для поля с именами меток перехода команд JMP и JMPN можно выбрать с помощью символа поддержки параметра. Вы можете также непосредственно впечатать имя метки в команду JMP или JMPN.

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200
Системное руководство, 11/2009, A5E02669003-02 145
Команда управления исполнением программы Return_Value [Возвращаемое значение]
(RET)
LAD
FBD
Команда RET используется для завершения исполнения текущего блока.
Параметр
Тип
данных
Описание
Return_Value Bool
Параметр "Return_value" команды RET назначается выходу ENO вызываемого блока в вызывающем блоке.
Необязательная команда RET используется для завершения исполнения текущего блока. В том и только в том случае, если имеет место поток сигнала к катушке RET
(LAD) или если вход блока RET принимает значение ИСТИНА (FBD), то исполнение программы текущего блока завершается в этом месте и команды, следующие за командой RET, не исполняются. Если текущий блок является OB, то параметр "Return_Value" игнорируется. Если текущий блок является FC или FB, то значение параметра "Return_Value " передается обратно в вызывающую программу как значение ENO вызываемого блока.
У вас нет необходимости вставлять RET в качестве последней команды в блоке; это происходит автоматически. Вы можете вставить несколько команд RET в один и тот же блок.
Образцы шагов для использования команды RET внутри кодового блока FC:
1. Создайте новый проект и вставьте FC:
2. Редактируйте FC:
– Вставляйте команды из каталога команд.
– Вставьте команду RET, включая один из следующих элементов для параметра "Return_Value":
TRUE (ИСТИНА), FALSE (ЛОЖЬ) или адрес в памяти, который указывает требуемое возвращаемое значение.
– Вставляйте следующие команды.
3. Вызовите FC из MAIN [OB1].
Вход EN блока FC в кодовом блоке MAIN должен принять значение ИСТИНА, чтобы начать исполнение FC.
Значение, определяемое командой RET в FC, будет находиться на выходе ENO блока
FC в кодовом блоке MAIN после исполнения блока FC, для которого поток сигнала к команде RET принял значение ИСТИНА.

Руководство по программированию
6.1 Основные команды
Программируемый контроллер S7-1200 146
Системное руководство, 11/2009, A5E02669003-02
1   ...   11   12   13   14   15   16   17   18   ...   40


написать администратору сайта