Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: gaargot1 от 23 Марта 2020, 15:24:46

Название: Инициализация объявленной в редакторе переменной типа String Array
Отправлено: gaargot1 от 23 Марта 2020, 15:24:46
Здравствуйте, подскажите, как проинициализировать массив из строк именно объявленный в редакторе.
Пытаюсь:
Код
pathtosound.value[0]:='Цех3.ogg';
Сервер показывает "ошибка в скрипте Invalid argument"

Код
pathtosound[0].value:='Цех3.ogg';
Компилятор говорит: Класс TM_variable does not have a default property
Название: Re: Инициализация объявленной в редакторе переменной типа String Array
Отправлено: gaargot1 от 24 Марта 2020, 04:37:13
Сейчас использовал глобальный модуль для объявления этой переменной. И в других процедурах теперь всё работает в виде
Код
pathtosound[0]:='Цех3.ogg';

Просто зачем для объявления одного массива заводить глобальный модуль, когда есть редактор. Или я не прав?
Название: Re: Инициализация объявленной в редакторе переменной типа String Array
Отправлено: Simple-Scada от 24 Марта 2020, 11:43:57
Здравствуйте.

В редакторе, в разделе редактирования переменных (https://simple-scada.com/help/manual/variable-editor.html) создаются экземпляры TM_Variable, которые представляют собой сложные структуры (https://simple-scada.com/help/script/tmvariable.html). БОльшая часть свойств TM_Varaible используется при работе с внешними тегами (с OPC-сервера) и типы данных Array которые видны в окне добавления переменной (https://simple-scada.com/help/manual/variable-new.html) могут использоваться только для внешних тегов и только на чтение. Т.е. с их помощью можно в скаду получать значения из переменных-массивов с OPC-сервера. Записать массив из скады в OPC-сервер нельзя.
Если Вам нужен не внешний массив, который используется внутри скады, то нужно объявлять его в глобальном модуле (или локально в скрипте, если нужно использовать только в пределах скрипта). Тогда это будет простой массив, не связанный с TM_Variable. К нему не придётся обращаться через свойство ".Value"  и т.п. и можно будет использовать его напрямую myArray[0] := 'текст';
Название: Re: Инициализация объявленной в редакторе переменной типа String Array
Отправлено: gaargot1 от 24 Марта 2020, 13:39:19
Всё понятно, спасибо.