Адресация регистров в программировании ПЛК Mitsubishi относится к методу доступа и манипулирования данными в определенных областях памяти, известных как регистры. В языке структурированного управления (SCL) и структурированном тексте (ST) существует несколько методов адресации регистров. Вот некоторые часто используемые методы с примерами кода:
-
Абсолютная адресация:
Этот метод напрямую определяет адрес памяти регистра.Пример:
M800 := 1; // Sets the value 1 to the M800 register -
Символическая адресация.
Этот метод использует предопределенные символы или переменные для представления адресов памяти.Пример:
VAR motorStatus: BOOL; // Symbolic variable declaration motorStatus := M801; // Reads the value of M801 and assigns it to motorStatus -
Индексная адресация:
Этот метод позволяет получать доступ к регистрам с использованием индекса или значения смещения.Пример:
VAR i: INT := 1; // Index variable M810[i] := 1; // Sets the value 1 to the register at M810 + i -
Непрямая адресация.
Этот метод использует указатель или косвенную ссылку для доступа к регистрам.Пример:
VAR addr: POINTER TO BOOL; // Pointer variable addr := ADR(M820); // Assigns the address of M820 to addr addr^ := TRUE; // Sets the value TRUE to the register pointed by addr -
Относительная адресация.
Этот метод осуществляет доступ к регистрам относительно базового адреса или контрольной точки.Пример:
VAR base: INT := 1000; // Base address M840 := base + 10; // Sets the value 10 to the register at base + 10 -
Адресация массива:
Этот метод позволяет получить доступ к нескольким регистрам как к массиву.Пример:
VAR motorStatus: ARRAY[0..3] OF BOOL; // Array declaration motorStatus[0] := TRUE; // Sets the value TRUE to the first register in the array