|
|
using MaterialTraceability.Business;
|
|
|
using MaterialTraceability.Business.Impl;
|
|
|
using MaterialTraceability.Entity.DAO;
|
|
|
using MaterialTraceability.Entity.DTO;
|
|
|
using MaterialTraceability.Entity.Enum;
|
|
|
using MaterialTraceability.SqlSugar;
|
|
|
using MaterialTraceability.SqlSugar.ServiceImpl;
|
|
|
using MaterialTraceabilityUI.Common;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Configuration;
|
|
|
using System.Linq;
|
|
|
using System.Linq.Expressions;
|
|
|
using System.Text;
|
|
|
using System.Threading;
|
|
|
using System.Threading.Tasks;
|
|
|
using System.Windows;
|
|
|
using System.Windows.Controls;
|
|
|
using System.Windows.Data;
|
|
|
using System.Windows.Documents;
|
|
|
using System.Windows.Input;
|
|
|
using System.Windows.Media;
|
|
|
using System.Windows.Media.Imaging;
|
|
|
using System.Windows.Navigation;
|
|
|
using System.Windows.Shapes;
|
|
|
|
|
|
namespace MaterialTraceabilityUI
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// DieCuttingProcess.xaml 的交互逻辑
|
|
|
/// </summary>
|
|
|
public partial class DieCuttingProcess : UserControl
|
|
|
{
|
|
|
private EquipBusiness equipBusiness = new EquipBusiness();
|
|
|
private IBaseServices<RecordLogInfo> logInfoServices = new BaseServices<RecordLogInfo>();
|
|
|
private IBaseServices<ProShaftInfo> shaftInfoServices = new BaseServices<ProShaftInfo>();
|
|
|
private int position = 0;
|
|
|
|
|
|
private PlcBusiness plcBusiness = new PlcBusiness();
|
|
|
private UpLoadBusiness loadBusiness = UpLoadBusiness.Instance;
|
|
|
private AppConfigDto appConfig = AppConfigDto.Instance;
|
|
|
public DieCuttingProcess()
|
|
|
{
|
|
|
InitializeComponent();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
if (appConfig.processId.Contains("MQ"))
|
|
|
{
|
|
|
UserControlInit();
|
|
|
MainBusiness.LogRefreshEvent += LogRefresh;
|
|
|
MQSignalReadBusiness.LogRefreshEvent += LogRefresh;
|
|
|
MQSignalReadBusiness.ViewModelRefreshEvent += ProductionParam;
|
|
|
|
|
|
refreshThread();
|
|
|
}
|
|
|
}catch(Exception ex)
|
|
|
{
|
|
|
Console.WriteLine("界面异常:"+ex.Message);
|
|
|
Console.ReadLine();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void ProductionParam(ViewModelDto viewModelDto)
|
|
|
{
|
|
|
if (viewModelDto.rfidInfo != null)
|
|
|
{
|
|
|
Action action;
|
|
|
switch (viewModelDto.rfidInfo.position)
|
|
|
{
|
|
|
case 6:
|
|
|
if(appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_1.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_1.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_1.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_1.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_1.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_1.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
if(appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_2.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_2.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_2.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_2.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_2.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_2.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
break;
|
|
|
case 5:
|
|
|
if(appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_2.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_2.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_2.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_2.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_2.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_2.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if(appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_1.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_1.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_1.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_1.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_1.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_1.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
break;
|
|
|
case 3:
|
|
|
if(appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_3.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_3.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_3.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_3.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_3.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_3.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if(appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_4.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_4.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_4.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_4.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_4.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_4.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
break;
|
|
|
case 1:
|
|
|
if(appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_4.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_4.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_4.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_4.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_4.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_4.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_3.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_3.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_3.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_3.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_3.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_3.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
break;
|
|
|
case 4:
|
|
|
if(appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_5.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_5.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_5.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_5.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_5.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_5.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
if(appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_6.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_6.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_6.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_6.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_6.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_6.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
break;
|
|
|
case 2:
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_6.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_6.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_6.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_6.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_6.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_6.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.SFC_5.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
|
|
|
};
|
|
|
SFC_5.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.RFID_5.Text = "RFID:" + viewModelDto.rfidInfo.rfid;
|
|
|
};
|
|
|
RFID_5.Dispatcher.BeginInvoke(action);
|
|
|
action = () =>
|
|
|
{
|
|
|
this.EA_5.Text = "EA:" + viewModelDto.rfidInfo.ea;
|
|
|
};
|
|
|
EA_5.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void refreshThread()
|
|
|
{
|
|
|
//Thread plcRead = new Thread(refreshTimer);
|
|
|
//plcRead.Start();
|
|
|
System.Timers.Timer timer = new System.Timers.Timer(1000 * 30);
|
|
|
timer.Elapsed += new System.Timers.ElapsedEventHandler(refreshEquipStatus);
|
|
|
timer.AutoReset = true;
|
|
|
timer.Enabled = true;
|
|
|
timer.Start();
|
|
|
}
|
|
|
|
|
|
private void refreshEquipStatus(object source, System.Timers.ElapsedEventArgs e)
|
|
|
{
|
|
|
|
|
|
equipBusiness.CheckEquipState(); //equipBusiness.CheckEquipState();
|
|
|
|
|
|
UpdataDeviceStatus();
|
|
|
|
|
|
}
|
|
|
|
|
|
public void LogRefresh(LogType logType, string massage)
|
|
|
{
|
|
|
string info = massage;
|
|
|
string logTypeStr = "";
|
|
|
int isAlarm = 0;
|
|
|
|
|
|
if (logType == LogType.MesLog)
|
|
|
{
|
|
|
logTypeStr = "MES";
|
|
|
ListBoxItemAdd(this.MesLog, massage);
|
|
|
}
|
|
|
|
|
|
if (logType == LogType.PlcLog)
|
|
|
{
|
|
|
logTypeStr = "PLC";
|
|
|
ListBoxItemAdd(this.PlcLog, massage);
|
|
|
}
|
|
|
|
|
|
if (logType == LogType.RfidLog)
|
|
|
{
|
|
|
logTypeStr = "RFID";
|
|
|
ListBoxItemAdd(this.RfidLog, massage);
|
|
|
}
|
|
|
|
|
|
if (logType == LogType.AlarmLog)
|
|
|
{
|
|
|
logTypeStr = "Alarm";
|
|
|
isAlarm = 1;
|
|
|
ListBoxItemAdd(this.AlarmLog, massage);
|
|
|
loadBusiness.SaveLogRecord(0, massage);
|
|
|
}
|
|
|
|
|
|
logInfoServices.Add(new RecordLogInfo()
|
|
|
{
|
|
|
id = System.Guid.NewGuid().ToString("N"),
|
|
|
processId = "LY_A",
|
|
|
machineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
|
|
alarmType = logTypeStr,
|
|
|
alarmInfo = info,
|
|
|
isAlarm = isAlarm,
|
|
|
recordTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
|
|
|
});
|
|
|
}
|
|
|
|
|
|
private List<LogInfoItem> logInfos = new List<LogInfoItem>();
|
|
|
/// <summary>
|
|
|
/// ListBox刷新
|
|
|
/// </summary>
|
|
|
/// <param name="listBox"></param>
|
|
|
/// <param name="massage"></param>
|
|
|
private void ListBoxItemAdd(ListBox listBox, string massage)
|
|
|
{
|
|
|
LogHelperBusiness.ViewLog(massage);
|
|
|
|
|
|
logInfos.Add(new LogInfoItem()
|
|
|
{
|
|
|
listBox = listBox,
|
|
|
recordTime = DateTime.Now,
|
|
|
message = String.Format("{0} {1}", DateTime.Now.ToString("MM-dd HH:mm:ss"), massage)
|
|
|
});
|
|
|
|
|
|
while (logInfos.Count > 120)
|
|
|
{
|
|
|
logInfos.RemoveAt(0);
|
|
|
}
|
|
|
|
|
|
Action action;
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
listBox.Items.Clear();
|
|
|
var loginList = logInfos.ToArray();
|
|
|
var strArray = loginList.Where(x => x.listBox == listBox).OrderByDescending(x => x.recordTime).ToList();
|
|
|
if (strArray != null)
|
|
|
{
|
|
|
foreach (var str in strArray)
|
|
|
{
|
|
|
SplitByLen(str.message, 50).ForEach(x =>
|
|
|
{
|
|
|
listBox.Items.Add(x);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
listBox.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
public static List<string> SplitByLen(string str, int separatorCharNum)
|
|
|
{
|
|
|
string tempStr = str;
|
|
|
List<string> strList = new List<string>();
|
|
|
if (string.IsNullOrEmpty(str) || str.Length <= separatorCharNum)
|
|
|
{
|
|
|
strList.Add(str);
|
|
|
return strList;
|
|
|
}
|
|
|
|
|
|
int iMax = Convert.ToInt32(Math.Ceiling(str.Length / (separatorCharNum * 1.0)));
|
|
|
|
|
|
for (int i = 0; i < iMax; i++)
|
|
|
{
|
|
|
string currMsg = tempStr.Substring(0, tempStr.Length > separatorCharNum ? separatorCharNum : tempStr.Length);
|
|
|
strList.Add(currMsg);
|
|
|
if (tempStr.Length > separatorCharNum)
|
|
|
{
|
|
|
tempStr = tempStr.Substring(separatorCharNum, tempStr.Length - separatorCharNum);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return strList;
|
|
|
}
|
|
|
|
|
|
public void UserControlInit()
|
|
|
{
|
|
|
ListBoxItemAdd(this.RfidLog, "模切RFID物料追溯系统初始化");
|
|
|
//查询前五个小时的数据
|
|
|
DateTime beginTime = DateTime.Now.AddHours(-5);
|
|
|
Expression<Func<ProShaftInfo, bool>> exp = s1 => true;
|
|
|
exp = exp.And(x => x.processId == appConfig.processId && Convert.ToDateTime(x.bindTime) > beginTime);
|
|
|
List<ProShaftInfo> shaftInfos = shaftInfoServices.Query(exp).Result;
|
|
|
|
|
|
if (shaftInfos == null || shaftInfos.Count == 0)
|
|
|
{
|
|
|
ListBoxItemAdd(this.RfidLog, "程序初始化数据为空");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
shaftInfos.ForEach(x =>
|
|
|
{
|
|
|
ProductionParam(new ViewModelDto()
|
|
|
{
|
|
|
rfidInfo = new RfidInfoDto()
|
|
|
{
|
|
|
rfid = x.bindRfid,
|
|
|
sfc = x.bindSfc,
|
|
|
ea = x.bindEaValue,
|
|
|
position = Convert.ToInt32(x.positionId)
|
|
|
},
|
|
|
plcStatus = true,
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
|
|
|
private void UpdataDeviceStatus()
|
|
|
{
|
|
|
var equipStatus = equipBusiness.Equiplist;
|
|
|
|
|
|
Action action;
|
|
|
|
|
|
if (equipStatus.Count == 0) return;
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var equipInfo = equipStatus.Where(x => x.positionId == 6).FirstOrDefault();
|
|
|
if (equipInfo != null)
|
|
|
{
|
|
|
if (equipInfo.IsConnect)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTA.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTA.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus1.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus1.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTB.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTB.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus2.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus2.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTA.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTA.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus1.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus1.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTB.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTB.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus2.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus2.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var equipInfo = equipStatus.Where(x => x.positionId == 5).FirstOrDefault();
|
|
|
if (equipInfo != null)
|
|
|
{
|
|
|
if (equipInfo.IsConnect)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTB.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTB.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus2.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus2.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTA.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTA.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus1.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus1.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTB.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTB.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus2.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus2.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTA.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTA.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus1.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus1.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var equipInfo = equipStatus.Where(x => x.positionId == 3).FirstOrDefault();
|
|
|
if (equipInfo != null)
|
|
|
{
|
|
|
if (equipInfo.IsConnect)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTC.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTC.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus3.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus3.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTD.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTD.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus4.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus4.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTC.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTC.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus3.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus3.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTD.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTD.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus4.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus4.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var equipInfo = equipStatus.Where(x => x.positionId == 1).FirstOrDefault();
|
|
|
if (equipInfo != null)
|
|
|
{
|
|
|
if (equipInfo.IsConnect)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTD.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTD.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus4.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus4.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTC.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTC.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus3.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus3.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTD.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTD.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus4.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus4.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTC.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTC.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus3.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus3.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var equipInfo = equipStatus.Where(x => x.positionId == 4).FirstOrDefault();
|
|
|
if (equipInfo != null)
|
|
|
{
|
|
|
if (equipInfo.IsConnect)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTE.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTE.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus5.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus5.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTF.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTF.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus6.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus6.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTE.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTE.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTF.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTF.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var equipInfo = equipStatus.Where(x => x.positionId == 2).FirstOrDefault();
|
|
|
if (equipInfo != null)
|
|
|
{
|
|
|
if (equipInfo.IsConnect)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTF.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTF.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus6.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus6.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTE.Foreground = Brushes.Green;
|
|
|
};
|
|
|
TestTE.Dispatcher.BeginInvoke(action);
|
|
|
|
|
|
action = () =>
|
|
|
{
|
|
|
string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
|
|
|
BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
|
|
|
this.EquipStatus5.ImageSource = bitmapImage;
|
|
|
};
|
|
|
EquipStatus5.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTF.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTF.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
|
|
|
if (appConfig.machineId == 4)
|
|
|
{
|
|
|
action = () =>
|
|
|
{
|
|
|
this.TestTE.Foreground = Brushes.Red;
|
|
|
};
|
|
|
TestTE.Dispatcher.BeginInvoke(action);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
throw;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 上左收卷完工
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void UpLeftFinish_Cilck(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
|
|
|
if (roleId > 3 || roleId == 0)
|
|
|
{
|
|
|
System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("上左收卷强制下料");
|
|
|
ListBoxItemAdd(this.PlcLog, "上左收卷强制下料触发成功,MW24824写入0");
|
|
|
LogHelperBusiness.LogInfo("上左收卷强制下料触发,MW24824写入0");
|
|
|
plcBusiness.writePlc(appConfig.mqAddress.上左收卷下料, 0);
|
|
|
int position = 0;
|
|
|
if(appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 3;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 1;
|
|
|
}
|
|
|
ForcedUnloading(position);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 上右收卷完工
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void UpRightFinish_Cilck(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
|
|
|
if (roleId > 3 || roleId == 0)
|
|
|
{
|
|
|
System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("上右收卷强制下料触发");
|
|
|
ListBoxItemAdd(this.PlcLog, "上右收卷强制下料触发成功,MW24826写入0");
|
|
|
LogHelperBusiness.LogInfo("上右收卷强制下料触发成功,MW24826写入0");
|
|
|
plcBusiness.writePlc(appConfig.mqAddress.上右收卷下料, 0);
|
|
|
|
|
|
int position = 0;
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 3;
|
|
|
}
|
|
|
ForcedUnloading(position);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下左收卷
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void DownLeftFinish_Cilck(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
|
|
|
if (roleId > 3 || roleId == 0)
|
|
|
{
|
|
|
System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("下左收卷强制下料触发");
|
|
|
ListBoxItemAdd(this.PlcLog, "下左收卷强制下料触发成功,MW24828写入0");
|
|
|
LogHelperBusiness.LogInfo("下左收卷强制下料触发成功,MW24828写入0");
|
|
|
plcBusiness.writePlc(appConfig.mqAddress.下左收卷下料, 0);
|
|
|
|
|
|
int position = 0;
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 4;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 2;
|
|
|
}
|
|
|
ForcedUnloading(position);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下右收卷完工
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void DownRightFinish_Cilck(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
|
|
|
if (roleId > 3 || roleId == 0)
|
|
|
{
|
|
|
System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("下右收卷强制下料触发");
|
|
|
ListBoxItemAdd(this.PlcLog, "下右收卷强制下料触发成功,MW24830写入0");
|
|
|
LogHelperBusiness.LogInfo("下右收卷强制下料触发成功,MW24830写入0");
|
|
|
plcBusiness.writePlc(appConfig.mqAddress.下右收卷下料, 0);
|
|
|
|
|
|
int position = 0;
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 2;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 4;
|
|
|
}
|
|
|
ForcedUnloading(position);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void upMaterial_1_MouseDown(object sender, MouseButtonEventArgs e)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 6;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 5;
|
|
|
}
|
|
|
|
|
|
WriteInfo write = new WriteInfo("MQ_A", position);
|
|
|
write.ShowDialog();
|
|
|
|
|
|
RefreshMaterialInfo("MQ_A", position.ToString());
|
|
|
}
|
|
|
|
|
|
private void upMaterial_2_MouseDown(object sender, MouseButtonEventArgs e)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 5;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 6;
|
|
|
}
|
|
|
WriteInfo write = new WriteInfo("MQ_A", position);
|
|
|
write.ShowDialog();
|
|
|
|
|
|
RefreshMaterialInfo("MQ_A", position.ToString());
|
|
|
}
|
|
|
|
|
|
private void StackPanel_MouseDown(object sender, MouseButtonEventArgs e)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 3;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 1;
|
|
|
}
|
|
|
WriteInfo write = new WriteInfo("MQ_A", position);
|
|
|
write.ShowDialog();
|
|
|
|
|
|
RefreshMaterialInfo("MQ_A", position.ToString());
|
|
|
}
|
|
|
|
|
|
private void down_2_MouseDown(object sender, MouseButtonEventArgs e)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 3;
|
|
|
}
|
|
|
WriteInfo write = new WriteInfo("MQ_A", position);
|
|
|
write.ShowDialog();
|
|
|
|
|
|
RefreshMaterialInfo("MQ_A", position.ToString());
|
|
|
}
|
|
|
|
|
|
private void down_e_MouseDown(object sender, MouseButtonEventArgs e)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 4;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 2;
|
|
|
}
|
|
|
WriteInfo write = new WriteInfo("MQ_A", position);
|
|
|
write.ShowDialog();
|
|
|
|
|
|
RefreshMaterialInfo("MQ_A", position.ToString());
|
|
|
}
|
|
|
|
|
|
private void down_4_MouseDown(object sender, MouseButtonEventArgs e)
|
|
|
{
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
position = 2;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
position = 4;
|
|
|
}
|
|
|
WriteInfo write = new WriteInfo("MQ_A", position);
|
|
|
write.ShowDialog();
|
|
|
|
|
|
RefreshMaterialInfo("MQ_A", position.ToString());
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 刷新界面卷轴信息
|
|
|
/// </summary>
|
|
|
/// <param name="processId"></param>
|
|
|
/// <param name="position"></param>
|
|
|
public void RefreshMaterialInfo(string processId, string position)
|
|
|
{
|
|
|
DateTime beginTime = DateTime.Now.AddHours(-5);
|
|
|
Expression<Func<ProShaftInfo, bool>> exp = s1 => true;
|
|
|
exp = exp.And(x => x.processId == appConfig.processId && Convert.ToDateTime(x.bindTime) > beginTime);
|
|
|
Expression<Func<ProShaftInfo, object>> order = s1 => s1.bindTime;
|
|
|
ProShaftInfo shaftInfo = shaftInfoServices.QueryFirst(exp, order, false).Result;
|
|
|
if (shaftInfo == null)
|
|
|
{
|
|
|
//ListBoxItemAdd(this.RfidLog, "获取卷轴数据为空");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
ProductionParam(new ViewModelDto()
|
|
|
{
|
|
|
rfidInfo = new RfidInfoDto()
|
|
|
{
|
|
|
rfid = shaftInfo.bindRfid,
|
|
|
sfc = shaftInfo.bindSfc,
|
|
|
ea = shaftInfo.bindEaValue,
|
|
|
position = Convert.ToInt32(shaftInfo.positionId)
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
UpdataDeviceStatus();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 左放卷强制下料
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void LeftFinish_Cilck(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
|
|
|
if (roleId > 3 || roleId == 0)
|
|
|
{
|
|
|
System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("左放卷强制下料");
|
|
|
ListBoxItemAdd(this.PlcLog, "左放卷强制下料触发成功");
|
|
|
LogHelperBusiness.LogInfo("左放卷强制下料触发");
|
|
|
plcBusiness.writePlc(appConfig.mqAddress.左放卷下料, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 右放卷强制下料
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void RightFinish_Cilck(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
|
|
|
if (roleId > 3 || roleId == 0)
|
|
|
{
|
|
|
System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("右放卷强制下料");
|
|
|
ListBoxItemAdd(this.PlcLog, "右放卷强制下料触发成功");
|
|
|
LogHelperBusiness.LogInfo("右放卷强制下料触发");
|
|
|
plcBusiness.writePlc(appConfig.mqAddress.右放卷下料, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 强制下料清除绑定信息解除合卷报警
|
|
|
/// </summary>
|
|
|
/// <param name="position"></param>
|
|
|
private void ForcedUnloading(int position)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string logStr = Which(position);
|
|
|
ProShaftInfo shaftInfo = this.GetShaftInfoByPosition(position).Result;
|
|
|
if (shaftInfo != null)
|
|
|
{
|
|
|
shaftInfo.bindRfid = "";
|
|
|
shaftInfo.bindSfc = "";
|
|
|
shaftInfo.bindEaValue = "";
|
|
|
shaftInfo.bindTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
shaftInfoServices.Update(shaftInfo);
|
|
|
}
|
|
|
ListBoxItemAdd(this.PlcLog, logStr + "强制下料触发成功,解除合卷报警");
|
|
|
LogHelperBusiness.LogInfo(logStr + "强制下料触发成功,解除合卷报警");
|
|
|
plcBusiness.writeDoublePlc(appConfig.mqAddress.全局报警, 0);
|
|
|
}catch(Exception ex)
|
|
|
{
|
|
|
LogHelperBusiness.LogInfo("强制下料异常:"+ex.Message);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据设备位置获取卷轴信息
|
|
|
/// </summary>
|
|
|
/// <param name="position"></param>
|
|
|
/// <returns></returns>
|
|
|
private async Task<ProShaftInfo> GetShaftInfoByPosition(int position)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string str = appConfig.processId;
|
|
|
Expression<Func<ProShaftInfo, bool>> exp = s1 => true;
|
|
|
exp = exp.And(x => x.positionId == position.ToString() && x.processId == str);
|
|
|
List<ProShaftInfo> result = await shaftInfoServices.Query(exp);
|
|
|
|
|
|
if (result != null || result.Count > 0)
|
|
|
{
|
|
|
ProShaftInfo shaftInfo = result.FirstOrDefault();
|
|
|
return shaftInfo;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
LogHelperBusiness.LogInfo("获取绑定信息异常:"+ex.Message);
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
///判断当前是哪个轴
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
private string Which(int position)
|
|
|
{
|
|
|
string logStr = "";
|
|
|
if (appConfig.machineId == 3)
|
|
|
{
|
|
|
if (position == 3) logStr = "上收卷左";
|
|
|
if (position == 1) logStr = "上收卷右";
|
|
|
if (position == 4) logStr = "下收卷左";
|
|
|
if (position == 2) logStr = "下收卷右";
|
|
|
if (position == 5) logStr = "右放卷";
|
|
|
if (position == 6) logStr = "左放卷";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (position == 1) logStr = "上收卷左";
|
|
|
if (position == 3) logStr = "上收卷右";
|
|
|
if (position == 2) logStr = "下收卷左";
|
|
|
if (position == 4) logStr = "下收卷右";
|
|
|
if (position == 5) logStr = "左放卷";
|
|
|
if (position == 6) logStr = "右放卷";
|
|
|
}
|
|
|
return logStr;
|
|
|
}
|
|
|
}
|
|
|
}
|