Адресация регистров в ПЛК Mitsubishi (SCL, ST): методы и примеры кода

Адресация регистров в программировании ПЛК Mitsubishi относится к методу доступа и манипулирования данными в определенных областях памяти, известных как регистры. В языке структурированного управления (SCL) и структурированном тексте (ST) существует несколько методов адресации регистров. Вот некоторые часто используемые методы с примерами кода:

  1. Абсолютная адресация:
    Этот метод напрямую определяет адрес памяти регистра.

    Пример:

    M800 := 1; // Sets the value 1 to the M800 register
  2. Символическая адресация.
    Этот метод использует предопределенные символы или переменные для представления адресов памяти.

    Пример:

    VAR
     motorStatus: BOOL; // Symbolic variable declaration
    
    motorStatus := M801; // Reads the value of M801 and assigns it to motorStatus
  3. Индексная адресация:
    Этот метод позволяет получать доступ к регистрам с использованием индекса или значения смещения.

    Пример:

    VAR
     i: INT := 1; // Index variable
    
    M810[i] := 1; // Sets the value 1 to the register at M810 + i
  4. Непрямая адресация.
    Этот метод использует указатель или косвенную ссылку для доступа к регистрам.

    Пример:

    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
  5. Относительная адресация.
    Этот метод осуществляет доступ к регистрам относительно базового адреса или контрольной точки.

    Пример:

    VAR
     base: INT := 1000; // Base address
    
    M840 := base + 10; // Sets the value 10 to the register at base + 10
  6. Адресация массива:
    Этот метод позволяет получить доступ к нескольким регистрам как к массиву.

    Пример:

    VAR
     motorStatus: ARRAY[0..3] OF BOOL; // Array declaration
    
    motorStatus[0] := TRUE; // Sets the value TRUE to the first register in the array