You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
329 lines
12 KiB
C#
329 lines
12 KiB
C#
using Mesnac.Compressor.Entity;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Xml;
|
|
|
|
//using watchFile;
|
|
|
|
namespace Mesnac.Compressor.Unity
|
|
{
|
|
public class Common
|
|
{
|
|
#region 单例模式
|
|
private static Common _trayFactory;
|
|
|
|
private static readonly object sysany = new object();
|
|
public static Common Instance
|
|
{
|
|
get
|
|
{
|
|
if (_trayFactory == null)
|
|
{
|
|
lock(sysany)
|
|
{
|
|
_trayFactory = new Common();
|
|
}
|
|
}
|
|
return _trayFactory;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 读写器默认超时时间 5000毫秒 十六进制1388
|
|
/// </summary>
|
|
//public string ReadTimeOut = "1388";
|
|
#region 变量
|
|
public List<Station> StationList = new List<Station>();
|
|
|
|
public string ReadTimeOut = System.Configuration.ConfigurationManager.AppSettings["ReadTimeOut"];
|
|
//当前平板对应的工位名
|
|
public string WorkName = System.Configuration.ConfigurationManager.AppSettings["WorkName"];
|
|
//当前平板对应的机种切换写入PLC地址
|
|
public string MachinePlCAddress = System.Configuration.ConfigurationManager.AppSettings["MachinePlCAddress"];
|
|
|
|
public string ChangeMachineOK = System.Configuration.ConfigurationManager.AppSettings["ChangeMachineOK"];
|
|
|
|
public string CurrentMachineType = System.Configuration.ConfigurationManager.AppSettings["CurrentMachineType"];
|
|
|
|
//手动自动对应pLC的地址位
|
|
public string AutoFlagConfig = System.Configuration.ConfigurationManager.AppSettings["AutoFlagConfig"];
|
|
|
|
public bool AutoFlag = true;
|
|
/// <summary>
|
|
/// 手动还是自动模式
|
|
/// </summary>
|
|
public bool IsAuto = false;
|
|
|
|
#region 连接状态
|
|
//服务器连接状态
|
|
public bool ServerConnect = true;
|
|
|
|
//本地数据库连接状态
|
|
public bool LocalConnect = true;
|
|
|
|
/// <summary>
|
|
/// 读写器连接状态
|
|
/// </summary>
|
|
public bool SocketConnect = true;
|
|
|
|
/// <summary>
|
|
/// 条码枪连接状态
|
|
/// </summary>
|
|
public bool GunConnect = true;
|
|
|
|
/// <summary>
|
|
/// 是否连接本地数据库
|
|
/// </summary>
|
|
public bool ReadLocalDB = false;
|
|
#endregion
|
|
|
|
public EventHandler SerialReconnect;
|
|
|
|
public EventHandler SocketReconnect;
|
|
|
|
public DictionaryOperation<string> ScanCodeDic = new DictionaryOperation<string>();
|
|
#endregion
|
|
public void Init()
|
|
{
|
|
XmlRead();
|
|
//InitWatchFile();
|
|
}
|
|
|
|
//public void InitWatchFile()
|
|
//{
|
|
// Console.WriteLine(Common.Instance.WorkName+"WorkName");
|
|
// if (Common.Instance.WorkName.Trim().ToUpper() == "B2")
|
|
// {
|
|
// Console.WriteLine("B2开始监测");
|
|
// watchFileManager watch = new watchFileManager();
|
|
// watch.Start();
|
|
// }
|
|
//}
|
|
private void XmlRead()
|
|
{
|
|
try
|
|
{
|
|
XmlDocument xmlDoc = new XmlDocument();
|
|
xmlDoc.Load("Config.xml"); //加载xml文件
|
|
XmlNode xn = xmlDoc.SelectSingleNode("Setting/work");
|
|
XmlNodeList xnl = xn.ChildNodes;
|
|
foreach (XmlNode xnf in xnl)
|
|
{
|
|
XmlElement xe = (XmlElement)xnf;
|
|
XmlNodeList xnf1 = xe.ChildNodes;
|
|
Station station = new Station();
|
|
foreach (XmlNode xn2 in xnf1)
|
|
{
|
|
//Console.WriteLine(xn2.InnerText);//显示子节点点文本
|
|
XmlElement xmm = (XmlElement)xn2;
|
|
if (xmm.Name == "workName")
|
|
{
|
|
station.StationName = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "stationID")
|
|
{
|
|
station.stationID = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "Ant")
|
|
{
|
|
station.Ant = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "IP")
|
|
{
|
|
station.IP = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "StationType")
|
|
{
|
|
station.StationType = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "DbTableName")
|
|
{
|
|
station.DbTableName = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "PlcReadyAddress")
|
|
{
|
|
station.plcAdress.PlcReadyAddress = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "WorkedAlready")
|
|
{
|
|
station.plcAdress.WorkedAlready = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "NullLetGo")
|
|
{
|
|
station.plcAdress.NullLetGo = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "ReStart")
|
|
{
|
|
station.plcAdress.ReStart = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "Unbunding")
|
|
{
|
|
station.plcAdress.Unbunding = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "AlarmUnbuding")
|
|
{
|
|
station.plcAdress.AlarmUnbuding = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "BarcodeAdress")
|
|
{
|
|
station.plcAdress.BarcodeAdress = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "Writeaddress")
|
|
{
|
|
station.plcAdress.Writeaddress = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "PlcDataAdress")
|
|
{
|
|
station.plcAdress.PlcDataAdress = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "PlcDataQuantity")
|
|
{
|
|
station.plcAdress.PlcDataQuantity = Convert.ToInt32(xmm.InnerText);
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "BarcodeWriteAddress")
|
|
{
|
|
station.plcAdress.BarcodeWriteAddress = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "RestartGOAddress")
|
|
{
|
|
station.plcAdress.RestartGOAddress = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "PlcQuality")
|
|
{
|
|
station.plcAdress.PlcQuality = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "IsRestart")
|
|
{
|
|
station.IsRestart = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "RestartCom")
|
|
{
|
|
station.RestartCom = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "IsChangeLine")
|
|
{
|
|
station.IsChangeLine = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "ChangeLineCom")
|
|
{
|
|
station.ChangeLineCom = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "BarcodeScan")
|
|
{
|
|
station.BarcodeScan = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "EngravingCom")
|
|
{
|
|
station.EngravingCom = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "Engraving")
|
|
{
|
|
station.Engraving = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "BarcodeScanCom")
|
|
{
|
|
station.BarcodeScanCom = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "NGstation")
|
|
{
|
|
station.NGstation = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "FirstStation")
|
|
{
|
|
station.FirstStation = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "subStation")
|
|
{
|
|
station.subStation = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "ParentStationName")
|
|
{
|
|
station.ParentStationName = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "SubStattionName")
|
|
{
|
|
station.SubStattionName = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "SendToNext")
|
|
{
|
|
station.SendToNext = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "SendPath")
|
|
{
|
|
station.SendPath = xmm.InnerText;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "AllowMitiRFID")
|
|
{
|
|
|
|
station.AllowMitiRFID = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
else if (xmm.Name == "DeletePreRFID")
|
|
{
|
|
|
|
station.DeletePreRFID = Convert.ToInt32(xmm.InnerText) > 0;
|
|
continue;
|
|
}
|
|
}
|
|
//虚拟站没有读RFID
|
|
if (station.StationType.ToUpper() == "VartualStation".ToUpper())
|
|
{
|
|
DataFormat df = new DataFormat();
|
|
df.PrepareWork = true;
|
|
//测试用
|
|
df.HaveWorked = true;
|
|
//测试用
|
|
station.InsertQueue(df);
|
|
}
|
|
StationList.Add(station);
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
//初始化错误2017
|
|
Console.WriteLine(e.ToString());
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|