This is topic IL FBD in forum TRACE MODE 5 бесплатная версия / TRACE MODE 5 Free version at Форум TRACE MODE: техническая поддержка.


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

Posted by СТУДЕНТ (Участник № / Member № 345) on :
 
1_Имеется такой фрагмент программы:
IF
I0 > 12
THEN
F1 = 12
END_IF
IF
I0 <= 12
I0 >= 10
THEN
F1 = 11
END_IF
Q0 = F1
EXIT
Даю на I0 13 ответ 12, даю 10 ответ 11, а если дать на I0 12 получется 12 т.е. не выполняется второе IF. почему и как быть если очень надо?
2_Если создать такой блок отдельно то первое условие никогда не выполняется.Рассуждая с точки зрения языков программирования высокого уровня все должно работать.Что за хитрость таится в IL c операторами условного перехода(может я не правильно использую переменные).В хелпе написано что максимум 254 оператора и вложенных неограничено. Если не разобратся при каких условиях они корректно работают, то такого можно наколбасить что уйдет уйма времени чтобы разобраться!
3_Пожелание.Неплохо было бы иметь что-то вроде дебагера
для быстрой отладки IL программы, а то очень долгая процедура выполнять отладку в FBD возвращяться в IL и тд.
Спасибо.
 
Posted by electropribor (Участник № / Member № 122) on :
 
Здесь такая фишка: во фрагменте
IF
I0 <= 12
I0 >= 10
THEN
F1 = 11
END_IF
срабатывает только условие I0 >= 10. Точнее, первое условие тоже будет проверено, т.е. выставлен флаг CMP, но при проверке второго условия это значение будет затёрто результатом второго сравнения [Неодобрение / Frown]
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2