Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Инициализация объявленной в редакторе переменной типа String Array  (Прочитано 2124 раз)

gaargot1

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Здравствуйте, подскажите, как проинициализировать массив из строк именно объявленный в редакторе.
Пытаюсь:
Код
pathtosound.value[0]:='Цех3.ogg';
Сервер показывает "ошибка в скрипте Invalid argument"

Код
pathtosound[0].value:='Цех3.ogg';
Компилятор говорит: Класс TM_variable does not have a default property

gaargot1

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Сейчас использовал глобальный модуль для объявления этой переменной. И в других процедурах теперь всё работает в виде
Код
pathtosound[0]:='Цех3.ogg';

Просто зачем для объявления одного массива заводить глобальный модуль, когда есть редактор. Или я не прав?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3202
    • Просмотр профиля
    • Simple-Scada
Здравствуйте.

В редакторе, в разделе редактирования переменных создаются экземпляры TM_Variable, которые представляют собой сложные структуры. БОльшая часть свойств TM_Varaible используется при работе с внешними тегами (с OPC-сервера) и типы данных Array которые видны в окне добавления переменной могут использоваться только для внешних тегов и только на чтение. Т.е. с их помощью можно в скаду получать значения из переменных-массивов с OPC-сервера. Записать массив из скады в OPC-сервер нельзя.
Если Вам нужен не внешний массив, который используется внутри скады, то нужно объявлять его в глобальном модуле (или локально в скрипте, если нужно использовать только в пределах скрипта). Тогда это будет простой массив, не связанный с TM_Variable. К нему не придётся обращаться через свойство ".Value"  и т.п. и можно будет использовать его напрямую myArray[0] := 'текст';

gaargot1

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Всё понятно, спасибо.