This is topic Глобальные аргументы из функций in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/000603.html

Posted by Поляков Илья (Участник № / Member № 3358) on :
 
Так понимаю, что нельзя из функций обращаться к глобальным аргументам?

Есть код вида

case fld_i of
1: arg_001:=tmp_val;
2: arg_002:=tmp_val;
3: arg_003:=tmp_val;
...
191: arg_191:=tmp_val;
192: arg_192:=tmp_val;
end_case;

Т.е. значение аргументов переписывается из tmp_val, номер обновляемого аргумента определяется fld_i.

Хотелось бы как то скрывать такие большие куски из основного цикла программы, дабы улучшать читаемость кода.

Предполагал упаковывать это в функцию, но не получается, требуется создание огромного количества аргументов у функции, если не использовать обращения к глобальным аргументам прямо из тела функции.

Хотелось бы услышать Ваше мнение, относительно технологии программирования в описаном случае.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Глобальные переменные могут использоваться в любом месте программы, в том числе и в функции.
 
Posted by Поляков Илья (Участник № / Member № 3358) on :
 
Переменные ДА, а АРГУМЕНТЫ нет! Я то про аргуметы толкую...
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Словом глобальные Вы ввели нас немного в заблуждение. С аргументами самой программы функция не работает. Поэтому создание функции в Вашем случае нецелесообразно.

Насколько мы поняли все 192 аргумента являются выходными в зависимости от канала, в который нужно отправлять значение. Возможно легче будет напрямую работать с каналами с помощью функций setAttribute. В этом случае возможна работа с индексами.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2