а куда присылать? версия :3.7.0.51942
Вид для печати
а куда присылать? версия :3.7.0.51942
Только что создал новый проект, там такого не наблюдаю, тогда другой вопрос, в скаде 3.6 такая ошибка присутствовала? Может ли повлиять то, что проект я создавал на основе ранее созданного проекта в версии 3.6? Если такое возможно... то как тогда быть? могу ли я безболезненно переместить проект в чистый только что созданный 3.7, со всеми связями, разумеется и с теме которые на мнемосхеме?
Можно попробовать.
Сначала добавьте дерево системы. Затем скопируйте все элементы дерева объектов из старого проекта и вставьте в новый - появится окно восстановления внешних связей, если в дереве системы имя компьютера, ОРС сервера и тегов будут такими же то все связи восстановятся.
Уважаемый SCADAMaster, как я считаю, проблему я нашел. Но все по порядку. Заранее извиняюсь за русский язык и знаки препинания.
Весь путь до стабильной работы программы занял 35 часов. Пробовал все что только можно, и последовал вашему совету вставить дерево объекта в новый проект.
Сначала обрадовался, программа дала возможность заходить в ST код, но через раз, в 2 кода зайдет, на 3 ошибка, или сразу вылетала ошибка, и удаляла все входы, выходы. Пока разбирался, заметил одну странность:
Как мы помним при создании функций в библиотеки после компиляции, появляется маленький "+" напротив слова функции, при раскрытии которого, мы видим названия наших функций,щелкая по которым видим входы. Так вот, весь мой список ФБ и Функций вдруг перестал отображаться (пропали "+"). Методом исключения каждой функции из библиотеки, добился того что "+" появился. Всему виной стала безобидная функция:
FUNCTION ustSRDl : bool
VAR_INPUT
ust: REAL;
delta: REAL;
curr: REAL;
rez_old: BOOL;
END_VAR
VAR
dn:REAL;
lim_min: REAL;
lim_max: REAL;
rez: BOOL;
END_VAR
dn:=(delta/2);
lim_min:=(ust-dn);
lim_max:=ust+dn;
IF curr<lim_min THEN rez:=TRUE;
ELSIF curr>=lim_max THEN rez:=FALSE;
ELSE rez:=rez_old;
END_IF;
ustSrdl:=NOT rez;
END_FUNCTION
Красным выделены строчки которые и прячут "+". После их удаления проект заработал стабильно, ST коды открываются без ошибок, переменные не исчезают.
Огромная к Вам просьба, попробуйте вставить данную функцию в созданную библиотеку, далее перейдите на любую другую вкладку, затем вернитесь, и посмотрите пожалуйста, у Вас "+" остался? или исчез? Вложение 24126Вложение 24127Вложение 24128
У нас данный код вообще не компилируется.
IF curr
при этом curr у вас тип Real, а не Bool
и где Then после curr?
Обрезается, когда просто вставляю в сообщение
Цитата:
FUNCTION ustSRDl : bool
VAR_INPUT
ust: REAL;
delta: REAL;
curr: REAL;
rez_old: BOOL;
END_VAR
VAR
dn:REAL;
lim_min: REAL;
lim_max: REAL;
rez: BOOL;
END_VAR
dn:=(delta/2);
lim_min:=(ust-dn);
lim_max:=ust+dn;
IF curr < lim_min THEN rez:=TRUE;
ELSIF curr >= lim_max THEN rez:=FALSE;
ELSE rez:=rez_old;
END_IF;
ustSrdl:=NOT rez;
END_FUNCTION
Проблема с пропаданием значка "плюс" проявилась - мы передали информацию программистам. Проблема с пропаданием входов и выходов не проявилась - пришлите ваш проект, мы попробуем проверить на нем.
Подскажите, куда высылать проект, и есть ли у Вас возможность оповестить меня, о решении проблемы с "+"?
Проект можете выложить сюда или выслать на support. Когда проблема будет решена - мы сообщим.
Вот. Кстати от состояния плюсика проблема не ушла. заново появилась, после закрытия-открытия проекта. Во вложенном проекте при заходе в ST появляется ошибка, переменные исчезают. Если в ФБ вернуть трем определенным переменным нужный ТИП, ошибка пропадает.... Жду результатов. Спасибо за помощь.