Показано с 1 по 6 из 6

Тема: Индексирование системных переменных

  1. #1

    По умолчанию Индексирование системных переменных

    Уважаемые господа! Есть ли возможность присваивать имена системных переменных как элемент массива?
    Когда много МДВВ и используются запись/чтение по маске, то кожется резонным обращаться с ними, как элементами массива - программы получаются более универсальными и структурированными

  2. #2
    Пользователь
    Регистрация
    10.01.2007
    Адрес
    Красноярск
    Сообщений
    138

    По умолчанию

    А если ,например, вот так:
    InReg AT %IW8.1.0.0: ARRAY [1..4] OF WORD;
    OutReg AT %QW8.1.4.0: ARRAY [1..4] OF WORD;

    Сам раньше делал обращение через указатель, попробовал такую запись, вроде получается для последовательности регистров одного устройства!
    Но если создать тип данных в точности повторяющий распределение для нескольких устройств и сделать массив из этого типа данных, то должно получиться для нескольких устройств.
    Последний раз редактировалось SergeyNG; 17.03.2009 в 19:10.

  3. #3
    Пользователь
    Регистрация
    10.01.2007
    Адрес
    Красноярск
    Сообщений
    138

    По умолчанию

    Не получится в одном типе данных указывать и входные переменные и выходные, они располагаются в памяти не в перемешку, а раздельно. Поэтому если в устройстве есть и входные и выходные переменные придется делать отдельно массив для входных и отдельно для выходных

  4. #4

    По умолчанию

    1. Создайте массивы указателей на переменные.
    2. Проинициализируйте их по адресам переменных мастеров командой ADR()
    3. Обращайтесь по индексам массивов.

    К сожалению, это не автоматизируешь...

  5. #5

    По умолчанию

    Альтернативно:
    Поименуйте переменные мастеров как var001,var002 и т.д.
    И обращайтесь к ним по имени через библиотеку SymLib.lib

  6. #6

    По умолчанию

    Спасибо, буду пробовать.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •