分档类型变更

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
+90
View File
@@ -106,6 +106,7 @@ namespace JinYuan.ControlCenters
{ {
GetAlarmData(); GetAlarmData();
GetSafeEqptData();
InitFunc(); InitFunc();
IntiDevice(); IntiDevice();
Timer_RefreshData = new System.Timers.Timer(1000); Timer_RefreshData = new System.Timers.Timer(1000);
@@ -897,9 +898,17 @@ namespace JinYuan.ControlCenters
{ {
UploadEquEnergy();//电表 UploadEquEnergy();//电表
//UPloadAnemograph();//风速仪 //UPloadAnemograph();//风速仪
ShowSafeEqptEven_Run(); //安全装置状态
}); });
Regular = 0; Regular = 0;
} }
//if (Regular % 30==1)
//{
// Task.Run(() =>
// {
// ShowSafeEqptEven_Run();//安全装置状态
// });
//}
if (TotalNum > 4) if (TotalNum > 4)
{ {
GetEnergyData(); 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> /// <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>
/// 报警保存 /// 报警保存
/// </summary> /// </summary>
+215 -294
View File
@@ -10,6 +10,7 @@ using PLCCommunication;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Diagnostics.Eventing.Reader;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -40,115 +41,7 @@ namespace JinYuan.ControlCenters
string NG_Type = ""; // 用于备注 string NG_Type = ""; // 用于备注
string OK_NG = ""; // OK或NG string OK_NG = ""; // OK或NG
#region 判断总结果 #region 判断总结果
/// <summary>
/// 判断总结果
/// </summary>
//private int JudgmentResult(int A, int B, int C, int D, int E, int F, int G, int H, int I, int J, int K, int L, int M, int N)
//{
// //条码,芯包重量,芯包侧厚,芯包CCD极性检测,电芯裁切粘连,电芯裁切毛刺,芯包铜焊印位置,
// //芯包正面极耳撕裂H,芯包背面极耳撕裂,芯包正面极耳翻折J,芯包背面极耳翻折,测厚压力结果,
// //焊前CCD检测结果,铝焊印位置判定结果
// //目前先判断条码,芯包重量,芯包侧厚,芯包CCD极性检测,芯包正面极耳撕裂,芯包正面极耳翻折
// int Result = 0;
// OK_NG = "OK";
// if (A == 2 || B == 2 || C == 2 || D == 2 || H == 2 || J == 2)
// {
// //ed
// Result = 2;
// OK_NG = "NG";
// }
// else if (A == 1 && B == 1 && C == 1 && D == 1 && H == 1 && J == 1)
// {
// Result = 1;
// OK_NG = "OK";
// }
// else
// {
// Result = 1;
// OK_NG = "OK";
// }
// if (A == 2)
// {
// NG_Type += "无条码_";
// Result = 2;
// }
// if (B == 2)
// {
// NG_Type += "芯包重量1NG_";
// //return 2;
// Result = 2;
// }
// if (C == 2)
// {
// NG_Type += "芯包侧厚NG_";
// //return 2;
// Result = 2;
// }
// if (D == 2)
// {
// NG_Type += "芯包CCD极性检测NG_";
// //return 2;
// Result = 2;
// }
// //if (E == 2)
// //{
// // NG_Type += "电芯裁切粘连NG_";
// // //return 2;
// //}
// //if (F == 2)
// //{
// // NG_Type += "电芯裁切毛刺NG_";
// // //return 2;
// //}
// //if (G == 2)
// //{
// // NG_Type += "芯包铜焊印位置判定NG_";
// // //return 2;
// //}
// if (H == 2)
// {
// NG_Type += "芯包正面极耳撕裂NG_";
// //return 2;
// }
// //if (I == 2)
// //{
// // NG_Type += "芯包背面极耳撕裂NG_";
// // //return 2;
// //}
// if (J == 2)
// {
// NG_Type += "芯包正面极耳翻折NG_";
// //return 2;
// }
// //if (K == 2)
// //{
// // NG_Type += "芯包背面极耳翻折NG_";
// // //return 2;
// //}
// if (L == 2)
// {
// NG_Type += "测厚压力NG_";
// //return 2;
// }
// if (M == 2)
// {
// NG_Type += "焊前CCD检测NG_";
// //return 2;
// }
// if (N == 2)
// {
// NG_Type += "铝焊印位置判定NG_";
// //return 2;
// }
// if (Result == 1)
// {
// NG_Type += "OK_";
// }
// return Result;
//}
/// <summary> /// <summary>
/// 判断总结果 /// 判断总结果
/// </summary> /// </summary>
@@ -318,6 +211,8 @@ namespace JinYuan.ControlCenters
return Result; return Result;
} }
#endregion
#region 上料工位(数据处理) #region 上料工位(数据处理)
/// <summary> /// <summary>
/// 上料工位 /// 上料工位
@@ -402,73 +297,75 @@ namespace JinYuan.ControlCenters
{ {
List<string> MesMessage = new List<string>(); List<string> MesMessage = new List<string>();
List<MesResType> mesResType = new List<MesResType>(); List<MesResType> mesResType = new List<MesResType>();
if (CommonMethods.mesConfig.isUpMes) //if (CommonMethods.mesConfig.isUpMes)
{ //{
string url = CommonMethods.mesConfig.InPutStationMesUrl; // string url = CommonMethods.mesConfig.InPutStationMesUrl;
string siteCode = CommonMethods.mesConfig.siteCode; // string siteCode = CommonMethods.mesConfig.siteCode;
string lineCode = CommonMethods.mesConfig.lineCode; // string lineCode = CommonMethods.mesConfig.lineCode;
string equipNum = CommonMethods.mesConfig.equipNum; // string equipNum = CommonMethods.mesConfig.equipNum;
string materialCode = CommonMethods.mesConfig.MaterialCode; // string materialCode = CommonMethods.mesConfig.MaterialCode;
string userName = CommonMethods.mesConfig.mesUserName; // string userName = CommonMethods.mesConfig.mesUserName;
string MesMessage1 = ""; // string MesMessage1 = "";
MesResType mesResType1 = MesResType.A; // MesResType mesResType1 = MesResType.A;
bool Res = CommonMethods.hbgMes.SingleCellInStation(url, siteCode, lineCode, equipNum, materialCode, userName, listBarCode[i], ref MesMessage1, ref mesResType1); // bool Res = CommonMethods.hbgMes.SingleCellInStation(url, siteCode, lineCode, equipNum, materialCode, userName, listBarCode[i], ref MesMessage1, ref mesResType1);
if (MesMessage1.Contains("发生一个或多个错误")) // if (MesMessage1.Contains("发生一个或多个错误"))
{ // {
MesMessage1 = "上传失败"; // MesMessage1 = "上传失败";
} // }
else // else
{ // {
m.Flag = 1; // m.Flag = 1;
} // }
if (Res) // if (Res)
{ // {
m.Result = "OK";
listRes[i] = 1;
m.Remark += MesMessage1;
}
else
{
m.Result = "NG";
switch (mesResType1)
{
case MesResType.A:// 停线,设备报警停机
//listRes[i] = 10;
listRes[i] = 3;
m.Remark += "MES NG";
break;
case MesResType.B:
//listRes[i] = 9;
listRes[i] = 3;
m.Remark += "MES NG";
break;
case MesResType.C:
//listRes[i] = 1;
listRes[i] = 3;
m.Remark += "MES NG";
break;
case MesResType.D:
listRes[i] = 1;
m.Remark += "MES OK";
break;
default:
listRes[i] = 3;
m.Remark += "MES NG";
break;
}
if (CommonMethods.sysConfig.OKSwitching)
{
//调试发OK
listRes[i] = 1;
// m.Result = "OK"; // m.Result = "OK";
} // listRes[i] = 1;
m.Remark += MesMessage1; // m.Remark += MesMessage1;
} // }
} // else
else // {
// m.Result = "NG";
// switch (mesResType1)
// {
// case MesResType.A:// 停线,设备报警停机
// //listRes[i] = 10;
// listRes[i] = 3;
// m.Remark += "MES NG";
// break;
// case MesResType.B:
// //listRes[i] = 9;
// listRes[i] = 3;
// m.Remark += "MES NG";
// break;
// case MesResType.C:
// //listRes[i] = 1;
// listRes[i] = 3;
// m.Remark += "MES NG";
// break;
// case MesResType.D:
// listRes[i] = 1;
// m.Remark += "MES OK";
// break;
// default:
// listRes[i] = 3;
// m.Remark += "MES NG";
// break;
// }
// if (CommonMethods.sysConfig.OKSwitching)
// {
// //调试发OK
// listRes[i] = 1;
// //m.Result = "OK";
// }
// m.Remark += MesMessage1;
// }
// m.ID = i + 1;
// m.CNum = m.ID.ToString();
//}
//else
{ {
m.Flag = 0; m.Flag = 0;
m.ID = i + 1; m.ID = i + 1;
@@ -542,11 +439,14 @@ namespace JinYuan.ControlCenters
JYResult result = CommonMethods.PlcLink.WriteValue("D2100", listRes[0], Data_Type.Short);//调试结果写入PLC JYResult result = CommonMethods.PlcLink.WriteValue("D2100", listRes[0], Data_Type.Short);//调试结果写入PLC
CommonMethods.PlcLink.WriteValue("D2101", listRes[1], Data_Type.Short);//调试结果写入PLC CommonMethods.PlcLink.WriteValue("D2101", listRes[1], Data_Type.Short);//调试结果写入PLC
CommonMethods.PlcLink.WriteValue("D2102", listRes[2], Data_Type.Short);//调试结果写入PLC CommonMethods.PlcLink.WriteValue("D2102", listRes[2], Data_Type.Short);//调试结果写入PLC
//CommonMethods.PlcLink.WriteValue("D2103", listRes[3], Data_Type.Short);//调试结果写入PLC CommonMethods.PlcLink.WriteValue("D2103", listRes[3], Data_Type.Short);//调试结果写入PLC
CommonMethods.PlcLink.WriteValue("D2104", listRes[4], Data_Type.Short);//调试结果写入PLC
CommonMethods.PlcLink.WriteValue("D2105", listRes[5], Data_Type.Short);//调试结果写入PLC
//CommonMethods.PlcLink.WriteInt16("D2100", listRes[0]);//调试结果OK写入PLC //CommonMethods.PlcLink.WriteInt16("D2100", listRes[0]);//调试结果OK写入PLC
if (result != null) if (result != null)
{ {
string strres = $"分档工位发送给PLC: D2100={listRes[0]},D2101={listRes[1]},D2102={listRes[2]},"; string strres = $"分档工位发送给PLC: D2100={listRes[0]},D2101={listRes[1]},D2102={listRes[2]},D2103={listRes[3]},D2104={listRes[4]},D2105 ={listRes[5]}";
CommonMethods.AddDataMonitorLog(0, strres); CommonMethods.AddDataMonitorLog(0, strres);
} }
@@ -1789,7 +1689,7 @@ namespace JinYuan.ControlCenters
List<string> listBarCode = GetList<string>(6, "");//电芯条码 List<string> listBarCode = GetList<string>(6, "");//电芯条码
//List<string> listNum = GetList<string>(1, "");//进站磁悬浮动子编号 //List<string> listNum = GetList<string>(1, "");//进站磁悬浮动子编号
List<short> listRes = GetList<short>(6, 0);//出站电芯反馈结果 List<short> listRes = GetList<short>(6, 0);//出站电芯反馈结果
List<short> listGradeResult = GetList<short>(6, 0);//grading plc 数字结果 List<short> listGradeResult = GetList<short>(6, 99);//grading plc 数字结果
//反馈结果 //反馈结果
#region 电芯解析 #region 电芯解析
//电芯解析 从3200 开始 //电芯解析 从3200 开始
@@ -1799,6 +1699,8 @@ namespace JinYuan.ControlCenters
listBarCode[3] = StringLib.GetStringFromByteArrayByEncoding(bytes, 120, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); listBarCode[3] = StringLib.GetStringFromByteArrayByEncoding(bytes, 120, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
listBarCode[4] = StringLib.GetStringFromByteArrayByEncoding(bytes, 160, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); listBarCode[4] = StringLib.GetStringFromByteArrayByEncoding(bytes, 160, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
listBarCode[5] = StringLib.GetStringFromByteArrayByEncoding(bytes, 200, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); listBarCode[5] = StringLib.GetStringFromByteArrayByEncoding(bytes, 200, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
#endregion
#region 上传MES #region 上传MES
var lstBGearEntity = GetBlankingData(listBarCode); var lstBGearEntity = GetBlankingData(listBarCode);
//D3200起 //D3200起
@@ -1906,98 +1808,104 @@ namespace JinYuan.ControlCenters
#region 发送结果MES ,本地存储 #region 发送结果MES ,本地存储
if (Code_NG == 1) if (Code_NG == 1)
{ {
//if (i >= 4)
//{
// var bar = list[i].BarCode;
//}
string MesMessage = ""; string MesMessage = "";
MesResType mesResType = MesResType.C; MesResType mesResType = MesResType.C;
if (CommonMethods.mesConfig.isUpMes) //if (CommonMethods.mesConfig.isUpMes)
{ //{
#region 出站 分档取消出站 // // 2025/12/25 打开出站
////{ // #region 出站 分档取消出站
//// string url = CommonMethods.mesConfig.OutStationMesUrl; // {
//// string siteCode = CommonMethods.mesConfig.siteCode; // string url = CommonMethods.mesConfig.OutStationMesUrl;
//// string lineCode = CommonMethods.mesConfig.lineCode; // string siteCode = CommonMethods.mesConfig.siteCode;
//// string equipNum = CommonMethods.mesConfig.equipNum; // string lineCode = CommonMethods.mesConfig.lineCode;
//// string materialCode = CommonMethods.mesConfig.MaterialCode; // string equipNum = CommonMethods.mesConfig.equipNum;
//// string userName = CommonMethods.mesConfig.mesUserName; // string materialCode = CommonMethods.mesConfig.MaterialCode;
// string userName = CommonMethods.mesConfig.mesUserName;
// int type = 1;
// //int type = 1; // //int type = 1;
//// //int type = 1; // //string materialLotCodeLocator = "";
//// //string materialLotCodeLocator = ""; // var (NGcodeList, NGmessage) = NGWGJcode(m.CCD_NgNo, i);
//// var (NGcodeList, NGmessage) = NGWGJcode(m.CCD_NgNo, i); // bool Res = CommonMethods.hbgMes.OutboundInformations(url, siteCode, lineCode, equipNum, materialCode, userName, m, ref MesMessage, ref mesResType, NGcodeList, NGmessage);
//// bool Res = CommonMethods.hbgMes.OutboundInformations(url, siteCode, lineCode, equipNum, materialCode, userName, m, ref MesMessage, ref mesResType, NGcodeList, NGmessage); // //bool Res = CommonMethods.hbgMes.SingleCellOutStation(url, siteCode, lineCode, equipNum, materialCode, userName, m,)
//// //bool Res = CommonMethods.hbgMes.SingleCellOutStation(url, siteCode, lineCode, equipNum, materialCode, userName, m,) // if (MesMessage.Contains("发生一个或多个错误"))
//// if (MesMessage.Contains("发生一个或多个错误")) // {
//// { // MesMessage = "上传失败,";
//// MesMessage = "上传失败,"; // }
//// } // else
//// else // {
//// { // m.Flag = 1;
//// m.Flag = 1; // }
//// } // if (Res)
//// if (Res) // {
//// { // //MES出站判定结果
//// //MES出站判定结果 // m.Result = MyRes[i];
//// m.Result = MyRes[i]; // ////芯包重量1判定结果
//// ////芯包重量1判定结果 // //if (m.list_Data1[i, 10] == 2) { m.Remark += "芯包重量NG,"; }
//// //if (m.list_Data1[i, 10] == 2) { m.Remark += "芯包重量NG,"; } // ////芯包侧厚判定结果
//// ////芯包侧厚判定结果 // //if (m.list_Data1[i, 11] == 2) { m.Remark += "芯包侧厚NG,"; }
//// //if (m.list_Data1[i, 11] == 2) { m.Remark += "芯包侧厚NG,"; } // ////芯包CCD极性检测结果
//// ////芯包CCD极性检测结果 // //if (m.list_Data1[i, 12] == 2) { m.Remark += "芯包CCD极性检测NG,"; }
//// //if (m.list_Data1[i, 12] == 2) { m.Remark += "芯包CCD极性检测NG,"; } // m.Remark += MesMessage;
//// m.Remark += MesMessage; // }
//// } // else
//// else // {
//// { // switch (mesResType)
//// switch (mesResType) // {
//// { // case MesResType.A:// 停线,设备报警停机
//// case MesResType.A:// 停线,设备报警停机 // //m.listRes[i] = 10;
//// //m.listRes[i] = 10; // // m.Result = MyRes[i] = 2;
//// // m.Result = MyRes[i] = 2; // m.Result = MyRes[i] = 3;
//// m.Result = MyRes[i] = 3; // m.Remark += "MES NG";
//// m.Remark += "MES NG"; // break;
//// break; // case MesResType.B://不停机,MEs NG品要排出,要给PLC发NG信号
//// case MesResType.B://不停机,MEs NG品要排出,要给PLC发NG信号 // //m.listRes[i] = 9;
//// //m.listRes[i] = 9; // // m.Result = MyRes[i] = 2;
//// // m.Result = MyRes[i] = 2; // m.Result = MyRes[i] = 3;
//// m.Result = MyRes[i] = 3; // m.Remark += "MES NG";
//// m.Remark += "MES NG"; // break;
//// break; // case MesResType.C://可忽略
//// case MesResType.C://可忽略 // //m.listRes[i] = 1;
//// //m.listRes[i] = 1; // // m.Result = MyRes[i] = 2;
//// // m.Result = MyRes[i] = 2; // m.Result = MyRes[i] = 1;
//// m.Result = MyRes[i] = 1; // m.Remark += "MES Alerm OK";
//// m.Remark += "MES Alerm OK"; // break;
//// break; // case MesResType.D://可忽略
//// case MesResType.D://可忽略 // //m.listRes[i] = 1;
//// //m.listRes[i] = 1; // // m.Result = MyRes[i] = 2;
//// // m.Result = MyRes[i] = 2; // m.Result = MyRes[i] = 1;
//// m.Result = MyRes[i] = 1; // m.Remark += "MES OK";
//// m.Remark += "MES OK"; // break;
//// break; // default:
//// default: // m.Remark += "MES NG";
//// m.Remark += "MES NG"; // m.Result = MyRes[i] = 3;
//// m.Result = MyRes[i] = 3; // break;
//// break; // }
//// } // ////芯包重量1判定结果
//// ////芯包重量1判定结果 // //if (m.list_Data1[i, 10] == 2) { m.Remark += "芯包重量NG,"; }
//// //if (m.list_Data1[i, 10] == 2) { m.Remark += "芯包重量NG,"; } // ////芯包侧厚判定结果
//// ////芯包侧厚判定结果 // //if (m.list_Data1[i, 11] == 2) { m.Remark += "芯包侧厚NG,"; }
//// //if (m.list_Data1[i, 11] == 2) { m.Remark += "芯包侧厚NG,"; } // ////芯包CCD极性检测结果
//// ////芯包CCD极性检测结果 // //if (m.list_Data1[i, 12] == 2) { m.Remark += "芯包CCD极性检测NG,"; }
//// //if (m.list_Data1[i, 12] == 2) { m.Remark += "芯包CCD极性检测NG,"; } // m.Remark += MesMessage;
//// m.Remark += MesMessage; // }
//// } // }
////} // #endregion
#endregion // //发送产品结果参数给MES
//发送产品结果参数给MES // //bool Res1 = CommonMethods.hbgMes.ProducResultParam(ur2, siteCode1, lineCode1, equipNum1, materialCode1, userName1, m, unloadType, ref Mesage);
//bool Res1 = CommonMethods.hbgMes.ProducResultParam(ur2, siteCode1, lineCode1, equipNum1, materialCode1, userName1, m, unloadType, ref Mesage);
if (m.Flag == 1) // if (m.Flag == 1)
m.UpState = "已上传"; // m.UpState = "已上传";
else // else
m.UpState = "未上传"; // m.UpState = "未上传";
} //}
else //else
{ {
m.Result = MyRes[i]; m.Result = MyRes[i];
m.Remark += "本地存储"; m.Remark += "本地存储";
@@ -2027,11 +1935,15 @@ namespace JinYuan.ControlCenters
#region OK分档查询 #region OK分档查询
//if (CommonMethods.sysConfig.MesModeSwitching && CommonMethods.mesConfig.isConnected) //if (CommonMethods.sysConfig.MesModeSwitching && CommonMethods.mesConfig.isConnected)
{ //1 分选测厚度NG ,2 分选外观不良 21分选一档,22分选二档,23分选三档、24分选四档,25分档5 26 ==6 { //1 分选测厚度NG ,2 分选外观不良 21分选一档,22分选二档,23分选三档、24分选四档,25分档5 26 ==6
// 99 外观检NG 98 性能NG 97 其它NG
if (list[i].Result == 1) //2025/12/25 ok
if (Code_NG == 1)
{ {
if (CommonMethods.mesConfig.isUpMes) if (CommonMethods.mesConfig.isUpMes)
{ {
//分档接口
//分档接口 //分档接口
//21~26 OK挡位 //21~26 OK挡位
var (success, mesage, mesResType, mesResFangAnType) = CommonMethods.hbgMes.MesGrading( var (success, mesage, mesResType, mesResFangAnType) = CommonMethods.hbgMes.MesGrading(
@@ -2045,6 +1957,7 @@ namespace JinYuan.ControlCenters
try try
{ {
//listGradeResult[i] = (short)26;//默认分档OK //listGradeResult[i] = (short)26;//默认分档OK
list[i].Remark = "外观检OK分档"; list[i].Remark = "外观检OK分档";
list[i].Mes_battery_Grade = mesResType[0]; list[i].Mes_battery_Grade = mesResType[0];
@@ -2054,48 +1967,55 @@ namespace JinYuan.ControlCenters
if (mesResType[0].Equals(CommonMethods.mesConfig.Grading1)) if (mesResType[0].Equals(CommonMethods.mesConfig.Grading1))
{ {
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[0] + 20); listGradeResult[i] = (short)(CommonMethods.MESGradingSet[0] );
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}"; list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
} }
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading2)) else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading2))
{ {
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[1] + 20); listGradeResult[i] = (short)(CommonMethods.MESGradingSet[1]);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}"; list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
} }
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading3)) else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading3))
{ {
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[2] + 20); listGradeResult[i] = (short)(CommonMethods.MESGradingSet[2]);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}"; list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
} }
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading4)) else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading4))
{ {
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[3] + 20); listGradeResult[i] = (short)(CommonMethods.MESGradingSet[3]);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}"; list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
} }
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading5)) else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading5))
{ {
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[4] + 20); listGradeResult[i] = (short)(CommonMethods.MESGradingSet[4]);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}"; list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
} }
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading6)) else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading6))
{ {
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5] + 20); listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5]);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}"; list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
} }
else else
{ {
listGradeResult[i] = (short)(97);// 走分档NG
list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},MES未反馈正确档位";
throw new Exception("MES未反馈正确档位"); throw new Exception("MES未反馈正确档位");
} }
} }
else else
{
listGradeResult[i] = (short)(99);// 走分档NG
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]},MES未反馈正确档位";
throw new Exception("MES未反馈正确档位"); throw new Exception("MES未反馈正确档位");
}
} }
catch (Exception ex) catch (Exception ex)
{ {
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5] + 20); //(short)26; //listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5] + 20); //(short)26;
listGradeResult[i] = (short)(99);// 走分档NG
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OK分档NG,MES未反馈正确档位"; list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OK分档NG,MES未反馈正确档位";
LoggerHelp.WriteLog("解析出站MES分档数据异常:{ex.Message}", "SysErrorLog"); LoggerHelp.WriteLog("解析出站MES分档数据异常:{ex.Message}", "SysErrorLog");
@@ -2104,7 +2024,7 @@ namespace JinYuan.ControlCenters
else else
{ {
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OK分档,MES断连"; list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OK分档,MES断连";
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5] + 20); //(short)26; listGradeResult[i] = 99; //(short)26;
// list[i].Result = "MES NG"; // list[i].Result = "MES NG";
CommonMethods.PlcLink.WriteValue("D80", 1, Data_Type.Short); CommonMethods.PlcLink.WriteValue("D80", 1, Data_Type.Short);
//反馈MES结果 //反馈MES结果
@@ -2112,23 +2032,17 @@ namespace JinYuan.ControlCenters
} }
} }
else else
{ {
//厚度不良分档 1 测厚不良 2 外观不良 listGradeResult[i] = 97;
if (list[i].CCD19 != 1)
{ list[i].Remark = $"出站条码[{list[i].BarCode}]扫码NG";
listGradeResult[i] = 1;
list[i].Remark = $"出站条码[{list[i].BarCode}]测厚度NG";
}
else
{
//外观不良分档
listGradeResult[i] = 2;
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检NG不分类";
}
} }
listRes[i] = listGradeResult[i]; listRes[i] = listGradeResult[i];
list[i].Result = listGradeResult[i]; list[i].Result = listGradeResult[i];
MyRes[i] = listGradeResult[i]; MyRes[i] = listGradeResult[i];
} }
@@ -2167,6 +2081,9 @@ namespace JinYuan.ControlCenters
JYResult result1 = null; JYResult result1 = null;
JYResult result2 = null; JYResult result2 = null;
JYResult result3 = null; JYResult result3 = null;
JYResult result4 = null;
JYResult result5 = null;
JYResult result6 = null;
if (pf.IsFeedbackPlc) if (pf.IsFeedbackPlc)
{ {
//result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC //result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC
@@ -2180,6 +2097,9 @@ namespace JinYuan.ControlCenters
result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC
result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC
result3 = CommonMethods.PlcLink.WriteValue(pf.VarList[4].VarAddress, MyRes[2], Data_Type.Short);//判断结果写入PLC result3 = CommonMethods.PlcLink.WriteValue(pf.VarList[4].VarAddress, MyRes[2], Data_Type.Short);//判断结果写入PLC
result4 = CommonMethods.PlcLink.WriteValue(pf.VarList[5].VarAddress, MyRes[3], Data_Type.Short);//判断结果写入PLC
result5 = CommonMethods.PlcLink.WriteValue(pf.VarList[6].VarAddress, MyRes[4], Data_Type.Short);//判断结果写入PLC
result6 = CommonMethods.PlcLink.WriteValue(pf.VarList[7].VarAddress, MyRes[5], Data_Type.Short);//判断结果写入PLC
} }
//else //else
//{ //{
@@ -2189,9 +2109,9 @@ namespace JinYuan.ControlCenters
// result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC // result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC
//} //}
} }
JYResult result4 = CommonMethods.PlcLink.WriteValue(pf.VarList[0].VarAddress, 0);//置位0 JYResult result_zw = CommonMethods.PlcLink.WriteValue(pf.VarList[0].VarAddress, 0);//置位0
CommonMethods.AddDataMonitorLog(0, $"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]}"); CommonMethods.AddDataMonitorLog(0, $"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]},{MyRes[3]},{MyRes[4]},{MyRes[5]}");
LoggerHelp.WriteLog($"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]}"); LoggerHelp.WriteLog($"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]},{MyRes[3]},{MyRes[4]},{MyRes[5]}");
//Task.Run(() => { SendDateMQTT.Instance.EnterandExitSendMessge(1); }); //Task.Run(() => { SendDateMQTT.Instance.EnterandExitSendMessge(1); });
//数据存储 - 异步处理 //数据存储 - 异步处理
@@ -2357,7 +2277,7 @@ namespace JinYuan.ControlCenters
List<string> NGcodelist = new List<string>(); List<string> NGcodelist = new List<string>();
List<string> NGmessagelist = new List<string>(); List<string> NGmessagelist = new List<string>();
for (int i = 0; i < 16; i++) for (int i = 0; i < 27; i++)
{ {
if (lstResult[index, i] != 0) if (lstResult[index, i] != 0)
{ {
@@ -2392,6 +2312,7 @@ namespace JinYuan.ControlCenters
return NGcodelist; return NGcodelist;
} }
#endregion #endregion
#region 读取下料数据 sql数据库 #region 读取下料数据 sql数据库
private List<BGearEntity> GetBlankingData(List<string> listBarCode) private List<BGearEntity> GetBlankingData(List<string> listBarCode)
{ {
@@ -2477,5 +2398,5 @@ namespace JinYuan.ControlCenters
#endregion #endregion
} }
} }
#endregion
#endregion
File diff suppressed because it is too large Load Diff
@@ -108,6 +108,54 @@ namespace JinYuan.ControlCenters
#endregion #endregion
#region 11、安全装置状态
/// <summary>
/// 安全装置状态
/// </summary>
/// <param name="strStatus"></param>
/// <returns></returns>
public static string SafeEqptAlarm(string StartDate, List<SafeEqptCode> safeEqptCodeLists = null)
{
var nowTime = DateTime.Now;
string resJson = "";
string josnTxtMsg = string.Empty;
string Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
try
{
//SafeEqptStatusParam statusParam = new SafeEqptStatusParam();
//statusParam.siteCode = CommonMethods.mesConfig.siteCode;
//statusParam.lineCode = CommonMethods.mesConfig.lineCode;
//statusParam.equipNum = CommonMethods.mesConfig.equipNum;
//statusParam.userName = CommonMethods.mesConfig.mesUserName;
//statusParam.seatId = "";
//statusParam.recordDate = StartDate;
//statusParam.uploadTime = Date;
//statusParam.safeEqptCodeList = safeEqptCodeLists;
//string SendJosn = JsonConvert.SerializeObject(statusParam);
var sw = new Stopwatch();
for (int i = 0; i < safeEqptCodeLists.Count; i++)
{
string SendJosn = JsonConvert.SerializeObject(safeEqptCodeLists[i]);
sw.Start();
resJson = MESApiHelper.HttpPostJsonAPI(CommonMethods.mesConfig.SafeEqptStatusMesUrl, SendJosn);
sw.Stop();
josnTxtMsg = $"{nowTime.ToString("yyyy-MM-dd HH:mm:ss.fff")}:调用MES安全设备运行状态接口:{CommonMethods.mesConfig.SafeEqptStatusMesUrl},请求数据为:{SendJosn},\n{nowTime.AddMilliseconds(sw.ElapsedMilliseconds).ToString("yyyy-MM-dd HH:mm:ss.fff")}:接口耗时:{sw.ElapsedMilliseconds}ms,返回结果:{resJson}";
TxtHelper.WriteTxt($@"{CommonMethods.strMesLogspath}\{nowTime.ToString("yyyyMMdd")}\设备运行状态\{nowTime.ToString("HH")}.txt", josnTxtMsg);
}
}
catch (Exception ex)
{
LoggerHelp.WriteEX("调用MES安全设备运行状态接口", ex);
}
return resJson;
}
#endregion
} }
} }
+4 -2
View File
@@ -1934,13 +1934,15 @@ namespace JinYuan.MES
} }
if (row != null) if (row != null)
{ {
MesMessage = row.message.ToString(); MesMessage = "返回为空!";
// MesMessage = row.message.ToString();
MesGrading = row.rank; MesGrading = row.rank;
MesGradingFangAn = row.sortingScheme; MesGradingFangAn = row.sortingScheme;
} }
else else
{ {
MesMessage = "返回为空!"; MesMessage = row.message.ToString();
// MesMessage = "返回为空!";
MesGrading = "NULL"; MesGrading = "NULL";
MesGradingFangAn = "NULL"; MesGradingFangAn = "NULL";
} }
+57
View File
@@ -60,4 +60,61 @@ namespace JinYuan.MES.Models
/// </summary> /// </summary>
public string faultCode { get; set; } public string faultCode { get; set; }
} }
public class SafeEqptStatusParam
{
/// <summary>
/// 工厂代码
/// </summary>
public string siteCode { get; set; }
/// <summary>
/// 产线编号
/// </summary>
public string lineCode { get; set; }
/// <summary>
/// 设备编号
/// </summary>
public string equipNum { get; set; }
/// <summary>
///
/// </summary>
public string materialCode { get; set; }
/// <summary>
/// 员工账号
/// </summary>
public string userName { get; set; }
/// <summary>
/// 库位ID
/// </summary>
public string seatId { get; set; }
/// <summary>
/// 采集时间
/// </summary>
public string recordDate { get; set; }
/// <summary>
/// 设备状态 。Run:(正常运行)、Alert:(故障调试)、Idle:(闲置待机)、Maintain(停止运行)
/// </summary>
public string statusCode { get; set; }
/// <summary>
/// 状态变更时间
/// </summary>
public string uploadTime { get; set; }
/// <summary>
/// 唯一标识符号
/// </summary>
public string guid { get; set; }
public List<SafeEqptCode> safeEqptCodeList { get; set; }
}
public class SafeEqptCode
{
/// <summary>
/// 安全装置编码
/// </summary>
public string equipNum { get; set; }
/// <summary>
/// 设备状态
/// </summary>
public string status { get; set; }
}
} }
+41 -16
View File
@@ -7,23 +7,23 @@ namespace JinYuan.Models
/// </summary> /// </summary>
public class BGearEntity public class BGearEntity
{ {
public int[] MyNo = new int[3];//AB序号 public int[] MyNo = new int[6];//AB序号
public short[] listRes = new short[3];//AB反馈结果 public short[] listRes = new short[6];//AB反馈结果
public string[] ScanTime = new string[3];//AB芯包扫码时间 public string[] ScanTime = new string[6];//AB芯包扫码时间
public string[] listBatCode = new string[3];//芯包条码 public string[] listBatCode = new string[6];//芯包条码
public string[] judgment_result = new string[3];//AB芯包出站判定结果 public string[] judgment_result = new string[6];//AB芯包出站判定结果
public short[,] list_Data1 = new short[3, 28];//芯包信息1 public short[,] list_Data1 = new short[6, 28];//芯包信息1
public int[,] list_Data2 = new int[3, 19];//芯包信息2(焊机相关次数) public int[,] list_Data2 = new int[6, 19];//芯包信息2(焊机相关次数)
public float[,] list_Data3 = new float[3, 54];//芯包信息3(设定值) public float[,] list_Data3 = new float[6, 54];//芯包信息3(设定值)
public float[,] list_Data4 = new float[3, 47];//芯包信息4(实际值) public float[,] list_Data4 = new float[6, 47];//芯包信息4(实际值)
public short[,] list_pan = new short[3, 1];//物流线托盘码 public short[,] list_pan = new short[6, 1];//物流线托盘码
// //
public int[,] CCD_Data = new int[3, 16];//芯包CCD信息1,2,3 public int[,] CCD_Data = new int[6,27];//芯包CCD信息1,2,3
public int[,] CCD_NgNo = new int[3, 16];//芯包不良编码信息1,2,3 public int[,] CCD_NgNo = new int[6, 27];//芯包不良编码信息1,2,3
public float[,] Thickness_Data = new float[3, 3];//电芯3_厚度数据信息1,2,3 public float[,] Thickness_Data = new float[6, 3];//电芯3_厚度数据信息1,2,3
public int[,] Thickness_PLCData = new int[3, 3];//电芯3_厚度数据OKNG1,2,3 与ccd一样 1 OK,0 NG,2 缺图 public int[,] Thickness_PLCData = new int[6, 3];//电芯3_厚度数据OKNG1,2,3 与ccd一样 1 OK,0 NG,2 缺图
/// <summary> /// <summary>
/// 通道 /// 通道
/// </summary> /// </summary>
@@ -69,6 +69,13 @@ namespace JinYuan.Models
public int CCD18 { get; set; } public int CCD18 { get; set; }
public int CCD19 { get; set; } public int CCD19 { get; set; }
public int CCD20 { get; set; } public int CCD20 { get; set; }
public int CCD21 { get; set; }
public int CCD22 { get; set; }
public int CCD23 { get; set; }
public int CCD24 { get; set; }
public int CCD25 { get; set; }
public int CCD26 { get; set; }
public int CCD27 { get; set; }
/// <summary> /// <summary>
/// 电芯1_厚度数据1 /// 电芯1_厚度数据1
@@ -111,8 +118,15 @@ namespace JinYuan.Models
public string CCDResult18 { get; set; } public string CCDResult18 { get; set; }
public string CCDResult19 { get; set; } public string CCDResult19 { get; set; }
public string CCDResult20 { get; set; } public string CCDResult20 { get; set; }
public string CCDResult21 { get; set; }
public string CCDResult22 { get; set; }
public string CCDResult23 { get; set; }
public string CCDResult24 { get; set; }
public string CCDResult25 { get; set; }
public string CCDResult26 { get; set; }
public string CCDResult27 { get; set; }
public string CSBYHCODEA { get; set; }
/// <summary> /// <summary>
/// 芯包条码 /// 芯包条码
/// </summary> /// </summary>
@@ -191,10 +205,21 @@ namespace JinYuan.Models
public string CCD15NgCode { get; set; } public string CCD15NgCode { get; set; }
public string CCD16NgCode { get; set; } public string CCD16NgCode { get; set; }
public string CCD17NgCode { get; set; } public string CCD17NgCode { get; set; }
public string CCD18NgCode { get; set; }
public string CCD19NgCode { get; set; }
public string CCD20NgCode { get; set; }
public string CCD21NgCode { get; set; }
public string CCD22NgCode { get; set; }
public string CCD23NgCode { get; set; }
public string CCD24NgCode { get; set; }
public string CCD25NgCode { get; set; }
public string CCD26NgCode { get; set; }
public string CCD27NgCode { get; set; }
/// <summary> /// <summary>
/// 二维码ng 不良编号 /// 二维码ng 不良编号
/// </summary> /// </summary>
public string CCD18NgCode { get; set; }
public string BarCodeResult { get; set; } public string BarCodeResult { get; set; }
/// <summary> /// <summary>
/// 进出站条码匹配结果 /// 进出站条码匹配结果
+154 -12
View File
@@ -8,6 +8,7 @@ using JinYuan.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Threading; using System.Threading;
using System.Windows.Forms; using System.Windows.Forms;
@@ -72,7 +73,6 @@ namespace JinYuan.VirtualDataLibrary
public static List<NgCodeEntity> listNgCodeEntity = new List<NgCodeEntity>(); public static List<NgCodeEntity> listNgCodeEntity = new List<NgCodeEntity>();
public static int InvadTime; public static int InvadTime;
/// <summary> /// <summary>
@@ -90,7 +90,6 @@ namespace JinYuan.VirtualDataLibrary
/// </summary> /// </summary>
public static DBSQL dBSQL { get; } = new DBSQL(); public static DBSQL dBSQL { get; } = new DBSQL();
/// <summary> /// <summary>
/// MES配置文件类 /// MES配置文件类
/// </summary> /// </summary>
@@ -99,7 +98,6 @@ namespace JinYuan.VirtualDataLibrary
///创建一个全局的连接状态 ///创建一个全局的连接状态
public static bool connectState = false; public static bool connectState = false;
/// <summary> /// <summary>
/// 滴答次数 /// 滴答次数
/// </summary> /// </summary>
@@ -309,12 +307,11 @@ namespace JinYuan.VirtualDataLibrary
var res = false; var res = false;
try try
{ {
if (plcDevice != null && plcDevice.IsConnected) if (plcDevice != null && plcDevice.IsConnected)
{ {
DateTime Date = DateTime.Now; DateTime Date = DateTime.Now;
#region 档位写入 #region 档位写入
// short[] MESGradingSet = new short[] { 0, 0, 0, 0, 0, 0 }; MESGradingSet = new short[] { 0, 0, 0, 0, 0, 0 };
//1 //1
MESGradingSet[0] = (short)21; // 21 22 23 24 25 26 MESGradingSet[0] = (short)21; // 21 22 23 24 25 26
//2 //2
@@ -330,7 +327,10 @@ namespace JinYuan.VirtualDataLibrary
if (CommonMethods.mesConfig.Grading3.Trim().Equals(CommonMethods.mesConfig.Grading2.Trim())) if (CommonMethods.mesConfig.Grading3.Trim().Equals(CommonMethods.mesConfig.Grading2.Trim()))
MESGradingSet[2] = MESGradingSet[1]; MESGradingSet[2] = MESGradingSet[1];
else else
MESGradingSet[2] = (short)(MESGradingSet[1] + 1); {
var maxGrade = MESGradingSet.Max();
MESGradingSet[2] = (short)(maxGrade + 1);
}
} }
//4 //4
if (CommonMethods.mesConfig.Grading4.Trim().Equals(CommonMethods.mesConfig.Grading1.Trim())) if (CommonMethods.mesConfig.Grading4.Trim().Equals(CommonMethods.mesConfig.Grading1.Trim()))
@@ -344,7 +344,10 @@ namespace JinYuan.VirtualDataLibrary
if (CommonMethods.mesConfig.Grading4.Trim().Equals(CommonMethods.mesConfig.Grading3.Trim())) if (CommonMethods.mesConfig.Grading4.Trim().Equals(CommonMethods.mesConfig.Grading3.Trim()))
MESGradingSet[3] = MESGradingSet[2]; MESGradingSet[3] = MESGradingSet[2];
else else
MESGradingSet[3] = (short)(MESGradingSet[2] + 1); {
var maxGrade = MESGradingSet.Max();
MESGradingSet[3] = (short)(maxGrade + 1);
}
} }
} }
@@ -364,7 +367,10 @@ namespace JinYuan.VirtualDataLibrary
if (CommonMethods.mesConfig.Grading5.Trim().Equals(CommonMethods.mesConfig.Grading4.Trim())) if (CommonMethods.mesConfig.Grading5.Trim().Equals(CommonMethods.mesConfig.Grading4.Trim()))
MESGradingSet[4] = MESGradingSet[3]; MESGradingSet[4] = MESGradingSet[3];
else else
MESGradingSet[4] = (short)(MESGradingSet[3] + 1); {
var maxGrade = MESGradingSet.Max();
MESGradingSet[4] = (short)(maxGrade + 1);
}
} }
} }
} }
@@ -388,11 +394,150 @@ namespace JinYuan.VirtualDataLibrary
if (CommonMethods.mesConfig.Grading6.Trim().Equals(CommonMethods.mesConfig.Grading5.Trim())) if (CommonMethods.mesConfig.Grading6.Trim().Equals(CommonMethods.mesConfig.Grading5.Trim()))
MESGradingSet[5] = MESGradingSet[4]; MESGradingSet[5] = MESGradingSet[4];
else else
MESGradingSet[5] = (short)(MESGradingSet[4] + 1); {
var maxGrade = MESGradingSet.Max();
MESGradingSet[5] = (short)(maxGrade + 1);
} }
} }
} }
} }
}
//其他if
#region 性能NG
if (CommonMethods.mesConfig.Grading6=="NG")
{
MESGradingSet[5] = 98;
}
if (CommonMethods.mesConfig.Grading5 == "NG")
{
MESGradingSet[4] = 98;
}
if (CommonMethods.mesConfig.Grading4 == "NG")
{
MESGradingSet[3] = 98;
}
if (CommonMethods.mesConfig.Grading3 == "NG")
{
MESGradingSet[2] = 98;
}
if (CommonMethods.mesConfig.Grading2 == "NG")
{
MESGradingSet[1] = 98;
}
if (CommonMethods.mesConfig.Grading1 == "NG")
{
MESGradingSet[0] = 98;
}
#endregion
#region 外观检NG
if (CommonMethods.mesConfig.Grading6 == "E63yG")
{
MESGradingSet[5] = 31;
}
if (CommonMethods.mesConfig.Grading5 == "E63yG")
{
MESGradingSet[4] = 31;
}
if (CommonMethods.mesConfig.Grading4 == "E63yG")
{
MESGradingSet[3] = 31;
}
if (CommonMethods.mesConfig.Grading3 == "E63yG")
{
MESGradingSet[2] = 31;
}
if (CommonMethods.mesConfig.Grading2 == "E63yG")
{
MESGradingSet[1] = 31;
}
if (CommonMethods.mesConfig.Grading1 == "E63yG")
{
MESGradingSet[0] = 31;
}
if (CommonMethods.mesConfig.Grading6 == "F63yG")
{
MESGradingSet[5] = 32;
}
if (CommonMethods.mesConfig.Grading5 == "F63yG")
{
MESGradingSet[4] = 32;
}
if (CommonMethods.mesConfig.Grading4 == "F63yG")
{
MESGradingSet[3] = 32;
}
if (CommonMethods.mesConfig.Grading3 == "F63yG")
{
MESGradingSet[2] = 32;
}
if (CommonMethods.mesConfig.Grading2 == "F63yG")
{
MESGradingSet[1] = 32;
}
if (CommonMethods.mesConfig.Grading1 == "F63yG")
{
MESGradingSet[0] = 32;
}
#endregion
#region 其它NG
if (CommonMethods.mesConfig.Grading6 == "拦截" || CommonMethods.mesConfig.Grading6 == "扫码NG" || CommonMethods.mesConfig.Grading6 == "其它")
{
MESGradingSet[5] = 97;
}
if (CommonMethods.mesConfig.Grading5 == "拦截" || CommonMethods.mesConfig.Grading6 == "扫码NG" || CommonMethods.mesConfig.Grading6 == "其它")
{
MESGradingSet[4] = 97;
}
if (CommonMethods.mesConfig.Grading4 == "拦截" || CommonMethods.mesConfig.Grading6 == "扫码NG" || CommonMethods.mesConfig.Grading6 == "其它")
{
MESGradingSet[3] = 97;
}
if (CommonMethods.mesConfig.Grading3 == "拦截" || CommonMethods.mesConfig.Grading6 == "扫码NG" || CommonMethods.mesConfig.Grading6 == "其它")
{
MESGradingSet[2] = 97;
}
if (CommonMethods.mesConfig.Grading2 == "拦截" || CommonMethods.mesConfig.Grading6 == "扫码NG" || CommonMethods.mesConfig.Grading6 == "其它")
{
MESGradingSet[1] = 97;
}
if (CommonMethods.mesConfig.Grading1 == "拦截" || CommonMethods.mesConfig.Grading6 == "扫码NG" || CommonMethods.mesConfig.Grading6 == "其它")
{
MESGradingSet[0] = 97;
}
#endregion
#region 性能NG
if (CommonMethods.mesConfig.Grading6 == "不设置")
{
MESGradingSet[5] = 0;
}
if (CommonMethods.mesConfig.Grading5 == "不设置")
{
MESGradingSet[4] = 0;
}
if (CommonMethods.mesConfig.Grading4 == "不设置")
{
MESGradingSet[3] = 0;
}
if (CommonMethods.mesConfig.Grading3 == "不设置")
{
MESGradingSet[2] = 0;
}
if (CommonMethods.mesConfig.Grading2 == "不设置")
{
MESGradingSet[1] = 0;
}
if (CommonMethods.mesConfig.Grading1 == "不设置")
{
MESGradingSet[0] = 0;
}
#endregion
#endregion #endregion
var isWrite1 = PlcLink.WriteValue("D2600", MESGradingSet[0], Data_Type.Short); var isWrite1 = PlcLink.WriteValue("D2600", MESGradingSet[0], Data_Type.Short);
var isWrite2 = PlcLink.WriteValue("D2601", MESGradingSet[1], Data_Type.Short); var isWrite2 = PlcLink.WriteValue("D2601", MESGradingSet[1], Data_Type.Short);
@@ -405,9 +550,7 @@ namespace JinYuan.VirtualDataLibrary
AddDataMonitorLog(0, $"OK分档档位写入PLC成功![2600~2605]{string.Join(",", MESGradingSet)}"); AddDataMonitorLog(0, $"OK分档档位写入PLC成功![2600~2605]{string.Join(",", MESGradingSet)}");
return true; return true;
} }
} }
} }
catch (Exception ex) catch (Exception ex)
@@ -415,7 +558,6 @@ namespace JinYuan.VirtualDataLibrary
AddLog(true, ex.ToString()); AddLog(true, ex.ToString());
} }
return false; return false;
} }
#endregion #endregion
@@ -0,0 +1,801 @@
using JinYuan.CommunicationLib;
using JinYuan.CommunicationLib.Base;
using JinYuan.CommunicationLib.Enum;
using JinYuan.DAL;
using JinYuan.Helper;
using JinYuan.MES;
using JinYuan.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Windows.Forms;
namespace JinYuan.VirtualDataLibrary
{
public class CommonMethods
{
/// <summary>
/// 本地数据库
/// </summary>
public static ISugarHepler db = new SQLSugarService();
/// <summary>
/// 远程服务段数据库
/// </summary>
public static ISugarHepler dbServer = new SQLSugarService();
/// <summary>
/// MES接口
/// </summary>
public static IMes hbgMes = new MesDataProcess();
/// <summary>
/// 参数
/// </summary>
public static ProductModelParam parRange = new ProductModelParam();
/// <summary>
/// 全局钩子
/// </summary>
public static ScanerHook listener = new ScanerHook();
/// <summary>
/// 创建个全局焊接功率队列数据存储
/// </summary>
public static List<Queue<double>> QWeldingPowerData = new List<Queue<double>>();
/// <summary>
/// 创建个全局入壳推力队列数据存储
/// </summary>
public static List<Queue<double>> QPlanenessData = new List<Queue<double>>();
/// <summary>
/// 创建全局的登录对象
/// </summary>
public static SysAdmin currentAdmin = null;
/// <summary>
/// 登录是否成功
/// </summary>
public static bool IsLoginOk = false;
/// <summary>
/// 创建一个设备对象
/// </summary>
public static Device plcDevice;
/// <summary>
/// ModbusTCP通信对象
/// </summary>
//public static OmronFinsTCP plc = new OmronFinsTCP();
//创建一个全局的配置对象
public static SysConfig sysConfig = new SysConfig();
/// <summary>
/// 创建全局的登录对象
/// </summary>
public static List<NgCodeEntity> listNgCodeEntity = new List<NgCodeEntity>();
public static int InvadTime;
/// <summary>
/// 智能电表
/// </summary>
public static List<ElectricEnergy> listElectricEnergy = new List<ElectricEnergy>();
/// <summary>
///是否开启刷新
/// </summary>
public static bool isRefreshTimerWeeding = false;
/// <summary>
/// SQL语句
/// </summary>
public static DBSQL dBSQL { get; } = new DBSQL();
/// <summary>
/// MES配置文件类
/// </summary>
public static MesConfig mesConfig = new MesConfig();
public static short[] MESGradingSet = new short[] { 0,0,0,0,0,0};
///创建一个全局的连接状态
public static bool connectState = false;
/// <summary>
/// 滴答次数
/// </summary>
public static int tickCount = 0;
/// <summary>
/// QIEHUAN
/// </summary>
public static int tickHomeCount = 0;
/// <summary>
/// 报警信息
/// </summary>
public static string SlideAlarmText = "当前无报警";
/// <summary>
/// 退出
/// </summary>
public static bool IsExit = false;
/// <summary>
/// 是否登出账户
/// </summary>
public static bool LoginOut = false;
/// <summary>
/// 是否上传MES
/// </summary>
public static bool IsUpMes { get; set; }
/// <summary>
/// 是否运行
/// </summary>
public static bool IsRun { get; set; } = false;
/// <summary>
///第一次读取
/// </summary>
public static bool IsFirst = false;
/// <summary>
/// 焊接功率波形图显示条数
/// </summary>
public static int ChatLineCount = 3;
/// <summary>
/// 员工号
/// </summary>
public static string strWorker { get; set; }
/// <summary>
/// 是否开启智能电表
/// </summary>
public static bool IsStartZNDB { get; set; } = false;
/// <summary>
/// 白夜班
/// </summary>
public static string strClass { get; set; } = "白班";
/// <summary>
/// 时间变更
/// </summary>
public static string ChangeClassTime { get; set; } = "20:30:00";
/// <summary>
/// 设备状态
/// </summary>
public static List<bool> Statues { get; set; }
/// <summary>
/// 服务器链接状态
/// </summary>
public static bool EMCStatues { get; set; }
#region 小时产能
/// <summary>
/// 上个时间点的总数
/// </summary>
public static int LastTotalNum { get; set; } = 0;
/// <summary>
/// 上个时间点良品数
/// </summary>
public static int LastOkNum { get; set; } = 0;
/// <summary>
/// 上一次重置计数的时间
/// </summary>
public static string LastResetTime { get; set; }
/// <summary>
/// 上一次的小时
/// </summary>
public static int LastHour { get; set; }
#endregion
/// <summary>
///
/// </summary>
public static List<Group> ListOmronGroups { get; set; }
/// <summary>
/// 12小时产能
/// </summary>
public static List<Chart12HourData> Lst_Prod12HourData = new List<Chart12HourData>();
/// <summary>
/// 不良选项(检测项不良)
/// </summary>
public static List<ChartDataType> Lst_DefectTypeQty = new List<ChartDataType>();
/// <summary>
/// PLC报警前10项
/// </summary>
public static List<ChartDataType> Lst_AlarmTop10_Qty = new List<ChartDataType>();
/// <summary>
/// 参数项设置
/// </summary>
public static List<ParamList> paramlists { get; set; }
/// <summary>
/// 线程控制
/// </summary>
public static ManualResetEvent ResetEventRecv = new ManualResetEvent(true);
#region 计数项
/// <summary>
/// 生产总数
/// </summary>
public static int TotalQty = 0;
public static int ProOKQty = 0;
public static int Ppm = 0;
public static double JiaDL = 0.0;
public static List<float> AntiDustAirSpeed = new List<float>();
/// <summary>
/// PLC开机/运行时间
/// </summary>
public static List<int> PlcOpenAndRunTime = new List<int>();
/// <summary>
/// PLC开机/运行时间地址
/// </summary>
public static List<string> PlcOpenAndRunTimeAdress = new List<string> { "D50", "D52", "D54", "D56", "D58", "D60" };
public static int ProdDRFIDNgQty = 0;//低托杯
public static int ProdDXNgQty = 0;//卷心码
public static int ProdGRFIDNgQty = 0;//高托杯
public static int ProdYLZNgQty = 0;//压力
#endregion
private static PlcReadWriteBase _PlcLink;
/// <summary>
/// PLC客户端
/// </summary>
public static PlcReadWriteBase PlcLink
{
get
{
if (_PlcLink == null)
{
_PlcLink = PlcNewClass.GetPLC(CommonMethods.plcDevice.IPAddress, CommonMethods.plcDevice.Port, (PLCType)Enum.Parse(typeof(PLCType), (string)CommonMethods.plcDevice.PLCType, false));
}
return _PlcLink;
}
}
#region 首次连接PLC
public static bool ConnectPLC()
{
try
{
if (CommonMethods.plcDevice != null)
{
//判断是否为第一次连接
if (!CommonMethods.plcDevice.IsFirstConnect)
{
Thread.Sleep(CommonMethods.plcDevice.ReConnectTime);
CommonMethods.PlcLink.Disconnect();
}
string msg = "";
var result = CommonMethods.PlcLink.Connect(ref msg);
if (result)
{
CommonMethods.plcDevice.IsConnected = true;
CommonMethods.AddLog(false, CommonMethods.plcDevice.IsFirstConnect ? $"PLC初次连接成功:{msg}" : $"PLC重新连接成功:{msg}");
return true;
}
else
{
CommonMethods.plcDevice.IsConnected = false;
CommonMethods.AddLog(true, CommonMethods.plcDevice.IsFirstConnect ? "PLC初次连接失败" : "PLC重新连接失败");
}
//如果是第一次连接,将标志位复位
if (CommonMethods.plcDevice.IsFirstConnect)
{
CommonMethods.plcDevice.IsFirstConnect = false;
}
}
}
catch (Exception)
{
new MsgshowTip("与PLC链接断开,请检查通讯线路!").ShowDialog();
}
return false;
}
#endregion
#region 写入分档
public static bool WriteGrading()
{
var res = false;
try
{
if (plcDevice != null && plcDevice.IsConnected)
{
DateTime Date = DateTime.Now;
#region 档位写入
// short[] MESGradingSet = new short[] { 0, 0, 0, 0, 0, 0 };
//1
MESGradingSet[0] = (short)21; // 21 22 23 24 25 26
//2
if (mesConfig.Grading2.Trim().Equals(mesConfig.Grading1.Trim()))
MESGradingSet[1] = MESGradingSet[0];
else
MESGradingSet[1] = (short)(MESGradingSet[0] + 1);
//3
if (mesConfig.Grading3.Trim().Equals(CommonMethods.mesConfig.Grading1.Trim()))
MESGradingSet[2] = MESGradingSet[0];
else
{
if (CommonMethods.mesConfig.Grading3.Trim().Equals(CommonMethods.mesConfig.Grading2.Trim()))
MESGradingSet[2] = MESGradingSet[1];
else
MESGradingSet[2] = (short)(MESGradingSet[1] + 1);
}
//4
if (CommonMethods.mesConfig.Grading4.Trim().Equals(CommonMethods.mesConfig.Grading1.Trim()))
MESGradingSet[3] = MESGradingSet[0];
else
{
if (CommonMethods.mesConfig.Grading4.Trim().Equals(CommonMethods.mesConfig.Grading2.Trim()))
MESGradingSet[3] = MESGradingSet[1];
else
{
if (CommonMethods.mesConfig.Grading4.Trim().Equals(CommonMethods.mesConfig.Grading3.Trim()))
MESGradingSet[3] = MESGradingSet[2];
else
MESGradingSet[3] = (short)(MESGradingSet[2] + 1);
}
}
//5
if (CommonMethods.mesConfig.Grading5.Trim().Equals(CommonMethods.mesConfig.Grading1.Trim()))
MESGradingSet[4] = MESGradingSet[0];
else
{
if (CommonMethods.mesConfig.Grading5.Trim().Equals(CommonMethods.mesConfig.Grading2.Trim()))
MESGradingSet[4] = MESGradingSet[1];
else
{
if (CommonMethods.mesConfig.Grading5.Trim().Equals(CommonMethods.mesConfig.Grading3.Trim()))
MESGradingSet[4] = MESGradingSet[2];
else
{
if (CommonMethods.mesConfig.Grading5.Trim().Equals(CommonMethods.mesConfig.Grading4.Trim()))
MESGradingSet[4] = MESGradingSet[3];
else
MESGradingSet[4] = (short)(MESGradingSet[3] + 1);
}
}
}
//6
if (CommonMethods.mesConfig.Grading6.Trim().Equals(CommonMethods.mesConfig.Grading1.Trim()))
MESGradingSet[5] = MESGradingSet[0];
else
{
if (CommonMethods.mesConfig.Grading6.Trim().Equals(CommonMethods.mesConfig.Grading2.Trim()))
MESGradingSet[5] = MESGradingSet[1];
else
{
if (CommonMethods.mesConfig.Grading6.Trim().Equals(CommonMethods.mesConfig.Grading3.Trim()))
MESGradingSet[5] = MESGradingSet[2];
else
{
if (CommonMethods.mesConfig.Grading6.Trim().Equals(CommonMethods.mesConfig.Grading4.Trim()))
MESGradingSet[5] = MESGradingSet[3];
else
{
if (CommonMethods.mesConfig.Grading6.Trim().Equals(CommonMethods.mesConfig.Grading5.Trim()))
MESGradingSet[5] = MESGradingSet[4];
else
MESGradingSet[5] = (short)(MESGradingSet[4] + 1);
}
}
}
}
#endregion
var isWrite1 = PlcLink.WriteValue("D2600", MESGradingSet[0], Data_Type.Short);
var isWrite2 = PlcLink.WriteValue("D2601", MESGradingSet[1], Data_Type.Short);
var isWrite3 = PlcLink.WriteValue("D2602", MESGradingSet[2], Data_Type.Short);
var isWrite4 = PlcLink.WriteValue("D2603", MESGradingSet[3], Data_Type.Short);
var isWrite5 = PlcLink.WriteValue("D2604", MESGradingSet[4], Data_Type.Short);
var isWrite6 = PlcLink.WriteValue("D2605", MESGradingSet[5], Data_Type.Short);
if (isWrite1.IsSuccess && isWrite2.IsSuccess && isWrite3.IsSuccess && isWrite4.IsSuccess && isWrite5.IsSuccess && isWrite6.IsSuccess)
{
AddDataMonitorLog(0, $"OK分档档位写入PLC成功![2600~2605]{string.Join(",", MESGradingSet)}");
return true;
}
}
}
catch (Exception ex)
{
AddLog(true, ex.ToString());
}
return false;
}
#endregion
#region 写入PLC信息
//public static OperateResult CommonWrite(string varName, string varValue)
//{
// //先通过变量名称找到对象
// var variable = plcDevice.VarList.Find(c => c.VarName == varName);
// if (variable != null)
// {
// DataConvertLib.DataType dataType = (DataConvertLib.DataType)Enum.Parse(typeof(DataConvertLib.DataType), variable.DataType, true);
// var result = MigrationLib.SetMigrationValue(varValue, dataType, variable.Scale.ToString(), variable.Offset.ToString());
// if (result.IsSuccess)
// {
// try
// {
// switch (dataType)
// {
// case DataConvertLib.DataType.Bool:
// return plc.WriteBool(variable.VarAddress, result.Content == "1" || result.Content.ToUpper() == "TRUE");
// case DataConvertLib.DataType.Byte:
// return plc.WriteByte(variable.VarAddress, Convert.ToByte(result.Content));
// case DataConvertLib.DataType.Short:
// return plc.WriteShort(variable.VarAddress, Convert.ToInt16(result.Content));
// case DataConvertLib.DataType.UShort:
// return plc.WriteUShort(variable.VarAddress, Convert.ToUInt16(result.Content));
// case DataConvertLib.DataType.Int:
// return plc.WriteInt(variable.VarAddress, Convert.ToInt32(result.Content));
// case DataConvertLib.DataType.UInt:
// return plc.WriteUInt(variable.VarAddress, Convert.ToUInt32(result.Content));
// case DataConvertLib.DataType.Float:
// return plc.WriteFloat(variable.VarAddress, Convert.ToSingle(result.Content));
// case DataConvertLib.DataType.Double:
// return plc.WriteDouble(variable.VarAddress, Convert.ToDouble(result.Content));
// case DataConvertLib.DataType.Long:
// return plc.WriteLong(variable.VarAddress, Convert.ToInt64(result.Content));
// case DataConvertLib.DataType.ULong:
// return plc.WriteULong(variable.VarAddress, Convert.ToUInt64(result.Content));
// case DataConvertLib.DataType.String:
// return plc.WriteByteArray(variable.VarAddress, ByteArrayLib.GetByteArrayFromString(result.Content, Encoding.ASCII));
// default:
// return OperateResult.CreateFailResult("暂不支持此数据类型");
// }
// }
// catch (Exception ex)
// {
// return OperateResult.CreateFailResult("数据转换出错:" + ex.Message);
// }
// }
// else
// {
// return OperateResult.CreateFailResult(result.Message);
// }
// }
// else
// {
// return OperateResult.CreateFailResult("请检查变量名称是否存在");
// }
//}
#endregion
#region 配置信息
public static string devPath = Application.StartupPath + "\\Config\\Device.ini";
public static string groupPath = Application.StartupPath + "\\Config\\Group.xlsx";
public static string variablePath = Application.StartupPath + "\\Config\\Variable.xlsx";
public static string settingPath = Application.StartupPath + "\\Config\\settings.json";
/// <summary>
/// 错误日志路径
/// </summary>
public static string strErrorLogspath = System.Windows.Forms.Application.StartupPath + "\\Logs\\ErrorLogs";
public static string strSystemLogspath = System.Windows.Forms.Application.StartupPath + "\\Logs\\SystemLogs";
public static string strAlarmLogspath = System.Windows.Forms.Application.StartupPath + "\\Logs\\AlarmLogs";
public static string strsqlLogspath = "";
/// <summary>
/// 删除路径
/// </summary>
public static string strDeletepath = "";
/// <summary>
/// 能耗保存路径
/// </summary>
public static string strWattrMeterpath = System.Windows.Forms.Application.StartupPath + "\\智能电表数据";
/// 风速仪保存路径
/// </summary>
///
public static string strAnemographpath = System.Windows.Forms.Application.StartupPath + "\\风速仪数据";
/// <summary>
/// MES路径日志
/// </summary>
public static string strMesLogspath = System.Windows.Forms.Application.StartupPath + "\\Logs\\MesLogs";
/// <summary>
/// PLC读取寄存器配置文件路径
/// </summary>
public static string ConfigPath = Path.Combine(System.Windows.Forms.Application.StartupPath, "ini\\PlcConfig.ini");
/// <summary>
/// 系统程序配置文件路径
/// </summary>
public static string iniFilePath = Path.Combine(System.Windows.Forms.Application.StartupPath, "ini\\Configure.ini");
#region 读取配置文件
/// <summary>
///读取配置文件
/// </summary>
public static void GetSysConfig()
{
try
{
sysConfig.AutoStart = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "开机自动启动", "false"));
sysConfig.AutoLogin = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "启动自动登录", "false"));
sysConfig.AutoLock = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "无操作自动锁屏", "false"));
sysConfig.LockPeriod = Convert.ToInt32(IniConfigHelper.ReadIniData("配置信息", "锁屏间隔时间", "false"));
sysConfig.AutoQieHuanM = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "无操作自动切换监控界面", "false"));
sysConfig.QieHuanMPeriod = Convert.ToInt32(IniConfigHelper.ReadIniData("配置信息", "切换监控界面间隔时间", "false"));
sysConfig.ShowSeriesCount = Convert.ToInt32(IniConfigHelper.ReadIniData("配置信息", "曲线显示数量", "false"));
sysConfig.SwipeCardMode = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "开启刷卡模式", "false"));
sysConfig.MesModeSwitching = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "MES/非MES模式切换", "false"));
sysConfig.GetMesParam = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "获取MES参数", "false"));
sysConfig.OKSwitching = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "强制OK/正常NG模式切换", "false"));
sysConfig.SaveThreadTime = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "线程耗时日志保存", "false"));
sysConfig.SaveThreadTime = Convert.ToBoolean(IniConfigHelper.ReadIniData("配置信息", "线程耗时日志保存", "false"));
mesConfig.Grading1 = IniConfigHelper.ReadIniData("MES配置", "Grading1", "false");
mesConfig.Grading2 = IniConfigHelper.ReadIniData("MES配置", "Grading2", "false");
mesConfig.Grading3 = IniConfigHelper.ReadIniData("MES配置", "Grading3", "false");
mesConfig.Grading4 = IniConfigHelper.ReadIniData("MES配置", "Grading4", "false");
mesConfig.Grading5 = IniConfigHelper.ReadIniData("MES配置", "Grading5", "false");
mesConfig.Grading6 = IniConfigHelper.ReadIniData("MES配置", "Grading6", "false");
}
catch (Exception)
{
sysConfig = null;
}
}
#endregion
#region 保存配置文件
/// <summary>
/// 保存启动自动登录
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveAutoStart(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "开机自动启动", value.ToString());
}
/// <summary>
/// 保存开机自动启动
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveAutoLogin(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "启动自动登录", value.ToString());
}
/// <summary>
/// 保存无操作自动锁屏
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveAutoLock(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "无操作自动锁屏", value.ToString());
}
/// <summary>
/// 保存锁屏间隔时间
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveLockPeriod(int value)
{
return IniConfigHelper.WriteIniData("配置信息", "锁屏间隔时间", value.ToString());
}
/// <summary>
/// 保存无操作自动切换监控界面
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveAutoQieHuanM(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "无操作自动切换监控界面", value.ToString());
}
/// <summary>
/// 保存切换监控界面间隔时间
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveQieHuanMPeriod(int value)
{
return IniConfigHelper.WriteIniData("配置信息", "切换监控界面间隔时间", value.ToString());
}
/// <summary>
/// 保存曲线显示数量
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveShowSeriesCount(int value)
{
return IniConfigHelper.WriteIniData("配置信息", "曲线显示数量", value.ToString());
}
/// <summary>
/// 开启刷卡模式
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveSwipeCardMode(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "开启刷卡模式", value.ToString());
}
/// <summary>
/// MES/非MES模式
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveOpenMesModel(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "MES/非MES模式切换", value.ToString());
}
/// <summary>
/// 强制OK/正常NG模式切换
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveOpenOKModel(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "强制OK/正常NG模式切换", value.ToString());
}
/// <summary>
/// 获取MES参数
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveGetMesParam(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "获取MES参数", value.ToString());
}
/// <summary>
/// 保存线程耗时操作
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool SaveSaveThreadTime(bool value)
{
return IniConfigHelper.WriteIniData("配置信息", "线程耗时日志保存", value.ToString());
}
#endregion
#endregion
#region 委托信息
//创建委托
// 数据监视委托
public static Action<int, string> AddDataMonitorDelegate;
/// <summary>
/// 系统日志
/// </summary>
public static Action<bool, string> AddLogDelegate;
/// <summary>
/// 操作日志
/// </summary>
public static Action<bool, string> AddOPLogDelegate;
/// <summary>
/// 报警日志
/// </summary>
public static Action<SysLog> AddAlarmDelegate;
/// <summary>
/// 显示报警信息
/// </summary>
public static Action<string> ShowAlarmDelegate;
/// <summary>
/// 参数更新
/// </summary>
public static Action ChangeParamDelegate;
/// <summary>
/// 显示上料信息
/// </summary>
public static Action<List<AGearEntity>> ShowFeedingDelegate;
/// <summary>
/// 显示下料数据
/// </summary>
public static Action<List<BGearEntity>> ShowBlankingDelegate;
/// <summary>
/// 数据监视委托
/// </summary>
/// <param name="type"></param>
/// <param name="info"></param>
public static void AddDataMonitorLog(int type, string info)
{
//调用委托
if (AddDataMonitorDelegate != null)
{
AddDataMonitorDelegate(type, info);
}
}
/// <summary>
/// 写入系统日志
/// </summary>
/// <param name="isError">是否为错误信息</param>
/// <param name="info">日志信息</param>
public static void AddLog(bool isError, string info)
{
//调用委托
if (AddLogDelegate != null)
{
AddLogDelegate(isError, info);
}
}
/// <summary>
/// 写入操作日志
/// </summary>
/// <param name="isError"></param>
/// <param name="info"></param>
public static void AddOPLog(bool isError, string info)
{
//调用委托
if (AddLogDelegate != null)
{
AddOPLogDelegate(isError, info);
}
}
public static void AddAlarmLog(SysLog sysLog)
{
//调用委托
if (AddAlarmDelegate != null)
{
AddAlarmDelegate(sysLog);
}
}
/// <summary>
/// 显示报警日志
/// </summary>
/// <param name="info"></param>
public static void ShowAlarmLog(string info)
{
//调用委托
if (ShowAlarmDelegate != null)
{
ShowAlarmDelegate(info);
}
}
public static void ChangeParamData()
{
//调用委托
if (ChangeParamDelegate != null)
{
ChangeParamDelegate();
}
}
#endregion
}
}
+8 -8
View File
@@ -236,12 +236,12 @@ namespace JinYuan.VirtualDataLibrary
public string GetStaticByDay(string startDateTime, string endDateTime) public string GetStaticByDay(string startDateTime, string endDateTime)
{ {
string strSql = $@" SELECT CONVERT(varchar(13),TestTime,120) 时间, ProdIn 总数, ProdOut OK总数,Ppm PPM均值, string strSql = $@" SELECT CONVERT(varchar(13),TestTime,120) 时间, ProdIn 总数, ProdOut OK总数,Ppm PPM均值,
cast(ROUND(JiaDL*100,1)as nvarchar(10))+'%' 稼动率均值, cast(ROUND(JiaDL*100,1)as nvarchar(20))+'%' 稼动率均值,
cast(case when ProdIn>0 then (ROUND(cast(isnull(ProdOut,0) as float)/cast(isnull(ProdIn,0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 cast(case when ProdIn>0 then (ROUND(cast(isnull(ProdOut,0) as float)/cast(isnull(ProdIn,0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率
FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY TestTime,ProdOut,ProdIn,Ppm,JiaDL FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY TestTime,ProdOut,ProdIn,Ppm,JiaDL
UNION ALL UNION ALL
SELECT '合计' as '时间', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT FDate,sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(PPM) Ppm, SELECT '合计' as '时间', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT FDate,sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(PPM) Ppm,
cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(10))+'%' JiaDL, cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' JiaDL,
cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 FROM Hourprod cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY FDate) as t "; WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY FDate) as t ";
@@ -257,12 +257,12 @@ namespace JinYuan.VirtualDataLibrary
public string GetStaticByWeek(string startDateTime, string endDateTime) public string GetStaticByWeek(string startDateTime, string endDateTime)
{ {
string strSql = $@" SELECT convert(char(10), TestTime, 120) 月份, sum(ProdIn) 总数, sum(ProdOut) OK总数,AVG(Ppm) PPM均值, string strSql = $@" SELECT convert(char(10), TestTime, 120) 月份, sum(ProdIn) 总数, sum(ProdOut) OK总数,AVG(Ppm) PPM均值,
cast(ROUND(JiaDL*100,1)as nvarchar(10))+'%' 稼动率均值, cast(ROUND(JiaDL*100,1)as nvarchar(20))+'%' 稼动率均值,
cast(case when sum(ProdIn)>0 then (ROUND(cast(isnull(SUM(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 cast(case when sum(ProdIn)>0 then (ROUND(cast(isnull(SUM(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率
FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY convert(char(10), TestTime, 120),JiaDL FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY convert(char(10), TestTime, 120),JiaDL
UNION ALL UNION ALL
SELECT '合计' as '月份', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(Ppm) Ppm, SELECT '合计' as '月份', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(Ppm) Ppm,
cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(10))+'%' JiaDL, cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' JiaDL,
cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10))+'%' 优率 FROM Hourprod cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10))+'%' 优率 FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}') as t "; WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}') as t ";
return strSql; return strSql;
@@ -278,12 +278,12 @@ namespace JinYuan.VirtualDataLibrary
public string GetStaticByMonth(string startDateTime, string endDateTime) public string GetStaticByMonth(string startDateTime, string endDateTime)
{ {
string strSql = $@" SELECT convert(char(7), TestTime, 120) 月份, sum(ProdIn) 总数, sum(ProdOut) OK总数,AVG(Ppm) PPM均值, string strSql = $@" SELECT convert(char(7), TestTime, 120) 月份, sum(ProdIn) 总数, sum(ProdOut) OK总数,AVG(Ppm) PPM均值,
cast(ROUND(JiaDL*100,1)as nvarchar(10))+'%' 稼动率均值, cast(ROUND(JiaDL*100,1)as nvarchar(20))+'%' 稼动率均值,
cast(case when sum(ProdIn)>0 then (ROUND(cast(isnull(SUM(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 cast(case when sum(ProdIn)>0 then (ROUND(cast(isnull(SUM(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率
FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY convert(char(7), TestTime, 120),JiaDL FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY convert(char(7), TestTime, 120),JiaDL
UNION ALL UNION ALL
SELECT '合计' as '月份', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(Ppm) Ppm, SELECT '合计' as '月份', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(Ppm) Ppm,
cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(10))+'%' JiaDL, cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' JiaDL,
cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10))+'%' 优率 FROM Hourprod cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10))+'%' 优率 FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}') as t "; WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}') as t ";
return strSql; return strSql;
@@ -315,12 +315,12 @@ namespace JinYuan.VirtualDataLibrary
} }
string strsql = $@" SELECT CONVERT(varchar(13),TestTime,120) 时间, ProdIn 总数, ProdOut OK总数,Ppm PPM均值, string strsql = $@" SELECT CONVERT(varchar(13),TestTime,120) 时间, ProdIn 总数, ProdOut OK总数,Ppm PPM均值,
cast(ROUND(JiaDL*100,1)as nvarchar(10))+'%' 稼动率均值, cast(ROUND(JiaDL*100,1)as nvarchar(20))+'%' 稼动率均值,
cast(case when ProdIn>0 then (ROUND(cast(isnull(ProdOut,0) as float)/cast(isnull(ProdIn,0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 cast(case when ProdIn>0 then (ROUND(cast(isnull(ProdOut,0) as float)/cast(isnull(ProdIn,0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率
FROM Hourprod WHERE TestTime BETWEEN '{sDateTime1}' AND '{sDateTime2}' GROUP BY TestTime,ProdOut,ProdIn,Ppm,JiaDL FROM Hourprod WHERE TestTime BETWEEN '{sDateTime1}' AND '{sDateTime2}' GROUP BY TestTime,ProdOut,ProdIn,Ppm,JiaDL
UNION ALL UNION ALL
SELECT '合计' as '时间', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT FDate,sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(Ppm) Ppm, SELECT '合计' as '时间', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT FDate,sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(Ppm) Ppm,
cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(10))+'%' JiaDL, cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' JiaDL,
cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 FROM Hourprod cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 FROM Hourprod
WHERE TestTime BETWEEN '{sDateTime1}' AND '{sDateTime2}' GROUP BY FDate) as t "; WHERE TestTime BETWEEN '{sDateTime1}' AND '{sDateTime2}' GROUP BY FDate) as t ";
return strsql; return strsql;
+10 -6
View File
@@ -117,27 +117,27 @@ namespace JinYuan.VirtualDataLibrary
/// <summary> /// <summary>
/// OK1分档 /// OK1分档
/// </summary> /// </summary>
public string Grading1 = "K77"; public string Grading1 = "E63y";
/// <summary> /// <summary>
/// OK2分档 /// OK2分档
/// </summary> /// </summary>
public string Grading2 = "K77"; public string Grading2 = "F63y";
/// <summary> /// <summary>
/// OK3分档 /// OK3分档
/// </summary> /// </summary>
public string Grading3 = "K77"; public string Grading3 = "E63yG";
/// <summary> /// <summary>
/// OK4分档 /// OK4分档
/// </summary> /// </summary>
public string Grading4 = "K77"; public string Grading4 = "F63yG";
/// <summary> /// <summary>
/// OK5分档 /// OK5分档
/// </summary> /// </summary>
public string Grading5 = "K77"; public string Grading5 = "拦截";
/// <summary> /// <summary>
/// OK6分档 /// OK6分档
/// </summary> /// </summary>
public string Grading6 = "K77"; public string Grading6 = "NG";
/// <summary> /// <summary>
/// 设备状态 /// 设备状态
@@ -216,6 +216,10 @@ namespace JinYuan.VirtualDataLibrary
/// 分档 /// 分档
/// </summary> /// </summary>
public string GradingMesUrl = "http://10.54.50.1:8082/core/api/public/eve/pm/eqm/new/grading"; public string GradingMesUrl = "http://10.54.50.1:8082/core/api/public/eve/pm/eqm/new/grading";
/// <summary>
/// 安全设备运行状态
/// </summary>
public string SafeEqptStatusMesUrl = "http://10.22.161.62:804/device-status";
} }
} }
+2 -2
View File
@@ -5,8 +5,8 @@
</startup> </startup>
<connectionStrings> <connectionStrings>
<add name="connDbType" connectionString="SqlServer" /> <add name="connDbType" connectionString="SqlServer" />
<add name="connString" connectionString="Server=192.168.133.180,43852\MSSQLSERVER01;DataBase=LargeSquareOne;Uid=sa;Pwd=123" /> <add name="connString" connectionString="Server=localhost;DataBase=LargeSquareOne;Uid=sa;Pwd=123456" />
<add name="connString2" connectionString="Server=192.168.133.180,43852\MSSQLSERVER01;DataBase=LargeSquareOne;Uid=sa;Pwd=123" /> <add name="connString2" connectionString="Server=192.168.1.149;DataBase=LargeSquareOne;Uid=sa;Pwd=123456" />
<!--<add name="connString" connectionString="Server=ZCDEEPSEAI;DataBase=LargeSquareOne;Uid=sa;Pwd=123" />--> <!--<add name="connString" connectionString="Server=ZCDEEPSEAI;DataBase=LargeSquareOne;Uid=sa;Pwd=123" />-->
<!--<add name="connString2" connectionString="Server=192.168.133.180;DataBase=HBG_CupDataTurnover;Uid=jyzdh;Pwd=eve123456" />--> <!--<add name="connString2" connectionString="Server=192.168.133.180;DataBase=HBG_CupDataTurnover;Uid=jyzdh;Pwd=eve123456" />-->
<add name="connString3" connectionString="Server=localhost;DataBase=ProConfigDB;User Id=jypz;Password=eve123456;Persist Security Info=true;Allow Zero Datetime=true;Character Set=utf8;" /> <add name="connString3" connectionString="Server=localhost;DataBase=ProConfigDB;User Id=jypz;Password=eve123456;Persist Security Info=true;Allow Zero Datetime=true;Character Set=utf8;" />
+26 -19
View File
@@ -1,10 +1,10 @@
[配置信息] [配置信息]
开机自动启动=False 开机自动启动=True
启动自动登录=False 启动自动登录=True
无操作自动锁屏=False 无操作自动锁屏=False
锁屏间隔时间=3 锁屏间隔时间=3
无操作自动切换监控界面=True 无操作自动切换监控界面=True
切换监控界面间隔时间=1 切换监控界面间隔时间=3
曲线显示数量=1 曲线显示数量=1
开启刷卡模式=False 开启刷卡模式=False
MES/非MES模式切换=True MES/非MES模式切换=True
@@ -13,32 +13,39 @@ MES/
是否获取服务器数据=1 是否获取服务器数据=1
是否存储C模块数据=1 是否存储C模块数据=1
外观检测条码计数=1 外观检测条码计数=1
强制OK/正常NG模式切换=False 强制OK/正常NG模式切换=True
[MES配置] [MES配置]
工厂代码=60J 工厂代码=60J
产线编号=MW-602 产线编号=MW-602
设备编号=602VIM01 设备编号=602GRM01
智能电表编号=1,2 智能电表编号=1,2
白夜班交替时间=20:30:00 白夜班交替时间=20:30:00
MES日志保存路径=D:\APILog MES日志保存路径=D:\APILog
存储服务器IP地址=192.168.2.108 存储服务器IP地址=192.168.2.108
员工权限校验=http://10.22.160.141/core/api/public/equipment/base/user/login/verify Grading1=E63y
设备参数设定值请求=http://10.22.160.141/core/api/public/param/setting/request Grading2=F63y
设备参数设定值变更=http://10.22.160.141/core/api/public/param/setting/change Grading3=E63yG
产品进站=http://10.22.160.141/core/api/public/formation/section/arrival/bz Grading4=F63yG
产品过程加工参数=http://10.22.160.141/core/api/public/product/process/param/new/process Grading5=拦截
产品结果加工参数=http://10.22.160.141/core/api/public/product/process/param/new/result Grading6=NG
产品出站=http://10.22.160.141/core/api/public/eve/pm/formation-section 员工权限校验=http://10.22.160.1/core/api/public/equipment/base/user/login/verify
设备报警=http://10.22.160.141/core/api/public/equipment/alarm/currency 设备参数设定值请求=http://10.22.160.2/core/api/public/param/setting/request
设备状态=http://10.22.160.141/core/api/public/eve/pm/eqm/run/status/operation 设备参数设定值变更=http://10.22.160.2/core/api/public/param/setting/change
能耗=http://10.22.160.141/core/api/public/eve/pm/energy/consumption/collection/submit 产品进站=http://10.22.160.2/core/api/public/formation/section/arrival/bz
产品过程加工参数=http://10.22.160.3/core/api/public/product/process/param/new/process
产品结果加工参数=http://10.22.160.3/core/api/public/product/process/param/new/result
产品出站=http://10.22.160.2/core/api/public/eve/pm/formation-section/bz
设备报警=http://10.22.160.2/core/api/public/equipment/alarm/currency
设备状态=http://10.22.160.2/core/api/public/eve/pm/eqm/run/status/operation
能耗=http://10.22.160.3/core/api/public/eve/pm/energy/consumption/collection/submit
风速仪=https://iot.eveportal.com:9470/eve_api/ems/iot/upload_device_collect_data 风速仪=https://iot.eveportal.com:9470/eve_api/ems/iot/upload_device_collect_data
风速仪=https://iot.eveportal.com:9470/eve_api/ems/iot/upload_device_collect_data 风速仪=https://iot.eveportal.com:9470/eve_api/ems/iot/upload_device_collect_data
分档参数=http://10.22.160.141/core/api/public/eve/pm/eqm/new/grading 分档参数=http://10.22.160.2/core/api/public/eve/pm/eqm/auto/grading
guid=a270c7d2-9cbd-4739-9a0b-0709b5813332 安全设备状态=http://10.22.161.62:804/device-status
DeviceState=1 guid=1f54910b-b1ea-4c4d-af0b-4064fbd7914b
run_AlarmMark=0 DeviceState=3
run_AlarmMark=1
run_IdleMark=0 run_IdleMark=0
[统计计数] [统计计数]
+1 -1
View File
@@ -1,4 +1,4 @@
[设备参数] [设备参数]
IP地址=127.0.0.1 IP地址=192.168.1.52
端口号=9600 端口号=9600
PLC类型=OmronFinsTcp_HSL PLC类型=OmronFinsTcp_HSL
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+23 -23
View File
@@ -63,7 +63,6 @@
this.rtb_Info = new System.Windows.Forms.RichTextBox(); this.rtb_Info = new System.Windows.Forms.RichTextBox();
this.groupBoxEX5 = new JinYuan.ControlLib.GroupBoxEX(); this.groupBoxEX5 = new JinYuan.ControlLib.GroupBoxEX();
this.dgvBlankingData = new System.Windows.Forms.DataGridView(); this.dgvBlankingData = new System.Windows.Forms.DataGridView();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -77,6 +76,7 @@
this.Column35 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column35 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column102 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column102 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout();
this.groupBoxEX3.SuspendLayout(); this.groupBoxEX3.SuspendLayout();
this.groupBoxEX2.SuspendLayout(); this.groupBoxEX2.SuspendLayout();
@@ -108,7 +108,7 @@
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 54.37666F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 54.37666F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 477F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 477F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 13F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 13F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1370, 749); this.tableLayoutPanel1.Size = new System.Drawing.Size(1480, 749);
this.tableLayoutPanel1.TabIndex = 0; this.tableLayoutPanel1.TabIndex = 0;
// //
// groupBoxEX3 // groupBoxEX3
@@ -127,7 +127,7 @@
this.groupBoxEX3.Margin = new System.Windows.Forms.Padding(2); this.groupBoxEX3.Margin = new System.Windows.Forms.Padding(2);
this.groupBoxEX3.Name = "groupBoxEX3"; this.groupBoxEX3.Name = "groupBoxEX3";
this.groupBoxEX3.Padding = new System.Windows.Forms.Padding(2); this.groupBoxEX3.Padding = new System.Windows.Forms.Padding(2);
this.groupBoxEX3.Size = new System.Drawing.Size(206, 120); this.groupBoxEX3.Size = new System.Drawing.Size(233, 120);
this.groupBoxEX3.TabIndex = 14; this.groupBoxEX3.TabIndex = 14;
this.groupBoxEX3.TabStop = false; this.groupBoxEX3.TabStop = false;
this.groupBoxEX3.Text = "操作设置"; this.groupBoxEX3.Text = "操作设置";
@@ -136,7 +136,7 @@
// //
this.btSatrt.BackNormalColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); this.btSatrt.BackNormalColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.btSatrt.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btSatrt.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btSatrt.Location = new System.Drawing.Point(42, 24); this.btSatrt.Location = new System.Drawing.Point(22, 105);
this.btSatrt.Margin = new System.Windows.Forms.Padding(2); this.btSatrt.Margin = new System.Windows.Forms.Padding(2);
this.btSatrt.Name = "btSatrt"; this.btSatrt.Name = "btSatrt";
this.btSatrt.Padding = new System.Windows.Forms.Padding(2); this.btSatrt.Padding = new System.Windows.Forms.Padding(2);
@@ -217,7 +217,7 @@
this.groupBoxEX2.Margin = new System.Windows.Forms.Padding(2); this.groupBoxEX2.Margin = new System.Windows.Forms.Padding(2);
this.groupBoxEX2.Name = "groupBoxEX2"; this.groupBoxEX2.Name = "groupBoxEX2";
this.groupBoxEX2.Padding = new System.Windows.Forms.Padding(2); this.groupBoxEX2.Padding = new System.Windows.Forms.Padding(2);
this.groupBoxEX2.Size = new System.Drawing.Size(206, 143); this.groupBoxEX2.Size = new System.Drawing.Size(233, 143);
this.groupBoxEX2.TabIndex = 13; this.groupBoxEX2.TabIndex = 13;
this.groupBoxEX2.TabStop = false; this.groupBoxEX2.TabStop = false;
this.groupBoxEX2.Text = "参数"; this.groupBoxEX2.Text = "参数";
@@ -239,7 +239,7 @@
this.lVConfigRange.Margin = new System.Windows.Forms.Padding(2); this.lVConfigRange.Margin = new System.Windows.Forms.Padding(2);
this.lVConfigRange.Name = "lVConfigRange"; this.lVConfigRange.Name = "lVConfigRange";
this.lVConfigRange.OwnerDraw = true; this.lVConfigRange.OwnerDraw = true;
this.lVConfigRange.Size = new System.Drawing.Size(202, 120); this.lVConfigRange.Size = new System.Drawing.Size(229, 120);
this.lVConfigRange.TabIndex = 2; this.lVConfigRange.TabIndex = 2;
this.lVConfigRange.UseCompatibleStateImageBehavior = false; this.lVConfigRange.UseCompatibleStateImageBehavior = false;
this.lVConfigRange.View = System.Windows.Forms.View.Details; this.lVConfigRange.View = System.Windows.Forms.View.Details;
@@ -278,12 +278,12 @@
this.groupBoxEX4.Controls.Add(this.dgvFeedingData); this.groupBoxEX4.Controls.Add(this.dgvFeedingData);
this.groupBoxEX4.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBoxEX4.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBoxEX4.ForeColor = System.Drawing.Color.White; this.groupBoxEX4.ForeColor = System.Drawing.Color.White;
this.groupBoxEX4.Location = new System.Drawing.Point(212, 2); this.groupBoxEX4.Location = new System.Drawing.Point(239, 2);
this.groupBoxEX4.Margin = new System.Windows.Forms.Padding(2); this.groupBoxEX4.Margin = new System.Windows.Forms.Padding(2);
this.groupBoxEX4.Name = "groupBoxEX4"; this.groupBoxEX4.Name = "groupBoxEX4";
this.groupBoxEX4.Padding = new System.Windows.Forms.Padding(2); this.groupBoxEX4.Padding = new System.Windows.Forms.Padding(2);
this.tableLayoutPanel1.SetRowSpan(this.groupBoxEX4, 2); this.tableLayoutPanel1.SetRowSpan(this.groupBoxEX4, 2);
this.groupBoxEX4.Size = new System.Drawing.Size(1156, 267); this.groupBoxEX4.Size = new System.Drawing.Size(1239, 267);
this.groupBoxEX4.TabIndex = 15; this.groupBoxEX4.TabIndex = 15;
this.groupBoxEX4.TabStop = false; this.groupBoxEX4.TabStop = false;
this.groupBoxEX4.Text = "进站"; this.groupBoxEX4.Text = "进站";
@@ -344,7 +344,7 @@
this.dgvFeedingData.RowHeadersWidth = 60; this.dgvFeedingData.RowHeadersWidth = 60;
this.dgvFeedingData.RowTemplate.Height = 23; this.dgvFeedingData.RowTemplate.Height = 23;
this.dgvFeedingData.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.dgvFeedingData.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgvFeedingData.Size = new System.Drawing.Size(1152, 244); this.dgvFeedingData.Size = new System.Drawing.Size(1235, 244);
this.dgvFeedingData.TabIndex = 10; this.dgvFeedingData.TabIndex = 10;
this.dgvFeedingData.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvFeedingData_CellContentClick); this.dgvFeedingData.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvFeedingData_CellContentClick);
this.dgvFeedingData.RowPrePaint += new System.Windows.Forms.DataGridViewRowPrePaintEventHandler(this.dgvFeedingData_RowPrePaint); this.dgvFeedingData.RowPrePaint += new System.Windows.Forms.DataGridViewRowPrePaintEventHandler(this.dgvFeedingData_RowPrePaint);
@@ -422,7 +422,7 @@
this.groupBoxEX1.Margin = new System.Windows.Forms.Padding(2); this.groupBoxEX1.Margin = new System.Windows.Forms.Padding(2);
this.groupBoxEX1.Name = "groupBoxEX1"; this.groupBoxEX1.Name = "groupBoxEX1";
this.groupBoxEX1.Padding = new System.Windows.Forms.Padding(2); this.groupBoxEX1.Padding = new System.Windows.Forms.Padding(2);
this.groupBoxEX1.Size = new System.Drawing.Size(206, 474); this.groupBoxEX1.Size = new System.Drawing.Size(233, 474);
this.groupBoxEX1.TabIndex = 12; this.groupBoxEX1.TabIndex = 12;
this.groupBoxEX1.TabStop = false; this.groupBoxEX1.TabStop = false;
this.groupBoxEX1.Text = "日志记录"; this.groupBoxEX1.Text = "日志记录";
@@ -437,7 +437,7 @@
this.rtb_Info.Margin = new System.Windows.Forms.Padding(2); this.rtb_Info.Margin = new System.Windows.Forms.Padding(2);
this.rtb_Info.Name = "rtb_Info"; this.rtb_Info.Name = "rtb_Info";
this.rtb_Info.ReadOnly = true; this.rtb_Info.ReadOnly = true;
this.rtb_Info.Size = new System.Drawing.Size(202, 451); this.rtb_Info.Size = new System.Drawing.Size(229, 451);
this.rtb_Info.TabIndex = 1; this.rtb_Info.TabIndex = 1;
this.rtb_Info.Text = ""; this.rtb_Info.Text = "";
// //
@@ -449,11 +449,11 @@
this.groupBoxEX5.Controls.Add(this.dgvBlankingData); this.groupBoxEX5.Controls.Add(this.dgvBlankingData);
this.groupBoxEX5.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBoxEX5.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBoxEX5.ForeColor = System.Drawing.Color.White; this.groupBoxEX5.ForeColor = System.Drawing.Color.White;
this.groupBoxEX5.Location = new System.Drawing.Point(212, 273); this.groupBoxEX5.Location = new System.Drawing.Point(239, 273);
this.groupBoxEX5.Margin = new System.Windows.Forms.Padding(2); this.groupBoxEX5.Margin = new System.Windows.Forms.Padding(2);
this.groupBoxEX5.Name = "groupBoxEX5"; this.groupBoxEX5.Name = "groupBoxEX5";
this.groupBoxEX5.Padding = new System.Windows.Forms.Padding(2); this.groupBoxEX5.Padding = new System.Windows.Forms.Padding(2);
this.groupBoxEX5.Size = new System.Drawing.Size(1156, 474); this.groupBoxEX5.Size = new System.Drawing.Size(1239, 474);
this.groupBoxEX5.TabIndex = 16; this.groupBoxEX5.TabIndex = 16;
this.groupBoxEX5.TabStop = false; this.groupBoxEX5.TabStop = false;
this.groupBoxEX5.Text = "出站"; this.groupBoxEX5.Text = "出站";
@@ -520,18 +520,10 @@
this.dgvBlankingData.RowHeadersWidth = 60; this.dgvBlankingData.RowHeadersWidth = 60;
this.dgvBlankingData.RowTemplate.Height = 23; this.dgvBlankingData.RowTemplate.Height = 23;
this.dgvBlankingData.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.dgvBlankingData.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgvBlankingData.Size = new System.Drawing.Size(1152, 451); this.dgvBlankingData.Size = new System.Drawing.Size(1235, 451);
this.dgvBlankingData.TabIndex = 10; this.dgvBlankingData.TabIndex = 10;
this.dgvBlankingData.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvBlankingData_CellContentClick); this.dgvBlankingData.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvBlankingData_CellContentClick);
// //
// imageList1
//
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0, "info.png");
this.imageList1.Images.SetKeyName(1, "error.png");
this.imageList1.Images.SetKeyName(2, "warning.png");
//
// dataGridViewTextBoxColumn1 // dataGridViewTextBoxColumn1
// //
this.dataGridViewTextBoxColumn1.HeaderText = "序号"; this.dataGridViewTextBoxColumn1.HeaderText = "序号";
@@ -643,13 +635,21 @@
this.Column3.ReadOnly = true; this.Column3.ReadOnly = true;
this.Column3.Width = 400; this.Column3.Width = 400;
// //
// imageList1
//
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0, "info.png");
this.imageList1.Images.SetKeyName(1, "error.png");
this.imageList1.Images.SetKeyName(2, "warning.png");
//
// FrmDataMonitor // FrmDataMonitor
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(14)))), ((int)(((byte)(23)))), ((int)(((byte)(38))))); this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(14)))), ((int)(((byte)(23)))), ((int)(((byte)(38)))));
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.ClientSize = new System.Drawing.Size(1370, 749); this.ClientSize = new System.Drawing.Size(1480, 749);
this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.tableLayoutPanel1);
this.DoubleBuffered = true; this.DoubleBuffered = true;
this.Font = new System.Drawing.Font("微软雅黑", 10.5F); this.Font = new System.Drawing.Font("微软雅黑", 10.5F);
+1 -1
View File
@@ -188,7 +188,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABE ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABE
DQAAAk1TRnQBSQFMAgEBAwEAAZgBAgGYAQIBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA DQAAAk1TRnQBSQFMAgEBAwEAAagBAgGoAQIBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABEAMAAQEBAAEgBgABEC4AAxUBHQMkATQDBQEGKAADHQEpAl4BZwHwATUBNgHPAf8BNQE2Ac8B/wE1 AwABEAMAAQEBAAEgBgABEC4AAxUBHQMkATQDBQEGKAADHQEpAl4BZwHwATUBNgHPAf8BNQE2Ac8B/wE1
ATYBzwH/ATUBNgHPAf8BNQE2Ac8B/wNOAZagAAMTARkDZQHlA+YB/wPmAf8D5gH/A+YB/wPmAf8DRwGA ATYBzwH/ATUBNgHPAf8BNQE2Ac8B/wNOAZagAAMTARkDZQHlA+YB/wPmAf8D5gH/A+YB/wPmAf8DRwGA
HAACUwFUAaoBNQE2Ac8B/wE1ATYBzwH/ATUBNgHPAf8BNQE2Ac8B/wE1ATYBzwH/ATUBNgHPAf8BNQE2 HAACUwFUAaoBNQE2Ac8B/wE1ATYBzwH/ATUBNgHPAf8BNQE2Ac8B/wE1ATYBzwH/ATUBNgHPAf8BNQE2
+2 -2
View File
@@ -455,9 +455,9 @@ namespace LargeSquareOne
TimeSpan timeSpan = endDateTime - startDateTime; TimeSpan timeSpan = endDateTime - startDateTime;
if (timeSpan.TotalDays > 1.0) if (timeSpan.TotalDays > 31.0)
{ {
return OperateResult.CreateFailResult<DataTable>("查询范围不能超过1天"); return OperateResult.CreateFailResult<DataTable>("查询范围不能超过31天");
} }
DataTable dataTable = CommonMethods.db.QueryDataTable(CommonMethods.dBSQL.SelectHostAlarmData(start, end, alarmType)); DataTable dataTable = CommonMethods.db.QueryDataTable(CommonMethods.dBSQL.SelectHostAlarmData(start, end, alarmType));
+1
View File
@@ -205,6 +205,7 @@ namespace LargeSquareOne
CommonMethods.mesConfig.WattrMeterUrl = IniConfigHelper.ReadIniData("MES配置", "能耗", "0"); CommonMethods.mesConfig.WattrMeterUrl = IniConfigHelper.ReadIniData("MES配置", "能耗", "0");
CommonMethods.mesConfig.CollectData = IniConfigHelper.ReadIniData("MES配置", "风速仪", "0"); CommonMethods.mesConfig.CollectData = IniConfigHelper.ReadIniData("MES配置", "风速仪", "0");
CommonMethods.mesConfig.GradingMesUrl = IniConfigHelper.ReadIniData("MES配置", "分档参数", "0"); CommonMethods.mesConfig.GradingMesUrl = IniConfigHelper.ReadIniData("MES配置", "分档参数", "0");
CommonMethods.mesConfig.SafeEqptStatusMesUrl = IniConfigHelper.ReadIniData("MES配置", "安全设备状态", "0");
//CommonMethods.ProdDRFIDNgQty = Convert.ToInt32(IniConfigHelper.ReadIniData("统计计数", "ProdDRFIDNgQty", "0")); //CommonMethods.ProdDRFIDNgQty = Convert.ToInt32(IniConfigHelper.ReadIniData("统计计数", "ProdDRFIDNgQty", "0"));
//CommonMethods.ProdDXNgQty = Convert.ToInt32(IniConfigHelper.ReadIniData("统计计数", "ProdDXNgQty", "0")); //CommonMethods.ProdDXNgQty = Convert.ToInt32(IniConfigHelper.ReadIniData("统计计数", "ProdDXNgQty", "0"));
+1111 -1111
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -2448,7 +2448,7 @@
<value>550, 54</value> <value>550, 54</value>
</data> </data>
<data name="lbl_TitleBar.Text" xml:space="preserve"> <data name="lbl_TitleBar.Text" xml:space="preserve">
<value>外观检测监测系统</value> <value>外观检分档系统</value>
</data> </data>
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing"> <data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
<value>550, 64</value> <value>550, 64</value>
@@ -5051,13 +5051,13 @@
</value> </value>
</data> </data>
<data name="MainPanel.Size" type="System.Drawing.Size, System.Drawing"> <data name="MainPanel.Size" type="System.Drawing.Size, System.Drawing">
<value>1874, 910</value> <value>1874, 891</value>
</data> </data>
<data name="CorePanel.Size" type="System.Drawing.Size, System.Drawing"> <data name="CorePanel.Size" type="System.Drawing.Size, System.Drawing">
<value>1920, 936</value> <value>1920, 917</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>1920, 1080</value> <value>1920, 1061</value>
</data> </data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
+17 -4
View File
@@ -5,14 +5,15 @@ using JinYuan.Models;
using JinYuan.VirtualDataLibrary; using JinYuan.VirtualDataLibrary;
using Microsoft.Win32; using Microsoft.Win32;
using MiniExcelLibs; using MiniExcelLibs;
using PLCCommunication;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.IO;
using System.Windows.Forms;
using System.Linq;
using static Org.BouncyCastle.Math.EC.ECCurve;
using System.Drawing; using System.Drawing;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using static Org.BouncyCastle.Math.EC.ECCurve;
namespace LargeSquareOne namespace LargeSquareOne
{ {
@@ -800,6 +801,10 @@ namespace LargeSquareOne
private void SaveFDChanges(int rowIndex) private void SaveFDChanges(int rowIndex)
{ {
try try
{
int result = CommonMethods.PlcLink.ReadInt16("D88");//判断是否停机 1为停机,0为正在运行
if (result == 1)
{ {
var row = dgvFdConfigs.Rows[rowIndex]; var row = dgvFdConfigs.Rows[rowIndex];
var config = fdConfigs[rowIndex]; var config = fdConfigs[rowIndex];
@@ -822,8 +827,16 @@ namespace LargeSquareOne
// 保存更改 // 保存更改
SaveFDConfig(); SaveFDConfig();
//加载
CommonMethods.WriteGrading();
MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
else
{
MessageBox.Show("机器正在运行不能修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex) catch (Exception ex)
{ {
// 这里只显示错误信息,不再抛出异常 // 这里只显示错误信息,不再抛出异常
+8 -1
View File
@@ -345,15 +345,19 @@
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="FrmMain.en-US.resx"> <EmbeddedResource Include="FrmMain.en-US.resx">
<DependentUpon>FrmMain.cs</DependentUpon> <DependentUpon>FrmMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="FrmMain.hu-HU.resx"> <EmbeddedResource Include="FrmMain.hu-HU.resx">
<DependentUpon>FrmMain.cs</DependentUpon> <DependentUpon>FrmMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="FrmMain.syr.resx"> <EmbeddedResource Include="FrmMain.syr.resx">
<DependentUpon>FrmMain.cs</DependentUpon> <DependentUpon>FrmMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="FrmMain.zh-CN.resx"> <EmbeddedResource Include="FrmMain.zh-CN.resx">
<DependentUpon>FrmMain.cs</DependentUpon> <DependentUpon>FrmMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="FrmMesParamMsgBoxWithAck.resx"> <EmbeddedResource Include="FrmMesParamMsgBoxWithAck.resx">
<DependentUpon>FrmMesParamMsgBoxWithAck.cs</DependentUpon> <DependentUpon>FrmMesParamMsgBoxWithAck.cs</DependentUpon>
@@ -414,9 +418,12 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
<None Include="Config\Configure.ini"> <None Include="Config\Configure.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
<None Include="Config\Device.ini" /> <None Include="Config\Device.ini" />
<None Include="Config\FdConfig.xlsx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\Group.xlsx" /> <None Include="Config\Group.xlsx" />
<None Include="Config\Variable.xlsx" /> <None Include="Config\Variable.xlsx" />
<Content Include="NLog.config"> <Content Include="NLog.config">
Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,88 @@
[配置信息]
开机自动启动=False
启动自动登录=False
无操作自动锁屏=False
锁屏间隔时间=3
无操作自动切换监控界面=True
切换监控界面间隔时间=2
曲线显示数量=1
开启刷卡模式=False
MES/非MES模式切换=False
获取MES参数=False
线程耗时日志保存=False
是否获取服务器数据=1
是否存储C模块数据=1
外观检测条码计数=1
强制OK/正常NG模式切换=False
[MES配置]
工厂代码=60J
产线编号=MW-602
设备编号=602VIM01
智能电表编号=1,2
白夜班交替时间=20:30:00
MES日志保存路径=D:\APILog
存储服务器IP地址=192.168.2.108
Grading1=K80
Grading2=K81
Grading3=k80
Grading4=K83
Grading5=K76
Grading6=K75
员工权限校验=http://10.22.160.141/core/api/public/equipment/base/user/login/verify
设备参数设定值请求=http://10.22.160.141/core/api/public/param/setting/request
设备参数设定值变更=http://10.22.160.141/core/api/public/param/setting/change
产品进站=http://10.22.160.141/core/api/public/formation/section/arrival/bz
产品过程加工参数=http://10.22.160.141/core/api/public/product/process/param/new/process
产品结果加工参数=http://10.22.160.141/core/api/public/product/process/param/new/result
产品出站=http://10.22.160.141/core/api/public/eve/pm/formation-section/bz
设备报警=http://10.22.160.141/core/api/public/equipment/alarm/currency
设备状态=http://10.22.160.141/core/api/public/eve/pm/eqm/run/status/operation
能耗=http://10.22.160.141/core/api/public/eve/pm/energy/consumption/collection/submit
风速仪=https://iot.eveportal.com:9470/eve_api/ems/iot/upload_device_collect_data
风速仪=https://iot.eveportal.com:9470/eve_api/ems/iot/upload_device_collect_data
分档参数=http://10.22.160.141/core/api/public/eve/pm/eqm/new/grading
guid=b512ec89-1fde-4941-9986-fad799e8d1f6
DeviceState=6
run_AlarmMark=0
run_IdleMark=0
[统计计数]
LastHour=1030
LastResetTime=0
LastTotalOldNum=360
LastOkOldNum=358
ProdAllQty=0
ProdOKQty=0
ProdDRFIDNgQty=0
ProdDXNgQty=0
ProdGRFIDNgQty=0
ProdYLZNgQty=0
[风速仪]
AntiDustAirSpeedCount=25
AntiDustAirSpeed1=FSY-2A-001
AntiDustAirSpeed2=FSY-2A-002
AntiDustAirSpeed3=FSY-2A-003
AntiDustAirSpeed4=FSY-2A-004
AntiDustAirSpeed5=FSY-2A-005
AntiDustAirSpeed6=FSY-2A-006
AntiDustAirSpeed7=FSY-2A-007
AntiDustAirSpeed8=FSY-2A-008
AntiDustAirSpeed9=FSY-2A-009
AntiDustAirSpeed10=FSY-2A-010
AntiDustAirSpeed11=FSY-2A-011
AntiDustAirSpeed12=FSY-2A-012
AntiDustAirSpeed13=FSY-2A-013
AntiDustAirSpeed14=FSY-2A-014
AntiDustAirSpeed15=FSY-2A-015
AntiDustAirSpeed16=FSY-2A-016
AntiDustAirSpeed17=FSY-2A-017
AntiDustAirSpeed18=FSY-2A-018
AntiDustAirSpeed19=FSY-2A-019
AntiDustAirSpeed20=FSY-2A-020
AntiDustAirSpeed21=FSY-2A-021
AntiDustAirSpeed22=FSY-2A-022
AntiDustAirSpeed23=FSY-2A-023
AntiDustAirSpeed24=FSY-2A-024
AntiDustAirSpeed25=FSY-2A-025
@@ -0,0 +1,4 @@
[设备参数]
IP地址=192.168.1.52
端口号=9600
PLC类型=OmronFinsTcp_HSL
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,732 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>HML.ComplexityPropertys</name>
</assembly>
<members>
<member name="T:HML.TBPadding">
<summary>
上下内边距
</summary>
</member>
<member name="P:HML.TBPadding.All">
<summary>
全部
</summary>
</member>
<member name="P:HML.TBPadding.Top">
<summary>
上边内边距
</summary>
</member>
<member name="P:HML.TBPadding.Bottom">
<summary>
下边内边距
</summary>
</member>
<member name="M:HML.TBPadding.#ctor(System.Int32)">
<summary>
</summary>
<param name="all">全部边距</param>
</member>
<member name="M:HML.TBPadding.#ctor(System.Int32,System.Int32)">
<summary>
</summary>
<param name="top">上边内边距</param>
<param name="bottom">下边内边距</param>
</member>
<member name="M:HML.TBPadding.op_Equality(HML.TBPadding,HML.TBPadding)">
<summary>
判断两个边距对象设置是否一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.TBPadding.op_Inequality(HML.TBPadding,HML.TBPadding)">
<summary>
判断两个边距对象设置是否不一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.TBPadding.GetHashCode">
<summary>
获取该对象的哈希值(参考源码)
</summary>
<returns></returns>
</member>
<member name="M:HML.TBPadding.Equals(System.Object)">
<summary>
判断是否和该对象的引用是一样
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:HML.TBPadding.ToString">
<summary>
把该对象转换成字符串
</summary>
<returns></returns>
</member>
<member name="M:HML.TBPadding.RotateTop(System.Int32,System.Int32)">
<summary>
计算哈希值(参考源码)
</summary>
<param name="value"></param>
<param name="nBits"></param>
<returns></returns>
</member>
<member name="M:HML.TBPadding.ShouldSerializeAll">
<summary>
是否应该使用All设置初始化对象
</summary>
<returns></returns>
</member>
<member name="T:HML.TBPaddingConverter">
<summary>
上下内边距转换器
</summary>
</member>
<member name="M:HML.TBPaddingConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<summary>
字符串转对象
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:HML.TBPaddingConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<summary>
对象转字符串
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<param name="destinationType"></param>
<returns></returns>
</member>
<member name="T:HML.TBMargin">
<summary>
上下外边距
</summary>
</member>
<member name="P:HML.TBMargin.All">
<summary>
全部
</summary>
</member>
<member name="P:HML.TBMargin.Top">
<summary>
上边外边距
</summary>
</member>
<member name="P:HML.TBMargin.Bottom">
<summary>
下边外边距
</summary>
</member>
<member name="M:HML.TBMargin.#ctor(System.Int32)">
<summary>
</summary>
<param name="all">全部边距</param>
</member>
<member name="M:HML.TBMargin.#ctor(System.Int32,System.Int32)">
<summary>
</summary>
<param name="top">上边外边距</param>
<param name="bottom">下边外边距</param>
</member>
<member name="M:HML.TBMargin.op_Equality(HML.TBMargin,HML.TBMargin)">
<summary>
判断两个边距对象设置是否一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.TBMargin.op_Inequality(HML.TBMargin,HML.TBMargin)">
<summary>
判断两个边距对象设置是否不一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.TBMargin.GetHashCode">
<summary>
获取该对象的哈希值(参考源码)
</summary>
<returns></returns>
</member>
<member name="M:HML.TBMargin.Equals(System.Object)">
<summary>
判断是否和该对象的引用是一样
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:HML.TBMargin.ToString">
<summary>
把该对象转换成字符串
</summary>
<returns></returns>
</member>
<member name="M:HML.TBMargin.RotateTop(System.Int32,System.Int32)">
<summary>
计算哈希值(参考源码)
</summary>
<param name="value"></param>
<param name="nBits"></param>
<returns></returns>
</member>
<member name="M:HML.TBMargin.ShouldSerializeAll">
<summary>
是否应该使用All设置初始化对象
</summary>
<returns></returns>
</member>
<member name="T:HML.TBMarginConverter">
<summary>
上下外边距转换器
</summary>
</member>
<member name="M:HML.TBMarginConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<summary>
字符串转对象
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:HML.TBMarginConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<summary>
对象转字符串
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<param name="destinationType"></param>
<returns></returns>
</member>
<member name="T:HML.LRPadding">
<summary>
左右内边距
</summary>
</member>
<member name="P:HML.LRPadding.All">
<summary>
全部
</summary>
</member>
<member name="P:HML.LRPadding.Left">
<summary>
左边内边距
</summary>
</member>
<member name="P:HML.LRPadding.Right">
<summary>
右边内边距
</summary>
</member>
<member name="M:HML.LRPadding.#ctor(System.Int32)">
<summary>
</summary>
<param name="all">全部边距</param>
</member>
<member name="M:HML.LRPadding.#ctor(System.Int32,System.Int32)">
<summary>
</summary>
<param name="left">左边内边距</param>
<param name="right">右边内边距</param>
</member>
<member name="M:HML.LRPadding.op_Equality(HML.LRPadding,HML.LRPadding)">
<summary>
判断两个边距对象设置是否一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.LRPadding.op_Inequality(HML.LRPadding,HML.LRPadding)">
<summary>
判断两个边距对象设置是否不一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.LRPadding.GetHashCode">
<summary>
获取该对象的哈希值(参考源码)
</summary>
<returns></returns>
</member>
<member name="M:HML.LRPadding.Equals(System.Object)">
<summary>
判断是否和该对象的引用是一样
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:HML.LRPadding.ToString">
<summary>
把该对象转换成字符串
</summary>
<returns></returns>
</member>
<member name="M:HML.LRPadding.RotateLeft(System.Int32,System.Int32)">
<summary>
计算哈希值(参考源码)
</summary>
<param name="value"></param>
<param name="nBits"></param>
<returns></returns>
</member>
<member name="M:HML.LRPadding.ShouldSerializeAll">
<summary>
是否应该使用All设置初始化对象
</summary>
<returns></returns>
</member>
<member name="T:HML.LRPaddingConverter">
<summary>
左右内边距转换器
</summary>
</member>
<member name="M:HML.LRPaddingConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<summary>
字符串转对象
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:HML.LRPaddingConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<summary>
对象转字符串
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<param name="destinationType"></param>
<returns></returns>
</member>
<member name="T:HML.LRMargin">
<summary>
左右外边距
</summary>
</member>
<member name="P:HML.LRMargin.All">
<summary>
全部
</summary>
</member>
<member name="P:HML.LRMargin.Left">
<summary>
左边外边距
</summary>
</member>
<member name="P:HML.LRMargin.Right">
<summary>
右边外边距
</summary>
</member>
<member name="M:HML.LRMargin.#ctor(System.Int32)">
<summary>
</summary>
<param name="all">全部边距</param>
</member>
<member name="M:HML.LRMargin.#ctor(System.Int32,System.Int32)">
<summary>
</summary>
<param name="left">左边外边距</param>
<param name="right">右边外边距</param>
</member>
<member name="M:HML.LRMargin.op_Equality(HML.LRMargin,HML.LRMargin)">
<summary>
判断两个边距对象设置是否一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.LRMargin.op_Inequality(HML.LRMargin,HML.LRMargin)">
<summary>
判断两个边距对象设置是否不一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.LRMargin.GetHashCode">
<summary>
获取该对象的哈希值(参考源码)
</summary>
<returns></returns>
</member>
<member name="M:HML.LRMargin.Equals(System.Object)">
<summary>
判断是否和该对象的引用是一样
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:HML.LRMargin.ToString">
<summary>
把该对象转换成字符串
</summary>
<returns></returns>
</member>
<member name="M:HML.LRMargin.RotateLeft(System.Int32,System.Int32)">
<summary>
计算哈希值(参考源码)
</summary>
<param name="value"></param>
<param name="nBits"></param>
<returns></returns>
</member>
<member name="M:HML.LRMargin.ShouldSerializeAll">
<summary>
是否应该使用All设置初始化对象
</summary>
<returns></returns>
</member>
<member name="T:HML.LRMarginConverter">
<summary>
左右外边距转换器
</summary>
</member>
<member name="M:HML.LRMarginConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<summary>
字符串转对象
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:HML.LRMarginConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<summary>
对象转字符串
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<param name="destinationType"></param>
<returns></returns>
</member>
<member name="T:HML.MultidropSlidePoleAnchorMargin">
<summary>
MultidropSlide滑杆停靠外边距
</summary>
</member>
<member name="P:HML.MultidropSlidePoleAnchorMargin.All">
<summary>
全部
</summary>
</member>
<member name="P:HML.MultidropSlidePoleAnchorMargin.PoleTitle">
<summary>
滑杆为提示标题保留外边距
</summary>
</member>
<member name="P:HML.MultidropSlidePoleAnchorMargin.PoleStart">
<summary>
滑杆开始坐标外边距
</summary>
</member>
<member name="P:HML.MultidropSlidePoleAnchorMargin.PoleEnd">
<summary>
滑杆结束坐标外边距
</summary>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.#ctor(System.Int32)">
<summary>
</summary>
<param name="all">全部</param>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="poleTitle">滑杆为提示标题保留外边距</param>
<param name="poleStart">滑杆开始坐标外边距</param>
<param name="poleEnd">滑杆结束坐标外边距</param>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.op_Equality(HML.MultidropSlidePoleAnchorMargin,HML.MultidropSlidePoleAnchorMargin)">
<summary>
判断两个滑杆停靠外边距对象设置是否一样
</summary>
<param name="arg1"></param>
<param name="arg2"></param>
<returns></returns>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.op_Inequality(HML.MultidropSlidePoleAnchorMargin,HML.MultidropSlidePoleAnchorMargin)">
<summary>
判断两个滑杆停靠外边距对象设置是否不一样
</summary>
<param name="arg1"></param>
<param name="arg2"></param>
<returns></returns>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.GetHashCode">
<summary>
获取该对象的哈希值(参考源码)
</summary>
<returns></returns>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.Equals(System.Object)">
<summary>
判断是否和该对象的引用是一样
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.ToString">
<summary>
把该对象转换成字符串
</summary>
<returns></returns>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.RotateLeftTop(System.Int32,System.Int32)">
<summary>
计算哈希值(参考源码)
</summary>
<param name="value"></param>
<param name="nBits"></param>
<returns></returns>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMargin.ShouldSerializeAll">
<summary>
是否应该使用All设置初始化对象
</summary>
<returns></returns>
</member>
<member name="T:HML.MultidropSlidePoleAnchorMarginConverter">
<summary>
MultidropSlide滑杆停靠外边距转换器
</summary>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMarginConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<summary>
字符串转对象
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:HML.MultidropSlidePoleAnchorMarginConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<summary>
对象转字符串
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<param name="destinationType"></param>
<returns></returns>
</member>
<member name="T:HML.PointFR">
<summary>
表示在二维平面中定义点的浮点 x 和 y 坐标的有序对。
</summary>
</member>
<member name="M:HML.PointFR.ConvertFrom(System.Drawing.PointF)">
<summary>
System.Drawing.PointF 转换成 PointFR
</summary>
<returns></returns>
</member>
<member name="M:HML.PointFR.ConvertTo">
<summary>
PointFR 转换成 System.Drawing.PointF
</summary>
<returns></returns>
</member>
<member name="T:HML.PointFRConverter">
<summary>
PointFR转换器
</summary>
</member>
<member name="T:HML.PropertyOrderConverter">
<summary>
对属性进行排序
</summary>
</member>
<member name="M:HML.PropertyOrderConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<summary>
当该属性为展开属性选型时,属性编辑器删除该属性的描述
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<param name="destinationType"></param>
<returns></returns>
</member>
<member name="T:HML.PropertyOrderPair">
<summary>
属性排序 序号比较器
</summary>
</member>
<member name="P:HML.PropertyOrderPair.CategoryName">
<summary>
类别名称
</summary>
</member>
<member name="M:HML.PropertyOrderPair.#ctor(System.String,System.Single)">
<summary>
</summary>
<param name="categoryName">类别名称</param>
<param name="order">序号</param>
</member>
<member name="T:HML.PropertyOrderAttribute">
<summary>
属性排序(升序)
</summary>
</member>
<member name="P:HML.PropertyOrderAttribute.Order">
<summary>
序号
</summary>
</member>
<member name="M:HML.PropertyOrderAttribute.#ctor(System.Single)">
<summary>
</summary>
<param name="order">序号</param>
</member>
<member name="T:HML.RoundCorner">
<summary>
圆角
</summary>
</member>
<member name="P:HML.RoundCorner.All">
<summary>
全部
</summary>
</member>
<member name="P:HML.RoundCorner.LeftTop">
<summary>
左上角
</summary>
</member>
<member name="P:HML.RoundCorner.RightTop">
<summary>
右上角
</summary>
</member>
<member name="P:HML.RoundCorner.RightBottom">
<summary>
右下角
</summary>
</member>
<member name="P:HML.RoundCorner.LeftBottom">
<summary>
左下角
</summary>
</member>
<member name="M:HML.RoundCorner.#ctor(System.Int32)">
<summary>
</summary>
<param name="all">全部圆角</param>
</member>
<member name="M:HML.RoundCorner.#ctor(System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="leftTop">左上角</param>
<param name="rightTop">右上角</param>
<param name="rightBottom">右下角</param>
<param name="leftBottom">左下角</param>
</member>
<member name="M:HML.RoundCorner.op_Equality(HML.RoundCorner,HML.RoundCorner)">
<summary>
判断两个圆角对象设置是否一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.RoundCorner.op_Inequality(HML.RoundCorner,HML.RoundCorner)">
<summary>
判断两个圆角对象设置是否不一样
</summary>
<param name="rc1"></param>
<param name="rc2"></param>
<returns></returns>
</member>
<member name="M:HML.RoundCorner.GetHashCode">
<summary>
获取该对象的哈希值(参考源码)
</summary>
<returns></returns>
</member>
<member name="M:HML.RoundCorner.Equals(System.Object)">
<summary>
判断是否和该对象的引用是一样
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:HML.RoundCorner.ToString">
<summary>
把该对象转换成字符串
</summary>
<returns></returns>
</member>
<member name="M:HML.RoundCorner.RotateLeftTop(System.Int32,System.Int32)">
<summary>
计算哈希值(参考源码)
</summary>
<param name="value"></param>
<param name="nBits"></param>
<returns></returns>
</member>
<member name="M:HML.RoundCorner.ShouldSerializeAll">
<summary>
是否应该使用All设置初始化对象
</summary>
<returns></returns>
</member>
<member name="T:HML.RoundCornerConverter">
<summary>
圆角转换器
</summary>
</member>
<member name="M:HML.RoundCornerConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<summary>
字符串转对象
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:HML.RoundCornerConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<summary>
对象转字符串
</summary>
<param name="context"></param>
<param name="culture"></param>
<param name="value"></param>
<param name="destinationType"></param>
<returns></returns>
</member>
</members>
</doc>
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Xml" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.1" newVersion="6.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Google.Protobuf" publicKeyToken="a7d26565bac4d604" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.23.4.0" newVersion="3.23.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ZstdSharp" publicKeyToken="8d151af33a4ad5cf" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.7.2.0" newVersion="0.7.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Configuration.ConfigurationManager" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Binary file not shown.
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Google.Protobuf" publicKeyToken="a7d26565bac4d604" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.23.4.0" newVersion="3.23.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ZstdSharp" publicKeyToken="8d151af33a4ad5cf" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.7.2.0" newVersion="0.7.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Configuration.ConfigurationManager" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Xml" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.1" newVersion="6.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup></configuration>
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Xml" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.1" newVersion="6.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Xml" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.1" newVersion="6.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More