84 lines
6.2 KiB
Python
84 lines
6.2 KiB
Python
![]() |
# -*- coding: utf-8 -*-
|
|||
|
# Ziran Gao 20241005
|
|||
|
# 智能二次运维项目中,多装置校验功能
|
|||
|
#-------------2024年11月19日--------------------------------------------------------------------------------------------------------
|
|||
|
# 本功能基本逻辑是:
|
|||
|
# 1:从所有装置接口读出所有定值
|
|||
|
# 2:根据不同的供电形式进行校验
|
|||
|
# 3:对该规则下的定值进行校验。不合适的标红。
|
|||
|
|
|||
|
import Self_defined_functions as SDF
|
|||
|
import CheckMultiDevice as MD
|
|||
|
StationFlag = 2 #是什么所?1是变电所,2是分区所&开闭所
|
|||
|
PwrMthd = 3 #是什么供电方式? 1是全并联AT,2是直供,3是开闭所,需要注意的是,部分设置是不存在的,比如如果是开闭所,那供电方式只能是经开闭所供电,我在函数里做了规范,王喜在界面里也规范一下
|
|||
|
PwrFlag = 1 #具体供电方式里怎么分?如果对AT来说, 1是全并联ATI型,2是全并联ATII型。对直供来说1是单线直供,2是复线直供。对经开闭所供电1是经1级开闭所,2是经2级开闭所。
|
|||
|
conn = SDF.connectMainDatabase()#获取当前装置的所有定值
|
|||
|
cursor = conn.cursor() #获取pymssql提供的SQL Server编辑游标
|
|||
|
sql_read_Usr = f"SELECT * FROM im_ProtectDevice_new;"
|
|||
|
#print(sql_read_Usr)
|
|||
|
cursor.execute(sql_read_Usr)
|
|||
|
results_Usr = cursor.fetchall()
|
|||
|
DeviceList_dict = {}
|
|||
|
for row in results_Usr:
|
|||
|
temp_find = row[2].encode('latin1').decode('gbk')
|
|||
|
if temp_find.find('主变保护') != -1:
|
|||
|
DeviceList_dict.update({row[0]:1})
|
|||
|
elif temp_find.find('馈线')!= -1:
|
|||
|
DeviceList_dict.update({row[0]:2})
|
|||
|
elif temp_find.find('自耦变')!= -1:
|
|||
|
DeviceList_dict.update({row[0]:3})
|
|||
|
elif temp_find.find('并联补偿')!= -1:
|
|||
|
DeviceList_dict.update({row[0]:4})
|
|||
|
elif temp_find.find('测距')!= -1:
|
|||
|
DeviceList_dict.update({row[0]:5})
|
|||
|
else:
|
|||
|
DeviceList_dict.update({row[0]:0})
|
|||
|
Preset_All_Device = {}
|
|||
|
#print(DeviceList_dict)
|
|||
|
for device, device_type in DeviceList_dict.items():
|
|||
|
if device_type != 0:
|
|||
|
(Preset_All_Device[device],Flag) = SDF.getdevicePresetValue(device)
|
|||
|
device_ID = 'B001025'#先随便写一个ID,后续再改
|
|||
|
(Preset, Flag) = SDF.getdevicePresetValue(device_ID)
|
|||
|
checked_multi_preset = {}
|
|||
|
checked_multi_fail_reason = {}
|
|||
|
Delta_T = 0.2
|
|||
|
if device_ID in DeviceList_dict and DeviceList_dict[device_ID]!= 0:
|
|||
|
if StationFlag == 1:
|
|||
|
if Flag == 1:
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_MTF_LwOvrCrrnt_Time(device_ID,Preset_All_Device,Delta_T,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
if Flag == 2:
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Feeder_Rcls_Time(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
if Flag == 5:
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_OvrCrrnt_Crrnt(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlt_Crrnt(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlst_Rsstnc(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlst_Rctnc(device_ID,Preset_All_Device,DeviceList_dict,StationFlag,PwrMthd,PwrFlag,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
print(checked_multi_preset)
|
|||
|
print(checked_multi_fail_reason)
|
|||
|
if StationFlag == 2:
|
|||
|
if Flag == 5:
|
|||
|
if (PwrMthd == 2 and PwrFlag == 1):
|
|||
|
print('该供电方式选择错误,无法进行校验')
|
|||
|
elif (PwrMthd == 3):
|
|||
|
if PwrFlag == 1:#经1级开闭所
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_OvrCrrnt_Crrnt(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlt_Crrnt(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlst_Rsstnc(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlst_Rctnc(device_ID,Preset_All_Device,DeviceList_dict,2,3,1,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
if PwrFlag == 2:#经2级开闭所
|
|||
|
feederlevel = 1#是1级还是2级,1是1级,2是2级
|
|||
|
if feederlevel == 1:
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlst_Rctnc(device_ID,Preset_All_Device,DeviceList_dict,2,3,2,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
if feederlevel == 2:
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlst_Rctnc(device_ID,Preset_All_Device,DeviceList_dict,2,3,1,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_OvrCrrnt_Crrnt(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlt_Crrnt(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_Dlst_Rsstnc(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
else:
|
|||
|
(checked_multi_preset,checked_multi_fail_reason) = MD.Check_Multi_Dist_LsVltg_Vltg(device_ID,Preset_All_Device,DeviceList_dict,checked_multi_preset,checked_multi_fail_reason)
|
|||
|
print(checked_multi_preset)
|
|||
|
print(checked_multi_fail_reason)
|
|||
|
else:
|
|||
|
print('该装置不是保护装置或装置编号错误,无法进行校验')
|
|||
|
#print(Preset_All_Device)
|