1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

SCADA WinCC и текстовые данные

Ответить
Аватара пользователя

Автор темы
Arist007
здесь недавно
здесь недавно
Сообщения: 69
Зарегистрирован: 06 окт 2015, 09:31
Имя: Антонов Артём Викторочич
Страна: Россия
город/регион: Ленинградская область, порт Усть-Луга
Благодарил (а): 5 раз
Поблагодарили: 2 раза

SCADA WinCC и текстовые данные

Сообщение Arist007 »

Доброго времени суток, уважаемые!
Есть набор текстовых переменных в PLC (S7-315), они передаются на панель оператора (WinCC Comfort), они же передаются по TCP/IP на SCADA WinCC (WinCC Runtime V7.2 + Upd5). В PLC и на панели оператора эти переменные отображается как нужно, но на SCADA WinCC происходит какое то чудо чудесное и в начале переменной добавляются каких-то 2 непонятных символа.
Теперь по скринам. Скрин мониторингом PLC тэгов:
Изображение
Скрин с мониторингом тэгов в SCADA WinCC:
Изображение
Кажется что проблема на поверхности, но не могу понять куда копать.
на SCADA пробовал менять все типы переменных - не помогло.
P.S. Попробовал передать переменную типа Array[1..10] of Char - на SCADA все передалось как надо. Но мне кажется есть более стандартный метод решения проблемы, т.к. на других мнемосхемах текстовые данные отображаются как надо (с теми же свойствами и типами данных что и у меня).
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

SCADA WinCC и текстовые данные

Сообщение aranea »

какой код у этих символов?
это не BOM от utf-8?
Изображение

POV
корифей
корифей
Сообщения: 755
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 93 раза
Поблагодарили: 143 раза

SCADA WinCC и текстовые данные

Сообщение POV »

Классический тип STRING у SIEMENSа в PLC под Step7 в начале содержит байт с максимальным размером строки и байт с текущей длиной.
WinCC вроде всегда умел обращаться с такими строками.
Аватара пользователя

Автор темы
Arist007
здесь недавно
здесь недавно
Сообщения: 69
Зарегистрирован: 06 окт 2015, 09:31
Имя: Антонов Артём Викторочич
Страна: Россия
город/регион: Ленинградская область, порт Усть-Луга
Благодарил (а): 5 раз
Поблагодарили: 2 раза

SCADA WinCC и текстовые данные

Сообщение Arist007 »

aranea писал(а): 20 авг 2018, 11:41 какой код у этих символов?
это не BOM от utf-8?
что вы имеете в виду?
Переменная инициализируется и формируется в PLC и передается на Верхний Уровень. Тип данных определяется в PLC и больше нигде не меняется.

Отправлено спустя 1 минуту 1 секунду:
POV писал(а): 20 авг 2018, 12:34 Классический тип STRING у SIEMENSа в PLC под Step7 в начале содержит байт с максимальным размером строки и байт с текущей длиной.
WinCC вроде всегда умел обращаться с такими строками.
Так вот жеж.. Не понятно почему тут так получается.
Пока разумного ответа не нашел
Аватара пользователя

Автор темы
Arist007
здесь недавно
здесь недавно
Сообщения: 69
Зарегистрирован: 06 окт 2015, 09:31
Имя: Антонов Артём Викторочич
Страна: Россия
город/регион: Ленинградская область, порт Усть-Луга
Благодарил (а): 5 раз
Поблагодарили: 2 раза

SCADA WinCC и текстовые данные

Сообщение Arist007 »

POV писал(а): 20 авг 2018, 12:34 Классический тип STRING у SIEMENSа в PLC под Step7 в начале содержит байт с максимальным размером строки и байт с текущей длиной.
WinCC вроде всегда умел обращаться с такими строками.
Спасибо за наводку! Заработало! Нужно было всего лишь сдвинуть чтение данных в SCADA вправо и все.
Получается - на скрине у меня DB1,DBB48 - вместо этого ставим DB1,DBB50 и все замечтательно работает.

POV
корифей
корифей
Сообщения: 755
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 93 раза
Поблагодарили: 143 раза

SCADA WinCC и текстовые данные

Сообщение POV »

WinCC должен бы использовать конвертацию типов при чтении-записи (есть же там RealToFloat и т.д.), так как типы этих строк все таки разные.
Вы учитывайте, что если строка в PLC будет заполнена полностью, то у вас не будет "\0" в конце строки - для него просто места не останется и как тогда поведут себя скрипты WinCC (язык Си) немного непонятно.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3559
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 253 раза

SCADA WinCC и текстовые данные

Сообщение Михайло »

Строка (String) и набор символов (Char set) - это разные типы данных. Строка содержит в первых двух байтах длину строки и если вы пытаетесь её интерпретировать как набор символов, то эти первые два байта превратятся в "непонятные" символы. Решение следующее: замените Char set (или array of char) на String.
Ответить

Вернуться в «WinCC»