Просмотр полной версии : Индексирование системных переменных
Назаров Александр
17.03.2009, 18:16
Уважаемые господа! Есть ли возможность присваивать имена системных переменных как элемент массива?
Когда много МДВВ и используются запись/чтение по маске, то кожется резонным обращаться с ними, как элементами массива - программы получаются более универсальными и структурированными:)
SergeyNG
17.03.2009, 19:04
А если ,например, вот так:
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:36
Не получится в одном типе данных указывать и входные переменные и выходные, они располагаются в памяти не в перемешку, а раздельно. Поэтому если в устройстве есть и входные и выходные переменные придется делать отдельно массив для входных и отдельно для выходных
Филоненко Владислав
17.03.2009, 19:47
1. Создайте массивы указателей на переменные.
2. Проинициализируйте их по адресам переменных мастеров командой ADR()
3. Обращайтесь по индексам массивов.
К сожалению, это не автоматизируешь...
Филоненко Владислав
17.03.2009, 19:48
Альтернативно:
Поименуйте переменные мастеров как var001,var002 и т.д.
И обращайтесь к ним по имени через библиотеку SymLib.lib
Назаров Александр
18.03.2009, 11:30
Спасибо, буду пробовать.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot