This is topic Вызов функции в программе in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.


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

Posted by Grigorovskih (Участник № / Member № 1915) on :
 
При создании функции в программе мы, по идее,
можем вызывать эту функцию сколь угодно раз
передавая и получая через ее аргументы значения.
Реально так не работает! Почему то при
использовании (вызове) функции для выходных
аргументов программы, в которые эта функция
передаёт расчитанные ею значения, при её вызове,
во все указанные аргументы разом! И чтоб этого
избежать приходится создавать несколько функций
с идентичным телом но с разными названиями!
Хотя эта функция вызывается в программе
последовательно и с разными "привязанными"
аргументами, значения выходных
аргументов "попадают" на все аргументы в которые
эта функция передаёт выходное значение во всех
последующих вызовах. Т.е. стоит предать значения
входным аргументам функции в одном из вызовов как
сразу эта функция "раздаёт" всем аргументам
в других вызовах этой функции!!!

Господа - это противоречит всем канонам программирования!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Из документации:
"Следующие функции (функции-блоки) могут быть вызваны в основной программе только однократно:
содержащие глобальные переменные программы;
содержащие FBD-блоки с внутренними переменными (см. Редактирование FBD-программ ).
Другие функции могут вызываться в основной программе многократно."

В Вашей программе используются FBD-блоки с внутренними переменными (триггеры и счетчики).
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2