Здравствуйте.
Раньше был такой скрипт.
Однако по мере добавления устройств (их порядка 70 шт.) было решено что как-то надо это дело оптимизировать
// проверка связи с СПГ742 Гагарина
{if spg_Q1.IsGoodQuality = False then
begin
vrTimer3_Gagarina.Value := vrTimer3_Gagarina.Value + 1;
if vrTimer3_Gagarina.AsInt = 600 then
begin
SendTelegram('Гагарина: Нет связи с корректором газа СПГ742!');
AddMessage(Now, mkAlarm, 'Гагарина: Нет связи с корректором газа СПГ742!', TRUE, TRUE);
end
end
else
vrTimer3_Gagarina.Value := 0;}
// проверка связи с ПЛК Гагарина
{if Tps_4.IsGoodQuality = False then
begin
vrTimer4_Gagarina.Value := vrTimer4_Gagarina.Value + 1;
if vrTimer4_Gagarina.AsInt = 600 then
begin
SendTelegram('Гагарина: Нет связи с ПЛК');
AddMessage(Now, mkAlarm, 'Гагарина: Нет связи с ПЛК', TRUE, TRUE);
LinkPLC_Gagarina.Value := True;
end
end
else
begin
vrTimer4_Gagarina.Value := 0;
LinkPLC_Gagarina.Value := False;
end;}
//Дружба
//Проверка связи с счетчиком Меркурий Дружба
{if Link_230_Druzhba.AsInt = 0 then
begin
vrTimer_Druzhba.Value := vrTimer_Druzhba.Value + 1;
if vrTimer_Druzhba.AsInt = 600 then
begin
AddMessage(Now, mkAlarm, 'Дружба: Нет связи с электросчетчиком (NPort 5130)!', TRUE, TRUE);
SendTelegram('Дружба: Нет связи с электросчетчиком (NPort 5130)!');
end
end
else
vrTimer_Druzhba.Value := 0;}
// проверка связи с СПГ742 Дружба
{if Q1_2.IsGoodQuality = False then
begin
vrTimer3_Druzhba.Value := vrTimer3_Druzhba.Value + 1;
if vrTimer3_Druzhba.AsInt = 600 then
begin
SendTelegram('Дружба: Нет связи с корректором газа СПГ742!');
AddMessage(Now, mkAlarm, 'Дружба: Нет связи с корректором газа СПГ742!', TRUE, TRUE);
end
end
else
vrTimer3_Druzhba.Value := 0;}
// проверка связи с СПТ963 Дружба
{if SostoyanieSPT.IsGoodQuality = False then
begin
vrTimer4_Druzhba.Value := vrTimer4_Druzhba.Value + 1;
if vrTimer4_Druzhba.AsInt = 600 then
begin
SendTelegram('Дружба: Нет связи с тепловычислителем СПТ963!');
AddMessage(Now, mkAlarm, 'Дружба: Нет связи с тепловычислителем СПТ963!', TRUE, TRUE);
end
end
else
vrTimer4_Druzhba.Value := 0;}
// проверка связи с ПЛК Дружба
{if Tnv_7.IsGoodQuality = False then
begin
vrTimer2_Druzhba.Value := vrTimer2_Druzhba.Value + 1;
if vrTimer2_Druzhba.AsInt = 600 then
begin
SendTelegram('Дружба: Нет связи с ПЛК');
AddMessage(Now, mkAlarm, 'Дружба: Нет связи с ПЛК', TRUE, TRUE);
end
end
else
begin
vrTimer2_Druzhba.Value := 0;
LinkPLC_Druzhba.Value := False;
end;
//Нефтебаза
// проверка связи с ПЛК Нефтебаза
if Tps_6.IsGoodQuality = False then
begin
vrTimer_Neftebaza.Value := vrTimer_Neftebaza.Value + 1;
if vrTimer_Neftebaza.AsInt = 600 then
begin
SendTelegram('Нефтебаза: Нет связи с ПЛК');
AddMessage(Now, mkAlarm, 'Нефтебаза: Нет связи с ПЛК', TRUE, TRUE);
end
end
else
begin
vrTimer_Neftebaza.Value := 0;
LinkPLC_Neftebaza.Value := False;
end;
//Центральная
// проверка связи с ПЛК Центральная
if Tnv_8.IsGoodQuality = False then
begin
vrTimer_Centr.Value := vrTimer_Centr.Value + 1;
if vrTimer_Centr.AsInt = 600 then
begin
SendTelegram('Центральная: Нет связи с ПЛК');
AddMessage(Now, mkAlarm, 'Центральная: Нет связи с ПЛК', TRUE, TRUE);
LinkPLC_Centr.Value := True;
end
end
else
begin
vrTimer_Centr.Value := 0;
LinkPLC_Centr.Value := False;
end;
// проверка связи с СПТ963 Центральная
{if NS_SPT_Centralnaya.IsGoodQuality = False then
begin
vrTimer_Centr2.Value := vrTimer_Centr2.Value + 1;
if vrTimer_Centr2.AsInt = 600 then
begin
SendTelegram('Центральная: Нет связи с тепловычислителем СПТ963!');
AddMessage(Now, mkAlarm, 'Центральная: Нет связи с тепловычислителем СПТ963!', TRUE, TRUE);
end
end
else
vrTimer_Centr2.Value := 0;}
// проверка связи с СПГ742 Центральная
{if Q1_4.IsGoodQuality = False then
begin
vrTimer_Centr3.Value := vrTimer_Centr3.Value + 1;
if vrTimer_Centr3.AsInt = 600 then
begin
SendTelegram('Центральная: Нет связи с корректором газа СПГ742!');
AddMessage(Now, mkAlarm, 'Центральная: Нет связи с корректором газа СПГ742!', TRUE, TRUE);
end
end
else
vrTimer_Centr3.Value := 0;}
//Проверка связи с счетчиком Меркурий Центральная
{if Link_230_Centr.AsInt = 0 then
begin
vrTimer_Centr4.Value := vrTimer_Centr4.Value + 1;
if vrTimer_Centr4.AsInt = 600 then
begin
AddMessage(Now, mkAlarm, 'Центральная: Нет связи с электросчетчиком (NPort 5130)!', TRUE, TRUE);
SendTelegram('Центральная: Нет связи с электросчетчиком (NPort 5130)!');
end
end
else
vrTimer_Centr4.Value := 0;}
//ПМК-16
// проверка связи с ПЛК ПМК-16
{if Tnv_9.IsGoodQuality = False then
begin
vrTimer_PMK1.Value := vrTimer_PMK1.Value + 1;
if vrTimer_PMK1.AsInt = 600 then
begin
SendTelegram('ПМК-16: Нет связи с ПЛК');
AddMessage(Now, mkAlarm, 'ПМК-16: Нет связи с ПЛК', TRUE, TRUE);
vrTimer_PMK1.Value := True;
end
end
else
begin
vrTimer_PMK1.Value := 0;
LinkPLC_PMK16.Value := False;
end;}
//ХДСУ
// проверка связи с ПЛК ХДСУ
{if Tnv_3.IsGoodQuality = False then
begin
vrTimer_XDSU1.Value := vrTimer_XDSU1.Value + 1;
if vrTimer_XDSU1.AsInt = 600 then
begin
SendTelegram('ХДСУ: Нет связи с ПЛК');
AddMessage(Now, mkAlarm, 'ХДСУ: Нет связи с ПЛК', TRUE, TRUE);
vrTimer_XDSU1.Value := True;
end
end
else
begin
vrTimer_XDSU1.Value := 0;
LinkPLC_XDSU.Value := False;
end;}
//Иконка связи Центральная
//if Tnv_8.IsGoodQuality = False then
//Image1453.Visible := True
//else
//Image1453.Visible := False
//end.