分档类型变更

This commit is contained in:
Administrator
2026-07-02 17:22:02 +08:00
parent 66df37b139
commit 3eed43af5d
412 changed files with 1320462 additions and 1620 deletions
+91 -1
View File
@@ -106,6 +106,7 @@ namespace JinYuan.ControlCenters
{
GetAlarmData();
GetSafeEqptData();
InitFunc();
IntiDevice();
Timer_RefreshData = new System.Timers.Timer(1000);
@@ -896,10 +897,18 @@ namespace JinYuan.ControlCenters
Task.Run(() =>
{
UploadEquEnergy();//电表
//UPloadAnemograph();//风速仪
//UPloadAnemograph();//风速仪
ShowSafeEqptEven_Run(); //安全装置状态
});
Regular = 0;
}
//if (Regular % 30==1)
//{
// Task.Run(() =>
// {
// ShowSafeEqptEven_Run();//安全装置状态
// });
//}
if (TotalNum > 4)
{
GetEnergyData();
@@ -1499,6 +1508,22 @@ namespace JinYuan.ControlCenters
}
}
List<AlarmForm> listSafeEqptForm = null;
public void GetSafeEqptData()
{
//加载PLC安全装置状态文件
try
{
string strFileName = System.Environment.CurrentDirectory + "\\安全装置报警寄存器对应表.csv";
listSafeEqptForm = CSVHelper<AlarmForm>.ReadCSV(strFileName);
}
catch (Exception ex)
{
MessageBox.Show("加载安装装置报警文件失败!");
}
}
/// <summary>
/// 报警信息读取
@@ -1656,6 +1681,71 @@ namespace JinYuan.ControlCenters
}
List<AlarmData> safeEqptStatus = new List<AlarmData>();
List<AlarmStatus> listSafeEqptStatus = null;
private void ShowSafeEqptEven_Run()
{
if (CommonMethods.IsRun && CommonMethods.plcDevice.IsConnected)
{
string Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
JYResult<byte[]> resByte = CommonMethods.PlcLink.ReadValue<JYResult<byte[]>>("D1000", Data_Type.ArrByte, 8);
if (resByte.IsSuccess && resByte != null)
{
if (resByte == null) { return; }
//如果未配置报警地址信息返回 TODO
if (listSafeEqptForm == null) { return; }
int startPlcAddr = 1000;
listSafeEqptStatus = PLCAlarmParseHelper.OmronFinsByte2Status(startPlcAddr, resByte.Content);
//4.判定有不良后,关联AlarmStatus 和AlarmForm
if (listSafeEqptStatus == null) { return; } //状态信息为空返回
//如果有报警,获取报警信息
var josnTxtMsg = $"{Date}:获取PLC安全设备运行状态:\r\n";
for (int i = 0; i < listSafeEqptStatus.Count; i++)
{
josnTxtMsg += $"plc_addr={listSafeEqptStatus[i].PLCAdress},status={listSafeEqptStatus[i].Status}\r\n";
}
TxtHelper.WriteTxt($@"{CommonMethods.strMesLogspath}\{DateTime.Now.ToString("yyyyMMdd")}\设备运行状态\{DateTime.Now.ToString("HH")}.txt", josnTxtMsg);
//关联表单数据和报警记录,获取报警信息
safeEqptStatus = listSafeEqptStatus
.Join(listSafeEqptForm
, s => s.PLCAdress
, f => f.PLCAdress
, (s, f) => new AlarmData()
{
PLCAdress = s.PLCAdress,
AlarmCode = f.AlarmCode,
AlarmContent = f.AlarmContent == "" ? s.PLCAdress : f.AlarmContent,
AlarmDesc = f.AlarmContent == "" ? s.PLCAdress : f.AlarmContent,
AlarmType = "安全装置",
AlarmState = s.Status ? "0" : "1", //mes 要求0是异常,1是正常
StartTime = Date,
EndTime = Date,
Flag = 0
}).ToList();
if (safeEqptStatus.Count > 0)
{
List<SafeEqptCode> safeEqptCodeLists = new List<SafeEqptCode>();
safeEqptStatus.ForEach(r =>
{
if (CommonMethods.sysConfig.MesModeSwitching)
{
var item = new SafeEqptCode();
item.equipNum = r.AlarmCode;
item.status = r.AlarmState;
safeEqptCodeLists.Add(item);
}
});
MESDataCombin.SafeEqptAlarm(Date, safeEqptCodeLists);
}
}
}
}
/// <summary>
/// 报警保存
/// </summary>