Здравствуйте.
Допустим что переменная с датой поверки имеет имя vrCheckDate и имеет тип данных DateTime. Лучше всего вывести на мнемосхему объект Календарь и привязать его к этой переменной. Через календарь дату удобнее всего редактировать и можно задать соответствующий формат. Для сравнения vrCheckDate с текущей датой можно использовать функции из этого раздела (https://simple-scada.com/help/script/datetime.html). Например можно выполнять следующий код в скрипте с типом события "Прошел час":
begin
{ если между текущим временем и vrCheckDate прошло 2 или более месяца }
if MonthsBetween(Now, vrCheckDate.AsDateTime) >= 2 then
{ то выдаём аварийное сообщение на панель сообщений }
AddMessage(Now, mkAlarm, 'Нужно проверить прибор!', True, False);
end.
vyacheslav!
При открытии проекта виртуальные переменные иницализируются.
Хранить даты поверки можно в самой программе, файле или БД.
Каждый из вариантов имеет свои преимущества и недостатки.
В примере из вложения даты поверки хранятся в программе.
Я так понимаю вы храните данные в программе, то есть в скрипте
const TestTime: array[1..8] of UTF8string = (
'21.09.2018', '22.09.2018',
'23.09.2018', '24.09.2018',
'25.09.2018', '26.09.2018',
'27.09.2018', '28.09.2018'
);
var i: integer;
aText: TM_Text;
begin
for i := 1 to 8 do
begin
aText := GetTextByName('Text' + IntToStr(i));
if aText = nil then exit;
aText.Visible :=
CompareDate(IncDay(dtNOW.AsDateTime, 60), StrToDate(TestTime)) > -1;
aText.Text := 'Дата поверки ' + TestTime;
end;
end.
Для меня это не совсем удобно, когда подходит дата поверки приборов а их одновременно может быть до 100 - 200 шт.... то нужно менять на новую дату и так постоянно, это постоянно переделывать скрипты. Это не реально реализовать. Подскажите как с помощью других двух вариантов заполнять внутренние переменные!