AHTC/RGD/RGD.WCS/CStaticClass.cs

955 lines
36 KiB
C#
Raw Normal View History

2025-05-19 09:22:33 +08:00
using RGD.Common;
using RGD.DataService;
using RGD.DBUtility;
using RGD.OPCClient;
using System;
namespace RGD.WCS
{
/// <summary>
/// Creator:rgd
/// <20><><EFBFBD><EFBFBD>ص<EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
/// </summary>
public static class CStaticClass
{
//public static string[] TestLaneCell = new string[3];
//public static int[] TestLane = new int[3];
//public static bool StopTestLane = false;
//public static bool TestOut = true;
//public static bool TestIn = true;
//public static int[] testWorkstation = new int[48];
//public static bool IfRemind = true;
//public static System.Windows.Forms.Form FormMonitor = null;
//public static int gcCount = 0;
//public static Dictionary<int, System.IO.Ports.SerialPort> serialports = new Dictionary<int, System.IO.Ports.SerialPort>();
/// <summary>
/// <20><>־<EFBFBD><D6BE>ϻ<EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>ʱ<EFBFBD><CAB1>
/// </summary>
public static string SaveDays = "30";//20110603
/// <summary>
/// CParsePLCData<74><61><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD> ʱ<><CAB1><EFBFBD><EFBFBD>ʶ
/// </summary>
public static DateTime routetime = DateTime.Now;
/// <summary>
/// CParsePLCData<74><61><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD> ʱ<><CAB1><EFBFBD><EFBFBD>ʶ
/// </summary>
public static DateTime reporttime = DateTime.Now;
public static Model.MDevice devinfo28;
public static Model.MDevice devinfo;
public static ISendDeviceOrder sdo;
public static IGetDeviceState gds;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private static string _userID;
/// <summary>
/// <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public static string UserID
{
get { return CStaticClass._userID; }
set { CStaticClass._userID = value; }
}
private static string _movedDeviceAheadTrigger = "1";
/// <summary>
/// <20>ƶ<EFBFBD><C6B6><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
/// </summary>
public static string MovedDeviceAheadTrigger
{
get { return CStaticClass._movedDeviceAheadTrigger; }
set
{
if ((value == "0") || (value == "1"))
{
CStaticClass._movedDeviceAheadTrigger = value;
}
else
{
CStaticClass._movedDeviceAheadTrigger = "1";
}
}
}
private static string _outDetectArrowIdleGoods = "1";
/// <summary>
/// <20>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public static string OutDetectArrowIdleGoods
{
get { return CStaticClass._outDetectArrowIdleGoods; }
set
{
if ((value == "0") || (value == "1"))
{
CStaticClass._outDetectArrowIdleGoods = value;
}
else
{
CStaticClass._outDetectArrowIdleGoods = "1";
}
}
}
private static string _deviceErrorAutoModifyRoutePath = "0";
/// <summary>
/// <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
/// </summary>
public static string DeviceErrorAutoModifyRoutePath
{
get { return CStaticClass._deviceErrorAutoModifyRoutePath; }
set
{
if ((value == "0") || (value == "1"))
{
CStaticClass._deviceErrorAutoModifyRoutePath = value;
}
else
{
CStaticClass._deviceErrorAutoModifyRoutePath = "0";
}
}
}
private static string _doubleForkWaitTime = "120";
/// <summary>
/// ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ʱ<EFBFBD>䵥λ<E4B5A5><CEBB><EFBFBD><EFBFBD><EBA3A9>Ĭ<EFBFBD><C4AC>120<32><30>
/// </summary>
public static string DoubleForkWaitTime
{
get { return CStaticClass._doubleForkWaitTime; }
set
{
if (Microsoft.VisualBasic.Information.IsNumeric(_doubleForkWaitTime) == true)
{
CStaticClass._doubleForkWaitTime = value;
}
else
{
CStaticClass._doubleForkWaitTime = "120";
}
}
}
private static string _agvAllowSingleFork = "0";
/// <summary>
/// AGV<47>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>˫<EFBFBD><CBAB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0
/// </summary>
public static string AGVAllowSingleFork
{
get { return CStaticClass._agvAllowSingleFork; }
set
{
if ((value == "0") || (value == "1"))
{
CStaticClass._agvAllowSingleFork = value;
}
else
{
CStaticClass._agvAllowSingleFork = "0";
}
}
}
private static bool _Order;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EEBFAA><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public static bool Order
{
get { return CStaticClass._Order; }
set { CStaticClass._Order = value; }
}
private static string _routeSearchMode = "0";
/// <summary>
/// ·<><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ:0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>ѡ<EFBFBD><D1A1><EFBFBD>̶<EFBFBD>·<EFBFBD>ߣ<EFBFBD>1<EFBFBD><31>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>Ľڵ<C4BD><DAB5><EFBFBD>Ϊ<EFBFBD><CEAA>ʼ<EFBFBD><EFBFBD><E3A3AC>ĩ<EFBFBD>˽ڵ<CBBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>Ľڵ<C4BD>
/// </summary>
public static string RouteSearchMode
{
get { return CStaticClass._routeSearchMode; }
set
{
if ((value == "0") || (value == "1"))
{
CStaticClass._routeSearchMode = value;
}
else
{
CStaticClass._routeSearchMode = "0";
}
}
}
private static int _MessageIndex;
/// <summary>
/// <20><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
/// </summary>
public static int MessageIndex
{
get { return CStaticClass._MessageIndex; }
set
{
if (value > 240)
{
value = 1;
}
CStaticClass._MessageIndex = value;
}
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region OPC<EFBFBD><EFBFBD><EFBFBD>س<EFBFBD>ʼ<EFBFBD><EFBFBD>
public static void ReConnect()
{
OPCClient.CCommonOPCClient.ConnectCount = 0;
}
#endregion OPC<EFBFBD><EFBFBD><EFBFBD>س<EFBFBD>ʼ<EFBFBD><EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private static string _manstatus = " F_Status<>-1 ";//Ĭ<>ϣ<EFBFBD><CFA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private static string _monstatus = " F_Status<>-1 ";//Ĭ<>ϣ<EFBFBD><CFA3><EFBFBD>ʾ<EFBFBD>豸ָ<E8B1B8><D6B8>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private static bool _realRefresh = true;
/// <summary>
/// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" F_Status<>-1 ";<3B>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>" F_Status=0 "<22><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>" F_Status=1 "<22><>
/// </summary>
public static string Manstatus
{
get { return CStaticClass._manstatus; }
set { CStaticClass._manstatus = value; }
}
/// <summary>
/// <20><>ʾ<EFBFBD>豸ָ<E8B1B8><D6B8>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" F_Status<>-1 ";<3B>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>" F_Status=0 "<22><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>" F_Status=1 "<22><>
/// </summary>
public static string Monstatus
{
get { return CStaticClass._monstatus; }
set { CStaticClass._monstatus = value; }
}
/// <summary>
/// <20>Ƿ<EFBFBD>ʵʱˢ<CAB1>¼<EFBFBD><C2BC>غ͵<D8BA><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
/// </summary>
public static bool RealRefresh
{
get { return CStaticClass._realRefresh; }
set { CStaticClass._realRefresh = value; }
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region OPC<EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD>--<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
public static int[] AllReturns;
public static bool GetAllReturnFlag = false;
/// <summary>
/// ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD> <20><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
/// </summary>
public static void GetAllReturns()
{
try
{
GetAllReturnFlag = true;
if (devinfo28.DeviceIndex == 11001)
{
return;
}
gds = CommModeCreate.CreateGetDeviceState(devinfo28.DeviceIndex);
AllReturns = gds.GetDeviceState(devinfo28.DeviceIndex);
//AllReturns = new int[100] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
if (AllReturns == null)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(<><C8A1><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + gds.CommLayerError) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", <><C8A1><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + gds.CommLayerError, true);
}
}
//Thread.Sleep(500);//̽<><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŴ<C5BA>λ
//LogUtil.WriteLog("", "ִ<><D6B4>GetAllReturns<6E><73>"+ AllReturns.Length);
GetAllReturnFlag = false;
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(<><C8A1><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", <><C8A1><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message, true);
}
return;
}
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
/// </summary>
/// <param name="deviceIdx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static int GetOverlapStatus(int deviceIdx)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
devinfo = BaseDeviceService.GetDeviceInfo(deviceIdx);
int temp = devinfo.Dbw2Address - devinfo28.Dbw2Address;
int flag = CStaticClass.AllReturns[temp];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־
int sendouttype = CStaticClass.AllReturns[temp + 1];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBFAA><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// return 3; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (flag == 0 || sendouttype < 3)// || boxnumber == 0)
{
return 0;
}
else
{
return sendouttype;
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
}
else
{
return 0;
}
}
else
{
return 0;
}
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", <>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message, true);
}
return 0;
}
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӧ<><D3A6><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD>
/// </summary>
/// <param name="deviceIdx"></param>
/// <returns></returns>
public static int GetboxNum(int deviceIdx)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
devinfo = BaseDeviceService.GetDeviceInfo(deviceIdx);
int temp = devinfo.Dbw2Address - devinfo28.Dbw2Address;
int boxNum = (CStaticClass.AllReturns[temp + 4] << 8) + CStaticClass.AllReturns[temp + 5];
return boxNum;
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
return 0;
}
}
else
{
return 0;
}
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", <>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message, true);
}
return 0;
}
}
/// <summary>
/// <20><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="deviceIdx"></param>
/// <returns></returns>
public static int Gettaskno(int deviceIdx)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
devinfo = BaseDeviceService.GetDeviceInfo(deviceIdx);
int temp = devinfo.Dbw2Address - devinfo28.Dbw2Address;
int taskno = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];
return taskno;
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
return 0;
}
}
else
{
return 0;
}
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", <>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message, true);
}
return 0;
}
}
/// <summary>
/// <20><>ȡɨ<C8A1><C9A8>ͷ <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ӿ<EFBFBD>ǰ
/// </summary>
/// <param name="deviceIdx"></param>
/// <returns></returns>
public static int GetScannerStatus(int deviceIdx)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
devinfo = BaseDeviceService.GetDeviceInfo(deviceIdx);
int temp = devinfo.Dbw2Address - devinfo28.Dbw2Address;
int flag = CStaticClass.AllReturns[temp];//ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־
return flag;
#endregion ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
return 0;
}
}
else
{
return 0;
}
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(<><C8A1>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", <><C8A1>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message, true);
}
return 0;
}
}
/// <summary>
/// <20><>ȡɨ<C8A1><C9A8>ͷ <20><><EFBFBD><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="deviceIdx"></param>
/// <returns></returns>
public static string GetStringData(int deviceIdx)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
devinfo = BaseDeviceService.GetDeviceInfo(deviceIdx);
if (devinfo.Dbw2Address != -1)
{
int temp = devinfo.Dbw2Address - devinfo28.Dbw2Address;
decimal glen = devinfo.Dbw2Getlength;
string strdata = "";
string headstr = CStaticClass.AllReturns[temp].ToString();
if (headstr != "2") return null;
switch (devinfo.DeviceKind.ToString())
{
#region <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
case "7"://<2F><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD>
for (int i = 1; i <= 12; i++)//20110401
{
strdata += Convert.ToChar(CStaticClass.AllReturns[temp + i + 1]);
if (strdata == "?")
{
return "";
}
}
strdata = strdata.ToUpper();
CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), strdata);
break;
#endregion <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
return strdata;
}
else
{
return null;
}
}
else
{
return null;
}
}
else
{
return null;
}
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("CStaticClassȡ<73><C8A1><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣʱ<CFA2><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "CStaticClassȡ<73><C8A1><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣʱ<CFA2><CAB1>" + ex.Message, true);
}
return null;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD>ʶ <20><>ȡij<C8A1><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="devicePhotoelectricBit"></param>
/// <returns></returns>
public static int GetDevicePhotoelectric(string devicePhotoelectricBit)
{
try
{
if (devinfo28.DeviceKind != 28)
{
return -1;
}
if (CStaticClass.AllReturns == null)
{
return -1;
}
#region <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
char[] dd = new char[1] { '.' };
string[] DS = devicePhotoelectricBit.Split(dd);
int deviceIdx = 0; int devbit = 0;
int.TryParse(DS[0], out deviceIdx);
int.TryParse(DS[1], out devbit);
devinfo = BaseDeviceService.GetDeviceInfo(deviceIdx);
if (devinfo == null)
{
return -1;
}
int glen = 0;
int IfVis = 0;
if (devinfo.SplitByte != -1)
{
int temp = devinfo.SplitByte - devinfo28.Dbw2Address;
temp += devbit / 8;
glen = devbit % 8;
if (temp >= 0)
{
IfVis = CCarryConvert.GetBitFromInteger(CStaticClass.AllReturns[temp], glen);
return IfVis;
}
else
{
return -1;
}
}
else
{
return -1;
}
#endregion <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(<><C8A1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", <><C8A1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message, true);
}
return -1;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>bitλ<74><CEBB>ȡ<EFBFBD><C8A1>F_SplitByte<74><65><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>bitֵ<74><D6B5>0,1
/// </summary>
/// <param name="deviceIdx"></param>
/// <param name="bit"></param>
/// <returns></returns>
public static int GetDevicePhotoelectric(int deviceIdx, int abit)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
devinfo = BaseDeviceService.GetDeviceInfo(deviceIdx);
int glen = 0;
int IfVis = 0;
if (devinfo.SplitByte != -1)
{
int temp = devinfo.SplitByte - devinfo28.Dbw2Address;
if (abit > 7)
{
glen = abit - 8;
temp = temp + 1;
}
else
{
glen = abit;
}
if (temp >= 0)
{
IfVis = CCarryConvert.GetBitFromInteger(CStaticClass.AllReturns[temp], glen);
//if (dvle[0]["F_DeviceKindIndex"].ToString() == "18")
//{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BFAA>0<EFBFBD><30>̽<EFBFBD>1<EFA3AC><31>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD>
// if (IfVis == 1)
// {
// IfVis = 0;
// }
// else
// {
// IfVis = 1;
// }
//}
return IfVis;
}
else
{
return -1;
}
}
else
{
return -1;
}
#endregion <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
}
else
{
return -1;
}
}
else
{
return -1;
}
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(<><C8A1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", <><C8A1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ź<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message, true);
}
return -1;
}
}
/// <summary>
/// ȡ<><C8A1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸״̬:[0]<5D><>д<EFBFBD><D0B4>־;[1]״̬;[2]<5D><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>[3]X<><58><EFBFBD><EFBFBD>;[4]Y<><59><EFBFBD><EFBFBD>;[5]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/// </summary>
/// <param name="deviceIdx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static int[] GetDeviceState(int deviceIdx)
{
int[] states = new int[6];
//string headstr;
string[] wv = new string[1] { "2" };
string[] witemnames;
try
{
if (devinfo28.DeviceKind == 28)//<2F><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD>ȡ<EFBFBD>״̬
devinfo = BaseDeviceService.GetDeviceInfo(deviceIdx);
if (devinfo.Dbw2Address != -1)
{
int temp = devinfo.Dbw2Address - devinfo28.Dbw2Address;
decimal glen = devinfo.Dbw2Getlength;
states = new int[6];
wv = new string[1] { "2" };
witemnames = new string[1] { "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 0)) };
sdo = CommModeCreate.CreateSendDeviceOrder(deviceIdx);
switch (devinfo.DeviceKind.ToString())
{
#region
case "1":
#region <EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = CStaticClass.AllReturns[temp + 7] + (CStaticClass.AllReturns[temp + 6] << 8) + (CStaticClass.AllReturns[temp + 5] << 16) + (CStaticClass.AllReturns[temp + 4] << 32);//X<><58><EFBFBD><EFBFBD>
states[4] = CStaticClass.AllReturns[temp + 11] + (CStaticClass.AllReturns[temp + 10] << 8) + (CStaticClass.AllReturns[temp + 9] << 16) + (CStaticClass.AllReturns[temp + 8] << 32);//Y<><59><EFBFBD><EFBFBD>
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (IsEquals(devinfo.ReturnMessage, states, 3) == false)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ڴ治һ<E6B2BB><D2BB> <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
{
devinfo.ReturnMessage = states;
BaseDeviceService.SetDeviceMessage(devinfo);
DbHelperSQL.Query("update t_base_device set f_currentlocation='" + states[3] + "," + states[4] + "' where f_deviceindex=" + deviceIdx);
string sss = "";
for (int j = 0; j <= 5; j++)
{
sss += "**" + states[j].ToString();
}
CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), sss);
}
break;
#endregion <EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>
case "2":
#region <EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = 0;
states[4] = 0;
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
{
devinfo.ReturnMessage = states;
BaseDeviceService.SetDeviceMessage(devinfo);
string sss = "";
for (int j = 0; j <= 5; j++)
{
sss += "**" + states[j].ToString();
}
CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), sss);
}
break;
#endregion <EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
case "34":
#region AGV
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = 0;
states[4] = 0;
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
{
devinfo.ReturnMessage = states;
BaseDeviceService.SetDeviceMessage(devinfo);
string sss = "";
for (int j = 0; j <= 5; j++)
{
sss += "**" + states[j].ToString();
}
CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), sss);
}
break;
#endregion AGV
case "5":
#region <EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>̻<EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = 0;
states[3] = 0;
states[4] = 0;
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
{
devinfo.ReturnMessage = states;
BaseDeviceService.SetDeviceMessage(devinfo);
string sss = "";
for (int j = 0; j <= 5; j++)
{
sss += "**" + states[j].ToString();
}
CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), sss);
}
break;
#endregion <EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>̻<EFBFBD>
case "32":
#region <EFBFBD><EFBFBD>ѡģ<EFBFBD><EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = CStaticClass.AllReturns[temp + 4]; ;//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
states[4] = 0;
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
{
devinfo.ReturnMessage = states;
BaseDeviceService.SetDeviceMessage(devinfo);
string sss = "";
for (int j = 0; j <= 5; j++)
{
sss += "**" + states[j].ToString();
}
CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), sss);
}
break;
#endregion <EFBFBD><EFBFBD>ѡģ<EFBFBD><EFBFBD>
case "33":
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = CStaticClass.AllReturns[temp + 5];//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
states[4] = (CStaticClass.AllReturns[temp + 6] << 8) + CStaticClass.AllReturns[temp + 7];
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
{
devinfo.ReturnMessage = states;
BaseDeviceService.SetDeviceMessage(devinfo);
string sss = "";
for (int j = 0; j <= 5; j++)
{
sss += "**" + states[j].ToString();
}
CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), sss);
}
break;
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion <EFBFBD><EFBFBD>ȡ<EFBFBD>״̬
}
return states;
}
else
{
return null;
}
#endregion OPC<EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD>--<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
}
else
{
return null;
}
}
else
{
return null;
}
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("CStaticClassȡ<73><C8A1>ָ<EFBFBD><D6B8><EFBFBD>豸״̬ʱ<CCAC><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "CStaticClassȡ<73><C8A1>ָ<EFBFBD><D6B8><EFBFBD>豸״̬ʱ<CCAC><CAB1>" + ex.Message, true);
}
return null;
}
finally
{
states = null;
wv = null;
witemnames = null;
}
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <summary>
/// <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һά<D2BB><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
/// </summary>
/// <param name="array1">ֵ<><D6B5>һά<D2BB><CEAC><EFBFBD><EFBFBD>1</param>
/// <param name="array2">ֵ<><D6B5>һά<D2BB><CEAC><EFBFBD><EFBFBD>2</param>
/// <returns><3E>ȽϽ<C8BD><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false</returns>
public static bool IsEquals(Array array1, Array array2, int arraylength)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>arraylength
//<2F>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>һ<EFBFBD><D2BB>
if ((array1 == null) || (array2 == null)) return false;
if (!Object.ReferenceEquals(array1.GetType(), array2.GetType()))
{
return false;
}
//<2F>Ƚϳ<C8BD><CFB3><EFBFBD><EFBFBD>Ƿ<EFBFBD>һ<EFBFBD><D2BB>
if (array1.GetLength(0) != array2.GetLength(0))
{
return false;
}
//<2F>Ƚϳ<C8BD>Ա<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
ValueType v1, v2;
for (int i = 0; i < arraylength; i++)
{
v1 = (ValueType)array1.GetValue(i);
v2 = (ValueType)array2.GetValue(i);
if (!v1.Equals(v2))
{
return false;
}
}
return true;
}
#endregion
}
}