Здравствуйте.
Столкнулась с такой ситуацией: есть скрипт, которые распаковывыает Report_arData (массив String) из PLC (opc da) в локальные переменные LocReport_arData0, LocReport_arData01 .. LocReport_arData30(количество локальных переменных равно длине массива) типа String:
var
aVarArray: TM_Variable;
i1 : integer;
varName : string;
begin
aVarArray := GetVariableByName('Report_arData');
for i1:= 0 to GetVariableByName('Report_arData').HighBound do
begin
varName := 'LocReport_arData'+ IntToStr(i1);
if ( (GetVariableByName(varName) <> nil) ) then
GetVariableByName(varName).Value := aVarArray.Values[i1];
end;
end.
Если я в программе изменю количество элементов массива строк Report_arData (количество локальных переменных для распаковки увеличила в ручную в зависимости от длины массива строк), SimpleScada пишет в каждой локальной переменной распаковки LocReport_arData0, LocReport_arData01 .. LocReport_arData30 : @@@D.
Если удалить из SimpleScada эту переменную и заново добавить из программы, все снова работает.
В чем проблема?