Показано с 1 по 6 из 6

Тема: Строковые переменные в массиве структур не работают

  1. #1

    По умолчанию Строковые переменные в массиве структур не работают

    Доброго дня!
    Столкнулся с проблемой

    В проекте много одинаковых устройств опрашивается по модбас. Для удобства работы создал структуру переменных, в ней содержатся переменные для чтения из устройства и переменные для отображения на экране. Т.К. устройств много и они одинаковые, планирую отображать все через фрейм. Для поочередного отображения переменных каждого устройства во фрейме, создал массив структур. В структуре есть переменная WSTRING - позиция устройства. При отображении все переменные показываются корректно, кроме строковой переменной:
    Код:
    [ERROR] [Device: Plc Logic: Application](ID элемента 6): C0032:  Невозможно конвертировать тип 'WSTRING(32)' в тип 'REFERENCE TO WSTRING'
    Так выглядит обращение к строковой переменной.
    Код:
    PLC_PRG.astTRM[iIndex].sPointName
    Если использовать массив из строковых переменных без структуры, то ошибок нет.

    Что сделать чтобы можно было обращаться к строковой переменной внутри массива структур?

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,171

    По умолчанию

    Цитата Сообщение от Andrew_E Посмотреть сообщение
    Доброго дня!
    Столкнулся с проблемой

    В проекте много одинаковых устройств опрашивается по модбас. Для удобства работы создал структуру переменных, в ней содержатся переменные для чтения из устройства и переменные для отображения на экране. Т.К. устройств много и они одинаковые, планирую отображать все через фрейм. Для поочередного отображения переменных каждого устройства во фрейме, создал массив структур. В структуре есть переменная WSTRING - позиция устройства. При отображении все переменные показываются корректно, кроме строковой переменной:
    Код:
    [ERROR] [Device: Plc Logic: Application](ID элемента 6): C0032:  Невозможно конвертировать тип 'WSTRING(32)' в тип 'REFERENCE TO WSTRING'
    Так выглядит обращение к строковой переменной.
    Код:
    PLC_PRG.astTRM[iIndex].sPointName
    Если использовать массив из строковых переменных без структуры, то ошибок нет.

    Что сделать чтобы можно было обращаться к строковой переменной внутри массива структур?
    Добрый день.
    Выложите, пожалуйста, проект, в котором я смогу повторить эту ошибку.

  3. #3

    По умолчанию

    Не смог отправить заархивированный проект, внутри содержимое папки с проектом.
    Вложения Вложения
    • Тип файла: rar 1.rar (969.3 Кб, Просмотров: 1)

  4. #4

    По умолчанию

    Надо было подождать...
    Вложения Вложения

  5. #5

  6. #6

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Замените WSTRING(64) на WSTRING - тогда ошибок не будет.
    Похоже на баг компилятора.
    Спасибо за оперативный ответ, все заработало.

Похожие темы

  1. Не работают сетевые переменные в 304_m01
    от Sergey_Byk в разделе ПЛК3хх
    Ответов: 0
    Последнее сообщение: 31.10.2017, 14:22
  2. Ответов: 0
    Последнее сообщение: 29.08.2017, 14:58
  3. Ответов: 6
    Последнее сообщение: 09.02.2015, 08:29
  4. Не работают переменные в HMI
    от maksim-bard в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 24.11.2014, 13:26
  5. Ответов: 1
    Последнее сообщение: 11.05.2008, 17:58

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •