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


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

Posted by electropribor (Участник № / Member № 122) on :
 
Пример функционального блока:
#DEFINE I0 M1
CALL TEST 0 ( M1 , 3 , Q0 )
В результате его добавления получаем функциональный блок с одним входом ( RUN ) и одним выходом, который называется M1 (?)
Судя по справочной системе, этот пример корректен, но неправильно компилируется.
Если его слегка переделать
#DEFINE I0 M1
F0 = M1
CALL TEST 0 ( M1 , 3 , Q0 )
то сразу появляется потерянный вход.
Если поменять переменную M1 на V1, то получим следующий результат:
#DEFINE I0 V1
F0 = V1
CALL TEST 0 ( V1 , 3 , Q0 )
Дамп:
01 05[0] 01[1] : = F0 V1
(ERR8)Имя не найдено:V1
То есть выражение F0 = V1 компилятор понял, а при вызове блока он не смог найти переменную V1.
Эта ошибка наблюдается для переменных, которые начинаются с буквы V и некоторых других.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В приводимых Вами текстах IL-программ содержится общая синтаксическая ошибка:
после имени параметра (M1 и V1) в операторе CALL имеется пробел перед разделяющей запятой. Он будет отнесен к имени переменной. Поэтому она и не находится.
Я убрал этот пробел и проверил как трансляцию блока, так и его функционирование. Все работает правильно.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2