CODESYS форум

Добро пожаловать на официальный форум CODESYS
Deutsche Version English version russian version 
Текущее время: Чт ноя 23, 2017 2:35 am

Часовой пояс: UTC+01:00




Начать новую тему  Ответить на тему  [ 3 сообщения ] 
Автор Сообщение
СообщениеДобавлено: Ср июл 23, 2014 4:45 pm 
Не в сети

Зарегистрирован: Пн мар 07, 2011 2:53 pm
Сообщения: 3
Привет всем. Нуждаюсь в вашей помощи.
Каким образом мне в подпрограмме собрать ДИНАМИЧЕСКИ имя переменной. Например в PHP я могу слепить имя переменной из двух строк, а потом тому что получилось присвоить значение.

Например:

Я назвал физический выход контроллера как DigitalOut1

Вложение:
Снимок.JPG
Снимок.JPG [ 9.72 КБ | 2351 просмотр ]



Потом в подпрограмму я отправляю две строки. Первая -DigitalOut, вторая - 1.

В подпрограмме я склеиваю эти строки

VarSTRING := CONCAT ('DigitalOut','1');

и в переменной VarSTRING, я получил строку - DigitalOut1.

Как в данном случае, после склеивания мне задать DigitalOut1:=true; ?


Спасибо.


Вложения:
Снимок.JPG
Снимок.JPG [ 9.72 КБ | 2351 просмотр ]
Вернуться к началу
СообщениеДобавлено: Чт июл 24, 2014 9:55 am 
Не в сети
Site Admin

Зарегистрирован: Ср июл 20, 2005 2:32 pm
Сообщения: 153
Это принципиально невозможно. Задача решается иначе.

CODESYS компилятор, как Си, Паскаль и др. Соответственно, в контроллер передается только быстрый и компактный машинный код. В машинном коде непосредственно вшиты адреса переменных. Имена переменных есть только в исходном тексте, для человека. В машинный код они не попадают принципиально. Быстрый косвенный доступ к переменным обеспечивают указатели. Дополнительно в МЭК средах есть прямые адреса для области входов/выходов.

В интерпретирующем PHP указателей не существует. Для обхода этого ограничения придуман данный трюк с именами.


Вернуться к началу
СообщениеДобавлено: Чт июл 24, 2014 6:42 pm 
Не в сети

Зарегистрирован: Пн мар 07, 2011 2:53 pm
Сообщения: 3
Спасибо за ответ,

Жаль что невозможно, было бы очень удобно.

А с указателями что можно придумать?


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 3 сообщения ] 

Часовой пояс: UTC+01:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB