Ваши комментарии

Я забыл упомянуть у меня тип string используется для вывода времени.

Здравствуйте. Вставил строку FORMATLIVESTR = '{"id":"%d","value":"%s"}';  компилятор просит испрасить  S := S + Format(FORMATLIVE, [StrToInt(web_tags[i, 2]), val]); , исправил на S := S + Format(FORMATLIVESTR, [StrToInt(web_tags[i, 2]), val]); . В облаке пишет нет связи.

Как исправить скрипт "Запись в Облако" чтобы в облако записывать переменную типа string?

Но это как, то не совсем удобно.

Нужно чтобы поле куда выводится информация - ('Время последнего опроса Узла учета УДО', tim) должно быть общее!

  tims := GetTimeStamp('УДО. Давление обратного трубопровода');
  tim:=DateTimeToStr(tims);
  WriteValue('имя канала', tim); - Как вариант??? если только здесь прописать поле из:
 tims := GetTimeStamp('УДО. Давление прямого трубопровода');  
 tim:=DateTimeToStr(tims);
 WriteValue('Время последнего опроса Узла учета УДО', tim);

Здравствуйте. Если я добавляю полностью переменную CurrentValue1 в скрипт, то время 'Virtual channel 1',tim - то время начинает постоянно считаться.

Var

Value, CurrentValue:double;
CurrentValue1:double;
tims:TDateTime;
tim:string;
//Выполняется при первом старте скрипта
procedure OnStartScript;
begin
value := ReadValue('УДО. Давление прямого трубопровода');
end;
//Выполняется при завершении работы скрипта
procedure OnStopScript;
begin
// Ваш код
tims:=GetTimeStamp('УДО. Давление прямого трубопровода');
tim:=DateTimeToStr(tims);
WriteValue('Время последнего опроса Узла учета УДО',tim);
end;
begin
CurrentValue := ReadValue('УДО. Давление прямого трубопровода');
CurrentValue1 := ReadValue('УДО. Давление обратного трубопровода');
if (CurrentValue <> Value) or (CurrentValue1 <> Value ) then
begin
Value := CurrentValue;
WriteValue('Время последнего опроса Узла учета УДО', DateTimeToStr(now));
end;

end.

Здравствуйте. Снова прошу помощи до делать данный скрипт. Теперь две переменных. Когда значение изменяется в большую или меньшую сторону любой переменной, то нужно чтобы изменилось время.

Сейчас скрипт под одну переменную.

Var

Value, CurrentValue:
double;
tims:TDateTime;
tim:string;
//Выполняется при первом старте скрипта
procedure OnStartScript;
begin
value := ReadValue('Промплощадка_дом_2.Прямая_int');
end;
//Выполняется при завершении работы скрипта
procedure OnStopScript;
begin
// Ваш код
tims:=GetTimeStamp('Промплощадка_дом_2.Прямая_int');
tim:=DateTimeToStr(tims);
WriteValue('Virtual channel 1',tim);
end;
begin
CurrentValue := ReadValue('Промплощадка_дом_2.Прямая_int');
if CurrentValue <> Value then
begin
Value := CurrentValue;
WriteValue('Virtual channel 1', DateTimeToStr(now));
end;
end.

Да такая же ситуация. Проблему решил написанием скрипта, вывод текущего времени с ПК.

Есть прибор с которого удаленно снимаются показания раз в час. Есть поля в которых выводятся значения, нужно отдельно поле в котором будет выводится время последнего обновления этих показаний. Я попробовал вот так:

Var

tims:TDateTime;
tim:string;
Begin
tims:=GetTimeStamp('Промплощадка_дом_2.Прямая_int');
tim:=DateTimeToStr(tims);
WriteValue('Virtual channel 1',tim);
end.

Но при ошибках на пример модем не сработал, или связь потерялась на удаленном объекте, то обновляется время а показания то старые. По этому нужно чтобы текущее показания в scade сравнивались с показаниями текущими в opc если они изменились в любую сторону то обновилось время.



Сервис поддержки клиентов работает на платформе UserEcho