Приложение
Программирование в Step7 Lite V.2.0
A-56 A5E00142284-01
Пример перекрестной адресации
При перекрестной адресации указатель содержит обоначение области
памяти (в примере - I и Q).
L P# I8.7 Загрузка значения указателя и обозначения
области в аккумулятор 1.
LAR1 Загрузка области памяти I и адреса 8.7 в AR1.
L P# Q8.7 Загрузка значения указателя и обозначения
области в аккумулятор 1.
LAR2 Загрузка области памяти Q и адреса 8.7 в AR2.
A [AR1, P#0.0] Запрос состояния сигнала из входного бита I 8.7 и
= [AR2, P#1.1] присвоение выходному биту Q 8.7.
Смещение 0.0 ни на что не влияет. Выход 10.0, вычисляется как 8.7 (AR2)
плюс смещение 1.1. Результат равен 10.0 а не 9.8 (см. формат указателя).
A.3.4.4 Блок для изменения указателя
С помощью типового блока FC3 "Маршрутизация указателей" можно
изменить бит или адрес байта указателя. Указатель, который будет
изменен, передается переменной типа "pointer [указатель]" при вызове FC
(могут использоваться внутренние и перекрестные указатели в формате
двойного слова).
Параметр “ Bit-Byte [Бит-байт]” позволяет изменять бит или адрес байта
указателя (0: адрес бита, 1: адрес байта). Переменная "Inc_Value" (в
формате Integer [целое]) определяет число, которое должно быть
прибавлено или вычтено из содержимого адреса. Чтобы уменьшить
адрес, можно использовать и отрицательные числа.
При изменении битового адреса происходит перенос через байтовый
адрес (также и при уменьшении), например:
• P#M 5.3, Bit_Byte = 0, Inc_Value = 6 => P#M 6.1 или
• P#M 5.3, Bit_Byte = 0, Inc_Value = -6 => P#M 4.5.
Функция не влияет на информацию об области указателя.
FC не допускает переполнение/антипереполнение указателя. В случае
переполнения или антипереполнения указатель не изменяется, а
выходная переменная "RET_VAL" (возможна обработка ошибок)
установлена в "1" (до сл едующего правильного выполнения FC3). Это
имеет место, когда:
• 1. Выбран битовый адрес и Inc_Value > 7, или < -7
• 2. Выбран битовый или байт овый адрес и изменение привело бы к
"отрицательному" адресу байта
• 3. Выбран битовый или байт овый адрес и изменение привело бы к
недопустимо большому адресу байта