分档类型变更
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user