Здравствуйте.
Хочу в отдельном скрипте в цикле выдергивать архивные значения в массив, далее по изменению интересующего элемента массива производить действия. Как обыграть? Пока ошибка несоответствия типов.
Ошибка несоответствия типов возникает из-за того, что у Вас массив имеет тип TDateTime, а результат ArchiveValueByTime должен записываться в переменную(TM_Variable) - см. описание
по ссылке. Через массив данную задачу решить не получится. В любом случае придется создать необходимое количество внутренних переменных для хранения результатов ArchiveValueByTime. Можно назвать их однотипно, тогда можно будет в цикле вызвать ArchiveValueByTime и записать результаты в нужные переменные используя функцию
GetVariableByName, например:
var
I: Integer;
aVar: TM_Variable;
begin
for I := 1 to 10 do
begin
aVar := GetVariableByName('MyVar' + IntToStr(I));
if aVar <> nil then // если переменная существует
ArchiveValueByTime(kns_12_worktime1day_1, aVar, aDate);
end;
end.
, после чего можно проверять значение требуемой переменной. Также, учитывайте, что ArchiveValueByTime это архивная процедура. Не рекомендуется вызывать их слишком часто и в больших количествах.
Появилась такая проблемма с отправкой СМС. На телефон Андроид сообщения приходят, а на служебный кнопочный старый телефон НЕ приходят.
Ни скада-система, ни модем не знают и не могут знать/определить, на какой именно телефон производится отправка. Отправка всегда производится одинаково - по указанному номеру телефона и никак не зависит от типа телефона, его возраста и т.д. Если на один из телефонов SMS приходят, то значит отправка SMS настроена корректно и нужно разбираться со вторым телефоном. Проверьте, что на этот телефон вообще приходят SMS, например отправьте на него SMS с другого телефона. Убедитесь, что при тестировании у Вас точно выполняются условия скрипта. Лучше всего при тестировании использовать простейший скрипт по клику на кнопку, без каких либо условий, например:
begin
SendSMS('79024194140','Авария частотника скважина 1');
end.
, установите данный скрипт на клик первой кнопки и аналогичный скрипт на клик второй кнопки, после чего производите тестирование. Проверьте, что Вы точно правильно указываете номер телефона. Возможно, после внесения изменений в проект/скрипты Вы не перезапустили проект, тогда причина в этом. При внесении изменений в проект его необходимо
перезапустить на сервере скады.
Галочки: "ждать ответа" и "менять режимы" испробовал. Запись сообщений в кирилице и латинице испробовал.
Не нужно просто так менять настройки отправки - их изменение имеет смысл только в случае если отправка SMS не работает. Верните настройки по-умолчанию и протестируйте, если хотя бы на один телефон SMS приходит, то настройки корректные и нужно разбираться со вторым телефоном. Также, при изменении настроек нужно обязательно перезапустить
сервер скады, чтобы изменения вступили в силу.