Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Языки программирования в TRACE MODE 6 / Algorithm Programming Languages » Странности с типом STRING

   
Автор / Author Тема / Topic: Странности с типом STRING
AUGUST
Junior Member / Новичок
Участник № / Member № 2699


Icon 4 отправлено / posted      Профиль для / Profile for AUGUST           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Вот программка для примера:

PROGRAM
VAR_OUTPUT ARG_000 : INT; END_VAR
VAR VAR_000 : STRING; END_VAR

VAR_000 = "ABCD";
if (VAR_000 == "ABCD") then
ARG_000 = 100;
end_if;

END_PROGRAM

Почему программа не попадает внутрь блока IF?

Сообщения / Posts 19 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AUGUST
Junior Member / Новичок
Участник № / Member № 2699


Icon 1 отправлено / posted      Профиль для / Profile for AUGUST           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В догонку:

В таком виде работает (операцию == поменял на >=):
VAR_000 = "ABCD";
if (VAR_000 >= "ABCD") then
ARG_000 = 100;
end_if;

И в таком:
VAR_000 = "AB";
if (VAR_000 >= "ABCD") then
ARG_000 = 100;
end_if;

И даже в таком:
VAR_000 = "";
if (VAR_000 >= "ABCD") then
ARG_000 = 100;
end_if;

Сообщения / Posts 19 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
##
Операторы сравнения строковых переменных работают некорректно.
Решения по этому вопросу будут приняты в следующем релизе.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915


Icon 1 отправлено / posted      Профиль для / Profile for Grigorovskih           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте Господа!

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

Проверьте пожалуйста в чём дело!

Сообщения / Posts 362 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ошибка происходит при задании начальных значений. Это будет исправляться.
Если просто описать массив с пустыми ячейками, то все работает корректно.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915


Icon 1 отправлено / posted      Профиль для / Profile for Grigorovskih           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Не только на стадии задания начальных значений!
Если "просто описать массив" а потом его заполнять, то опять же проявляются ошибки.
В релизе 6.06 это исправлено?

Сообщения / Posts 362 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ошибок при заполнении ошибок у нас не было в релизе 6.05.1. Пришлите, пожалуйста, примерчик, когда появляются ошибки при записи данных в пустой массив.
Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915


Icon 1 отправлено / posted      Профиль для / Profile for Grigorovskih           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Отправил, смотрите...
Сообщения / Posts 362 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Аналогичный проект с массивом из 5 строк работает. Из 6 уже нет. Будем разбираться.
Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915


Icon 1 отправлено / posted      Профиль для / Profile for Grigorovskih           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Хорошо!
Сообщения / Posts 362 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
VAR CH: array [9] of USINT:=1,1,0,1,1,1,0,1,0,1,0; end_var
if CH_err then
for i=0 to 8 do
if CH[i] then GVAR_000[i]='c'; else GVAR_000[i]='d'; end_if;
end_for;
ARG_001 = GVAR_000[0]+GVAR_000[1]+GVAR_000[2]+GVAR_000[3]+GVAR_000[4]+GVAR_000[5]+GVAR_000[6]+GVAR_000[7]+GVAR_001[8];
end_if;
if CH_err then
for i=0 to 8 do
if CH[i] then GVAR_001[i]='a'; else GVAR_001[i]='b'; end_if;
end_for;
ARG_001 = GVAR_001[0]+GVAR_001[1]+GVAR_001[2]+GVAR_001[3]+GVAR_001[4]+GVAR_001[5]+GVAR_001[6]+GVAR_001[7]+GVAR_001[8];
end_if;

Вот такая программка работает. Возможно дело было в преобразовании типов.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306


Icon 1 отправлено / posted      Профиль для / Profile for drooha           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
PROGRAM
VAR_OUTPUT ARG_000 : INT; END_VAR
VAR VAR_000 : STRING; END_VAR

VAR_000 = "ABCD";
if (VAR_000 == "ABCD") then
ARG_000 = 100;
end_if;

END_PROGRAM
В релизе 6.06 так и не работает, когда же исправите?

Сообщения / Posts 107 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Сравнение строк не работает и скорее всего не будет работать.
Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2