You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1692 lines
76 KiB
1692 lines
76 KiB
3 months ago
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Text;
|
||
|
using System.Data;
|
||
|
using ICommLayer;
|
||
|
using CommLayerFactory;
|
||
|
using DBFactory;
|
||
|
using CommonLib;
|
||
|
namespace WcfControlMonitorLib
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// Creator:Richard.liu
|
||
|
///
|
||
|
/// ����ص�ȫ�ֱ����Ķ���
|
||
|
/// </summary>
|
||
|
public static class CStaticClass
|
||
|
{
|
||
|
public static event CDataSourceChangeEventHandler DataChange;
|
||
|
public static void OnDataChange(object sender,CDataChangeEventArgs e)
|
||
|
{
|
||
|
if (DataChange != null)
|
||
|
{
|
||
|
DataChange(sender , e);
|
||
|
}
|
||
|
}
|
||
|
public static event RefreshMonitorEventHandler RefreshMonitor;
|
||
|
public static void OnRefreshMonitor(RefreshMonitorEventArgs e)
|
||
|
{
|
||
|
if (RefreshMonitor != null)
|
||
|
{
|
||
|
RefreshMonitor(e);
|
||
|
}
|
||
|
}
|
||
|
static StringBuilder sss = new StringBuilder();
|
||
|
static StringBuilder[] wv = {new StringBuilder("2") };
|
||
|
static StringBuilder[] witemnames ={ new StringBuilder("") };
|
||
|
static char[] dd = new char[1] { '.' };//20101124
|
||
|
static string[] sp;//20101124
|
||
|
|
||
|
static string _userID;
|
||
|
|
||
|
/// <summary>
|
||
|
/// �û�����
|
||
|
/// </summary>
|
||
|
|
||
|
public static string UserID
|
||
|
{
|
||
|
get { return CStaticClass._userID; }
|
||
|
set { CStaticClass._userID = value; }
|
||
|
}
|
||
|
|
||
|
|
||
|
static int _MessageIndex;
|
||
|
static bool _Order;//
|
||
|
static bool _ObtainManageTask;//
|
||
|
static bool _autoOrder;
|
||
|
static bool _handOrder;
|
||
|
static bool _tempOrder;
|
||
|
static ISendDeviceOrder sdo;
|
||
|
|
||
|
//20091102
|
||
|
public static int gcCount = 0;
|
||
|
//20091107
|
||
|
|
||
|
static string _movedDeviceAheadTrigger = "1";
|
||
|
/// <summary>
|
||
|
/// �ƶ��豸�Ƿ�����ǰ������ȡ
|
||
|
/// </summary>
|
||
|
public static string MovedDeviceAheadTrigger
|
||
|
{
|
||
|
get { return CStaticClass._movedDeviceAheadTrigger; }
|
||
|
set
|
||
|
{
|
||
|
if ((value == "0") || (value == "1"))
|
||
|
{
|
||
|
CStaticClass._movedDeviceAheadTrigger = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._movedDeviceAheadTrigger = "1";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static string _outDetectArrowIdleGoods = "1";
|
||
|
/// <summary>
|
||
|
/// �Ѷ��������Ƿ�����Ŀ�����ͻ����к�����
|
||
|
/// </summary>
|
||
|
public static string OutDetectArrowIdleGoods
|
||
|
{
|
||
|
get { return CStaticClass._outDetectArrowIdleGoods; }
|
||
|
set
|
||
|
{
|
||
|
if ((value == "0") || (value == "1"))
|
||
|
{
|
||
|
CStaticClass._outDetectArrowIdleGoods = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._outDetectArrowIdleGoods = "1";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static string _deviceErrorAutoModifyRoutePath = "0";
|
||
|
/// <summary>
|
||
|
/// �豸���������Զ�����·��
|
||
|
/// </summary>
|
||
|
public static string DeviceErrorAutoModifyRoutePath
|
||
|
{
|
||
|
get { return CStaticClass._deviceErrorAutoModifyRoutePath; }
|
||
|
set
|
||
|
{
|
||
|
if ((value == "0") || (value == "1"))
|
||
|
{
|
||
|
CStaticClass._deviceErrorAutoModifyRoutePath = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._deviceErrorAutoModifyRoutePath = "0";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static string _doubleForkWaitTime = "120";
|
||
|
/// <summary>
|
||
|
/// ���������������������ȴ���ʱ�䵥λ���룩��Ĭ��120��
|
||
|
/// </summary>
|
||
|
public static string DoubleForkWaitTime
|
||
|
{
|
||
|
|
||
|
get { return CStaticClass._doubleForkWaitTime; }
|
||
|
set
|
||
|
{int aa;
|
||
|
if (int.TryParse(_doubleForkWaitTime,out aa)==true )
|
||
|
{
|
||
|
|
||
|
CStaticClass._doubleForkWaitTime = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._doubleForkWaitTime = "120";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
static string _transportTimeout = "5";
|
||
|
/// <summary>
|
||
|
/// ���ͳ�ʱ��������ʱ�䵥λ���֣���Ĭ��5����//20110608
|
||
|
/// </summary>
|
||
|
public static string TransportTimeout
|
||
|
{
|
||
|
get { return CStaticClass._transportTimeout; }
|
||
|
set
|
||
|
{
|
||
|
int aa;
|
||
|
if (int.TryParse(_transportTimeout,out aa) == true)
|
||
|
{
|
||
|
|
||
|
CStaticClass._transportTimeout = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._transportTimeout = "5";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
static string _agvAllowSingleFork = "1";
|
||
|
/// <summary>
|
||
|
/// AGV�Ƿ��������涯������Ĭ���������涯�� 1
|
||
|
/// </summary>
|
||
|
public static string AGVAllowSingleFork
|
||
|
{
|
||
|
get { return CStaticClass._agvAllowSingleFork; }
|
||
|
set
|
||
|
{
|
||
|
if ((value == "0") || (value == "1"))
|
||
|
{
|
||
|
CStaticClass._agvAllowSingleFork = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._agvAllowSingleFork = "0";
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
static string _stockCodeCheck = "^[B|D|G|P][A-Z][0-9]{4}$";
|
||
|
/// <summary>
|
||
|
/// ������ʽ����
|
||
|
/// </summary>
|
||
|
public static string StockCodeCheck
|
||
|
{
|
||
|
|
||
|
get { return CStaticClass._stockCodeCheck; }
|
||
|
set
|
||
|
{
|
||
|
int aa;
|
||
|
if (int.TryParse(_stockCodeCheck, out aa) == true)
|
||
|
{
|
||
|
|
||
|
CStaticClass._stockCodeCheck = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._stockCodeCheck = "^[B|D|G|P][A-Z][0-9]{4}$";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static string _HCA12068 = "6";
|
||
|
|
||
|
public static string HCA12068
|
||
|
{
|
||
|
get { return CStaticClass._HCA12068; }
|
||
|
set
|
||
|
{
|
||
|
int aa;
|
||
|
if (int.TryParse(value, out aa) == true)
|
||
|
{
|
||
|
|
||
|
CStaticClass._HCA12068 = value;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static string _WeightError = "10";
|
||
|
|
||
|
public static string WeightError
|
||
|
{
|
||
|
get { return CStaticClass._WeightError; }
|
||
|
set { CStaticClass._WeightError = value; }
|
||
|
}
|
||
|
|
||
|
static string _HCB12019 = "4";
|
||
|
|
||
|
public static string HCB12019
|
||
|
{
|
||
|
get { return CStaticClass._HCB12019; }
|
||
|
|
||
|
set
|
||
|
{
|
||
|
int aa;
|
||
|
if (int.TryParse(value, out aa) == true)
|
||
|
{
|
||
|
|
||
|
CStaticClass._HCB12019 = value;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
static string _HCB12034 = "3";
|
||
|
|
||
|
public static string HCB12034
|
||
|
{
|
||
|
get { return CStaticClass._HCB12034; }
|
||
|
set
|
||
|
{
|
||
|
int aa;
|
||
|
if (int.TryParse(value, out aa) == true)
|
||
|
{
|
||
|
CStaticClass._HCB12034 = value;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
static string _HCBLanewayOutDB = "2";
|
||
|
|
||
|
public static string HCBLanewayOutDB
|
||
|
{
|
||
|
get { return CStaticClass._HCBLanewayOutDB; }
|
||
|
set
|
||
|
{
|
||
|
int aa;
|
||
|
if (int.TryParse(value, out aa) == true)
|
||
|
{
|
||
|
CStaticClass._HCBLanewayOutDB = value;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static string _Automatic = "0";
|
||
|
/// <summary>
|
||
|
/// �Ƿ��Զ���ȡ����
|
||
|
/// </summary>
|
||
|
public static string Automatic
|
||
|
{
|
||
|
get { return CStaticClass._Automatic; }
|
||
|
set
|
||
|
{
|
||
|
int aa;
|
||
|
if (int.TryParse(value, out aa) == true)
|
||
|
{
|
||
|
CStaticClass._Automatic = value;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
//20100108
|
||
|
|
||
|
/// <summary>
|
||
|
/// ����ͷ������IP
|
||
|
/// </summary>
|
||
|
public static string CameraIP = "1";
|
||
|
/// <summary>
|
||
|
/// ��½����ͷ���������û���ʶ
|
||
|
/// </summary>
|
||
|
public static string CameraUsername = "1";
|
||
|
/// <summary>
|
||
|
/// ��½����ͷ������������
|
||
|
/// </summary>
|
||
|
public static string CameraPassword = "1";
|
||
|
public static bool IfRemind = false;
|
||
|
|
||
|
public static DateTime routetime=DateTime.Now;
|
||
|
|
||
|
public static DBOperator dbo =CommonClassLib.AppSettings.dbo; //20130510
|
||
|
//public static DBOperator dbo1 = CommonClassLib.AppSettings.dbo1; //20130510
|
||
|
public static DBOperator dboM = CommonClassLib.AppSettings.dboM; //20130510
|
||
|
|
||
|
static bool _deviceInit;
|
||
|
static string _routeSearchMode="0";
|
||
|
static bool _realRefresh=true;
|
||
|
public static Model.MDevice devinfo28;
|
||
|
//20100609
|
||
|
public static Dictionary<int, System.IO.Ports.SerialPort> serialports=new Dictionary<int,System.IO.Ports.SerialPort>();
|
||
|
|
||
|
static Model.MDevice devinfo;
|
||
|
static string _manstatus = " F_Status<>-1 ";//Ĭ�ϣ���ʾ��������ȫ������
|
||
|
static string _monstatus = " F_Status<>-1 ";//Ĭ�ϣ���ʾ�豸ָ��ȫ������
|
||
|
|
||
|
static StringBuilder manZWhere = new StringBuilder();
|
||
|
/// <summary>
|
||
|
/// ��ȡ���������ţ�Z����between����OR��ϵ
|
||
|
/// </summary>
|
||
|
public static StringBuilder ManZWhere
|
||
|
{
|
||
|
get { return CStaticClass.manZWhere; }
|
||
|
set {
|
||
|
CStaticClass.manZWhere = value;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//20100607�������ݿ������ʼ��
|
||
|
|
||
|
static string _manDBFactory = dboM.GetValue("ManDBFactory");
|
||
|
/// <summary>
|
||
|
/// ����ϵͳ�����ݿ����SQLServerDBFactory��OracleDBFactory��OleDBFactory
|
||
|
/// </summary>
|
||
|
public static string ManDBFactory
|
||
|
{
|
||
|
get { return CStaticClass._manDBFactory; }
|
||
|
set
|
||
|
{
|
||
|
if ((value == "SQLServerDBFactory") || (value == "OracleDBFactory") || (value == "OleDBFactory"))
|
||
|
{
|
||
|
|
||
|
CStaticClass._manDBFactory = value;
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._manDBFactory = "SQLServerDBFactory";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static string _DBFactory = dbo.GetValue("DBFactory");//20151120����ϵͳ���ݿ��
|
||
|
/// <summary>
|
||
|
/// ����ϵͳ���ݿ����SQLServerDBFactory��OracleDBFactory��OleDBFactory
|
||
|
/// </summary>
|
||
|
public static string DBFactory
|
||
|
{//20151120����ϵͳ���ݿ��
|
||
|
get { return CStaticClass._DBFactory; }
|
||
|
set
|
||
|
{
|
||
|
if ((value == "SQLServerDBFactory") || (value == "OracleDBFactory") || (value == "OleDBFactory"))
|
||
|
{
|
||
|
|
||
|
CStaticClass._DBFactory = value;
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._DBFactory = "SQLServerDBFactory";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/// <summary>
|
||
|
/// ��ʾ��������ȫ������" F_Status<>-1 ";�ȴ�����" F_Status=0 "�����ж���" F_Status=1 "��
|
||
|
/// </summary>
|
||
|
public static string Manstatus
|
||
|
{
|
||
|
get { return CStaticClass._manstatus; }
|
||
|
set { CStaticClass._manstatus = value; }
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// ��ʾ�豸ָ��ȫ������" F_Status<>-1 ";�ȴ�����" F_Status=0 "�����ж���" F_Status=1 "��
|
||
|
/// </summary>
|
||
|
public static string Monstatus
|
||
|
{
|
||
|
get { return CStaticClass._monstatus; }
|
||
|
set { CStaticClass._monstatus = value; }
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// �Ƿ�ʵʱˢ�¼��غ͵��������б�
|
||
|
/// </summary>
|
||
|
public static bool RealRefresh
|
||
|
{
|
||
|
get { return CStaticClass._realRefresh; }
|
||
|
set { CStaticClass._realRefresh = value; }
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// ·��������ʽ:0����������·��ѡ���̶�·�ߣ�1��ÿ�����ڹ����Ľڵ���Ϊ��ʼ�㣬��ĩ�˽ڵ�����������һ������·���Ľڵ�
|
||
|
/// </summary>
|
||
|
public static string RouteSearchMode
|
||
|
{
|
||
|
get { return CStaticClass._routeSearchMode; }
|
||
|
set {
|
||
|
if ((value == "0") || (value == "1"))
|
||
|
{
|
||
|
CStaticClass._routeSearchMode = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CStaticClass._routeSearchMode = "0";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// ִ���Զ������
|
||
|
/// </summary>
|
||
|
public static bool AutoOrder
|
||
|
{
|
||
|
get { return CStaticClass._autoOrder; }
|
||
|
set { CStaticClass._autoOrder = value; }
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// ִ���ֹ������
|
||
|
/// </summary>
|
||
|
public static bool HandOrder
|
||
|
{
|
||
|
get { return CStaticClass._handOrder; }
|
||
|
set { CStaticClass._handOrder = value; }
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// ִ����ʱ���������
|
||
|
/// </summary>
|
||
|
public static bool TempOrder
|
||
|
{
|
||
|
get { return CStaticClass._tempOrder; }
|
||
|
set { CStaticClass._tempOrder = value; }
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// ���ط�����Ϣ����
|
||
|
/// </summary>
|
||
|
public static int MessageIndex
|
||
|
{
|
||
|
get { return CStaticClass._MessageIndex; }
|
||
|
set
|
||
|
{
|
||
|
if (value > 240)
|
||
|
{
|
||
|
value = 1;
|
||
|
}
|
||
|
|
||
|
CStaticClass._MessageIndex = value;
|
||
|
}
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// ������Ƿ�����
|
||
|
/// </summary>
|
||
|
public static bool Order
|
||
|
{
|
||
|
get { return CStaticClass._Order; }
|
||
|
set { CStaticClass._Order = value; }
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// �Ƿ���ȡ��������
|
||
|
/// </summary>
|
||
|
public static bool ObtainManageTask
|
||
|
{
|
||
|
get { return _ObtainManageTask; }
|
||
|
set { _ObtainManageTask = value; }
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// �Ƿ�ִ���豸��ʼ������
|
||
|
/// </summary>
|
||
|
public static bool DeviceInit
|
||
|
{
|
||
|
get { return CStaticClass._deviceInit; }
|
||
|
set { CStaticClass._deviceInit = value; }
|
||
|
}
|
||
|
|
||
|
public static void ReConnect()
|
||
|
{
|
||
|
//20100127
|
||
|
//SimensProdave6.CSimensProdave6_S7.InitCount = 0;
|
||
|
SocketsTCPIP.CClientTCPIP.TcpIPInitCount =new Dictionary<string,int>();
|
||
|
|
||
|
OPCClient.CCommonOPCClient.ConnectCount = new Dictionary<string, int>();
|
||
|
}
|
||
|
static StringBuilder sql = new StringBuilder();
|
||
|
public static int[] DeviceStateAllReturns;
|
||
|
public static string GetDeviceReadSubscription(int deviceindex)
|
||
|
{//20110216
|
||
|
//object lockthis = new object();
|
||
|
//lock (lockthis)
|
||
|
{
|
||
|
DataView dv = dbo.ExceSQL(string.Format("SELECT F_ReadSubscription FROM T_Base_Device WHERE (F_DeviceIndex = {0})",deviceindex)).Tables[0].DefaultView;
|
||
|
if (dv.Count > 0)
|
||
|
{
|
||
|
return dv[0]["F_ReadSubscription"].ToString();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// 20110216֧�ֶ���S7Connnection��̬OPC
|
||
|
/// </summary>
|
||
|
public static Dictionary <string,int[]> MutiReadSubscriptionDeviceStateReturns=new Dictionary<string,int[]>();
|
||
|
public static Dictionary<string, int[]> MutiReadSubscriptionDeviceSplitReturns = new Dictionary<string, int[]>();
|
||
|
/// <summary>
|
||
|
/// ȡ�����й��翪�ص��ź�
|
||
|
/// </summary>
|
||
|
//public static void GetAllReturns()
|
||
|
//{//20110216
|
||
|
|
||
|
// try
|
||
|
// {
|
||
|
// DataView dv = dbo.ExceSQL("SELECT F_DeviceIndex,F_S7Connection FROM T_Base_Device WHERE (F_DeviceKindIndex = 28)").Tables[0].DefaultView;
|
||
|
// if (dv.Count > 0)
|
||
|
// {
|
||
|
// for (int i = 0; i < dv.Count; i++)
|
||
|
// {
|
||
|
// gds = CommModeCreate.CreateGetDeviceState(Convert.ToInt32(dv[i]["F_DeviceIndex"]));
|
||
|
// MutiS7ConnReturns[dv[i]["F_S7Connection"].ToString()] = gds.GetDeviceState(Convert.ToInt32(dv[i]["F_DeviceIndex"]), 0);
|
||
|
// if (gds.CommLayerError != null)
|
||
|
// {
|
||
|
// RefreshMonitorEventArgs rea = new RefreshMonitorEventArgs("tsStatus", "ȡ�����й��翪�ص��ź�ʱ��" + gds.CommLayerError);
|
||
|
// OnRefreshMonitor(rea);
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// MutiS7ConnReturns = null;
|
||
|
|
||
|
// }
|
||
|
// }
|
||
|
// catch (Exception ex)
|
||
|
// {
|
||
|
// RefreshMonitorEventArgs rea = new RefreshMonitorEventArgs("tsStatus", "ȡ�����й��翪�ص��ź�ʱ��" + ex.Message);
|
||
|
// OnRefreshMonitor(rea);
|
||
|
|
||
|
// return;
|
||
|
// }
|
||
|
//}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 20101118�����豸�ź�bitλ��ȡ��F_SplitByte���Ĺ���bitֵ��0,1
|
||
|
/// </summary>
|
||
|
/// <param name="deviceIdx"></param>
|
||
|
/// <param name="bit"></param>
|
||
|
/// <returns></returns>
|
||
|
public static int GetDevicePhotoelectric(int deviceIdx,int abit)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
devinfo =Model.CGetInfo.GetDeviceInfo(deviceIdx);
|
||
|
if (devinfo != null)
|
||
|
{
|
||
|
switch (abit)
|
||
|
{
|
||
|
case 0:
|
||
|
return devinfo.SplitByte_0;
|
||
|
case 1:
|
||
|
return devinfo.SplitByte_1;
|
||
|
case 2:
|
||
|
return devinfo.SplitByte_2;
|
||
|
case 3:
|
||
|
return devinfo.SplitByte_3;
|
||
|
case 4:
|
||
|
return devinfo.SplitByte_4;
|
||
|
case 5:
|
||
|
return devinfo.SplitByte_5;
|
||
|
case 6:
|
||
|
return devinfo.SplitByte_6;
|
||
|
case 7:
|
||
|
return devinfo.SplitByte_7;
|
||
|
}
|
||
|
return -9999;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return -9999;
|
||
|
}
|
||
|
|
||
|
#region �ɰ�����
|
||
|
|
||
|
////20110216
|
||
|
//DeviceStateAllReturns = CStaticClass.MutiReadSubscriptionDeviceSplitReturns[GetDeviceReadSubscription(deviceIdx)];
|
||
|
//if (DeviceStateAllReturns != null)
|
||
|
//{
|
||
|
// #region ��ȡ��������ֵ
|
||
|
|
||
|
// devinfo = Model.CGetInfo.GetDeviceInfo(deviceIdx);
|
||
|
|
||
|
// int glen = 0;
|
||
|
// int IfVis = 0;
|
||
|
// if (devinfo.SplitByte != -1)
|
||
|
// {
|
||
|
// //20110216
|
||
|
// devinfo28 = Model.CGeneralFunction.GetDeviceReadSubscriptionDB2Data(new StringBuilder(devinfo.ReadSubscription));
|
||
|
// int temp = devinfo.SplitByte - devinfo28.SplitByte;
|
||
|
// if (abit > 7)
|
||
|
// {
|
||
|
// glen = abit - 8;
|
||
|
// temp = temp + 1;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// glen = abit;
|
||
|
// }
|
||
|
// if (temp >= 0)
|
||
|
// {
|
||
|
// IfVis = CommonClassLib.CCarryConvert.GetBitFromInteger(DeviceStateAllReturns[temp], glen);
|
||
|
|
||
|
// return IfVis;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// return -1;
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// return -1;
|
||
|
// }
|
||
|
|
||
|
|
||
|
// #endregion
|
||
|
|
||
|
|
||
|
//}
|
||
|
//else
|
||
|
//{
|
||
|
// return -1;
|
||
|
|
||
|
//}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
RefreshMonitorEventArgs rea = new RefreshMonitorEventArgs("tsStatus", string.Format("ȡ�ù��翪�ص��ź�ʱ��{0}" ,ex.StackTrace+ex.Message ));
|
||
|
OnRefreshMonitor(rea);
|
||
|
return -1;
|
||
|
}
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// //20101124���ݡ��豸��.bitλ�����ַ�����ȡ��F_SplitByte���Ĺ���bitֵ��0,1
|
||
|
/// </summary>
|
||
|
/// <param name="deviceIdx"></param>
|
||
|
/// <param name="bit"></param>
|
||
|
/// <returns></returns>
|
||
|
public static int GetDevicePhotoelectric(string devicebit)
|
||
|
{
|
||
|
sp = devicebit.Split(dd);//20101124
|
||
|
if (sp.GetLength(0) <= 1) return -1;
|
||
|
int deviceIdx,abit;
|
||
|
int.TryParse(sp[0], out deviceIdx);
|
||
|
int.TryParse(sp[1], out abit);
|
||
|
try
|
||
|
{
|
||
|
devinfo = Model.CGetInfo.GetDeviceInfo(deviceIdx);
|
||
|
if (devinfo != null)
|
||
|
{
|
||
|
switch (abit)
|
||
|
{
|
||
|
case 0:
|
||
|
return devinfo.SplitByte_0;
|
||
|
case 1:
|
||
|
return devinfo.SplitByte_1;
|
||
|
case 2:
|
||
|
return devinfo.SplitByte_2;
|
||
|
case 3:
|
||
|
return devinfo.SplitByte_3;
|
||
|
case 4:
|
||
|
return devinfo.SplitByte_4;
|
||
|
case 5:
|
||
|
return devinfo.SplitByte_5;
|
||
|
case 6:
|
||
|
return devinfo.SplitByte_6;
|
||
|
case 7:
|
||
|
return devinfo.SplitByte_7;
|
||
|
}
|
||
|
return -9999;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return -9999;
|
||
|
}
|
||
|
|
||
|
#region �ɰ�����
|
||
|
|
||
|
|
||
|
|
||
|
////20110216
|
||
|
//DeviceStateAllReturns = CStaticClass.MutiReadSubscriptionDeviceSplitReturns[GetDeviceReadSubscription(deviceIdx)];
|
||
|
//if (DeviceStateAllReturns != null)
|
||
|
//{
|
||
|
// #region ��ȡ��������ֵ
|
||
|
|
||
|
// devinfo = Model.CGetInfo.GetDeviceInfo(deviceIdx);
|
||
|
|
||
|
// int glen = 0;
|
||
|
// int IfVis = 0;
|
||
|
// if (devinfo.SplitByte != -1)
|
||
|
// {
|
||
|
|
||
|
// devinfo28 = Model.CGeneralFunction.GetDeviceReadSubscriptionDB2Data(new StringBuilder(devinfo.ReadSubscription));
|
||
|
// int temp = devinfo.SplitByte - devinfo28.SplitByte;
|
||
|
// if (abit > 7)
|
||
|
// {
|
||
|
// glen = abit - 8;
|
||
|
// temp = temp + 1;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// glen = abit;
|
||
|
// }
|
||
|
// if (temp >= 0)
|
||
|
// {
|
||
|
// IfVis = CommonClassLib.CCarryConvert.GetBitFromInteger(DeviceStateAllReturns[temp], glen);
|
||
|
|
||
|
// return IfVis;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// return -1;
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// return -1;
|
||
|
// }
|
||
|
|
||
|
|
||
|
// #endregion
|
||
|
|
||
|
|
||
|
//}
|
||
|
//else
|
||
|
//{
|
||
|
// return -1;
|
||
|
//}
|
||
|
#endregion
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
RefreshMonitorEventArgs rea = new RefreshMonitorEventArgs("tsStatus", string.Format("ȡ�ù��翪�ص��ź�ʱ��{0}" ,ex.StackTrace+ex.Message ));
|
||
|
OnRefreshMonitor(rea);
|
||
|
return -9999;
|
||
|
}
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// ״̬:0���У�1���У�2���ϣ�3���ߣ�4��ͣ�ã�5��������
|
||
|
/// ȡ��ָ���豸�������豸״̬:[0]��д��־;[1]״̬;[2]�����ţ�[3]X����;[4]Y����;[5]�豸����
|
||
|
///
|
||
|
/// </summary>
|
||
|
/// <param name="deviceIdx">�豸����</param>
|
||
|
/// <returns></returns>
|
||
|
public static int[] GetDeviceState(int deviceIdx)
|
||
|
{
|
||
|
int[] states = new int[6]{1,0,0,0,0,deviceIdx};
|
||
|
devinfo =Model.CGetInfo.GetDeviceInfo(deviceIdx);
|
||
|
if (devinfo != null)
|
||
|
{
|
||
|
states[1] = devinfo.RunState;
|
||
|
return states;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
#region �ɰ���������
|
||
|
|
||
|
|
||
|
//Model.MDevice askdev;
|
||
|
//DataView dvbc;
|
||
|
|
||
|
|
||
|
//string s = DateTime.Now.Millisecond.ToString();
|
||
|
//try
|
||
|
//{
|
||
|
|
||
|
|
||
|
// //20110216
|
||
|
|
||
|
// DeviceStateAllReturns = CStaticClass.MutiReadSubscriptionDeviceStateReturns[GetDeviceReadSubscription(deviceIdx)];
|
||
|
// string s1 = DateTime.Now.Millisecond.ToString();
|
||
|
// if (DeviceStateAllReturns != null)
|
||
|
// {
|
||
|
// #region ��ȡ�豸״̬
|
||
|
|
||
|
// devinfo = Model.CGetInfo.GetDeviceInfo(deviceIdx);
|
||
|
|
||
|
// if (devinfo.Dbw2Address != -1)
|
||
|
// {
|
||
|
// //20100108
|
||
|
// //DataView dv;
|
||
|
// //DataView dvM;
|
||
|
// //Model.MDevice askdev;
|
||
|
// //20110216
|
||
|
// devinfo28 = Model.CGeneralFunction.GetDeviceReadSubscriptionDB2Data(new StringBuilder(devinfo.ReadSubscription));
|
||
|
// int temp = devinfo.Dbw2Address - devinfo28.Dbw2Address;
|
||
|
// decimal glen = devinfo.Dbw2Getlength;
|
||
|
|
||
|
// //20100108
|
||
|
// states = new int[6];
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("2");
|
||
|
// witemnames[0].Remove(0, witemnames[0].Length);
|
||
|
// witemnames[0].Append(Model.CGeneralFunction.DBGet).Append(",byte").Append(Convert.ToString(devinfo.Dbw2Address + 0));
|
||
|
// sdo = CommModeCreate.CreateSendDeviceOrder(deviceIdx);
|
||
|
// switch (devinfo.DeviceKind.ToString())
|
||
|
// {
|
||
|
// #region �ֳ����ƴ�����������Ϣ��16���ֽڣ�
|
||
|
// case "22":
|
||
|
|
||
|
// if (DeviceStateAllReturns[temp] != 1) return null;
|
||
|
// states = new int[16];
|
||
|
// states[0] = 0;
|
||
|
// states[1] = deviceIdx;
|
||
|
// states[2] = DeviceStateAllReturns[temp + 1];//������
|
||
|
// states[3] = (DeviceStateAllReturns[temp + 2] << 8) + DeviceStateAllReturns[temp + 3];//�豸����
|
||
|
// states[4] = (DeviceStateAllReturns[temp + 4] << 8) + DeviceStateAllReturns[temp + 5];//������
|
||
|
// askdev = Model.CGetInfo.GetDeviceInfo(states[3]);
|
||
|
// //states[2];//������
|
||
|
// //states[3];//�豸��������ǰ�����豸��������
|
||
|
// //states[4];//�����ţ���Ҫ��Ŀ��λ�õ������ţ�
|
||
|
|
||
|
// //20091102
|
||
|
// if (askdev == null)
|
||
|
// {
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("37");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "37�������豸�Ų�����");
|
||
|
// return null;
|
||
|
// }
|
||
|
// int bcz = 0;
|
||
|
|
||
|
// StringBuilder barcode = new StringBuilder();
|
||
|
// for (int j = 6; j < 16; j++)
|
||
|
// {
|
||
|
// bcz = bcz + DeviceStateAllReturns[temp + j];
|
||
|
// barcode.Append(Convert.ToChar(DeviceStateAllReturns[temp + j]).ToString().ToUpper());
|
||
|
// states[j - 1] = DeviceStateAllReturns[temp + j];
|
||
|
// }
|
||
|
// //20090902������arraylength
|
||
|
// if (IsEquals(devinfo.ReturnMessage, states, 5) == false)
|
||
|
// {
|
||
|
// devinfo.ReturnMessage = states;
|
||
|
// Model.CGetInfo.SetDeviceMessage(devinfo);
|
||
|
// sss.Remove(0, sss.Length);
|
||
|
// sss.Append("**�������豸����" + states[1]).Append("**������" + states[2])
|
||
|
// .Append("**�������豸����" + states[3]).Append("**������������" + states[4]).Append("**����������" + barcode);
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�յ��ֳ����ƴ�����������Ϣ", deviceIdx.ToString(), sss.ToString());
|
||
|
|
||
|
// }
|
||
|
// #region �����ط���ǰ�豸ָ��(1)
|
||
|
|
||
|
// if (states[2] == 1)//������
|
||
|
// {
|
||
|
// if (states[4] == 0)//��������
|
||
|
// {
|
||
|
// if (bcz == 0)//��������
|
||
|
// {
|
||
|
// //32�����������ź������붼������
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("32");
|
||
|
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "32�����������ź������붼������");
|
||
|
// return null;
|
||
|
// }
|
||
|
// else//��������
|
||
|
// {
|
||
|
// #region ��������
|
||
|
// //DataView dv = dbo.ExceSQL("SELECT F_BarCode, F_Askkind, F_DeviceIndex FROM T_Base_PLC_Ask where F_DeviceIndex=" + DeviceIndex).Tables[0].DefaultView;
|
||
|
// //if (dv.Count > 0)
|
||
|
// //{
|
||
|
// // if (barcode == dv[i]["F_BarCode"].ToString())
|
||
|
// // {
|
||
|
// // return null;
|
||
|
// // }
|
||
|
// // else
|
||
|
// // {
|
||
|
// if (askdev.UseCommonDB == "1")
|
||
|
// {
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_TxtParam = '").Append(
|
||
|
// barcode).Append("' order by F_MonitorIndex asc");
|
||
|
// }
|
||
|
// else
|
||
|
// {//20090928 and F_DeviceIndex=" + states[3] + "
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_TxtParam = '").Append(
|
||
|
// barcode).Append("' order by F_MonitorIndex asc");
|
||
|
// }
|
||
|
// //20100108
|
||
|
// dvbc = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
||
|
|
||
|
// if (dvbc.Count > 0)
|
||
|
// {
|
||
|
// if (askdev.UseCommonDB == "1")
|
||
|
// {
|
||
|
// //20090915
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("update T_Monitor_Task set F_AheadDetect='',F_DeviceIndex=").Append(states[3]).Append(" where F_MonitorIndex=").Append(dvbc[0]["F_MonitorIndex"]).Append("");
|
||
|
// dbo.ExceSQL(sql.ToString());
|
||
|
// }
|
||
|
|
||
|
// //wv[0] = "4";
|
||
|
// //sdo.WriteDBData(witemnames, wv);
|
||
|
// return states;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// //35�������豸�ź������벻ƥ��
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("35");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "35�������豸�ź������벻ƥ��");
|
||
|
// return null;
|
||
|
// }
|
||
|
// // }
|
||
|
// //}
|
||
|
// #endregion
|
||
|
// }
|
||
|
// }
|
||
|
// else//��������
|
||
|
// {
|
||
|
// #region ��������
|
||
|
// //DataView dv = dbo.ExceSQL("SELECT F_TaskIndex, F_Askkind, F_DeviceIndex FROM T_Base_PLC_Ask where F_DeviceIndex=" + DeviceIndex).Tables[0].DefaultView;
|
||
|
// //if (dv.Count > 0)
|
||
|
// //{
|
||
|
// // if (states[4] == dv[i]["F_TaskIndex"].ToString())
|
||
|
// // {
|
||
|
// // return null;
|
||
|
// // }
|
||
|
// // else
|
||
|
// // {
|
||
|
|
||
|
// if (askdev.UseCommonDB == "1")
|
||
|
// {
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_MonitorIndex = '").Append(
|
||
|
// states[4]).Append("' order by F_MonitorIndex asc");
|
||
|
// }
|
||
|
// else
|
||
|
// {//20090928 and F_DeviceIndex=" + states[3] + "
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_MonitorIndex = '").Append(
|
||
|
// states[4]).Append("' order by F_MonitorIndex asc");
|
||
|
// }
|
||
|
// //20101008
|
||
|
// dvbc = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
||
|
|
||
|
// if (dvbc.Count > 0)
|
||
|
// {
|
||
|
// if (askdev.UseCommonDB == "1")
|
||
|
// {
|
||
|
// //20090915
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("update T_Monitor_Task set F_AheadDetect='',F_DeviceIndex=").Append(states[3]).Append(" where F_MonitorIndex=").Append(dvbc[0]["F_MonitorIndex"]);
|
||
|
// dbo.ExceSQL(sql.ToString());
|
||
|
// }
|
||
|
|
||
|
// //RestoreDevice(Convert.ToInt32(dvbc[0]["F_MonitorIndex"]));
|
||
|
// //wv[0] = "4";
|
||
|
// //sdo.WriteDBData(witemnames, wv);
|
||
|
// ////��¼������
|
||
|
// //dbo.ExceSQL("update T_Base_PLC_Ask set F_TaskIndex='" + states[4]
|
||
|
// // + "' where F_DeviceIndex=" + DeviceIndex);
|
||
|
// return states;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// //36�������豸�ź������Ų�ƥ��
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("36");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "36�������豸�ź������Ų�ƥ��");
|
||
|
// return null;
|
||
|
// }
|
||
|
// // }
|
||
|
// //}
|
||
|
// #endregion
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
|
||
|
// #endregion
|
||
|
|
||
|
// #region �����ĵ�ǰ�豸��ִ������Ŀ��λ��(2)
|
||
|
|
||
|
// else if (states[2] == 2)//������
|
||
|
// {
|
||
|
// //�����ĵ�ǰ�豸��ִ������Ŀ��λ�õ�F_TaskIndex�ظ�ʱ��������Ӧ����
|
||
|
// return states;
|
||
|
// }
|
||
|
|
||
|
// #endregion
|
||
|
|
||
|
// #region �ϱ�����(3)
|
||
|
// else if (states[2] == 3)//������
|
||
|
// {
|
||
|
// if (states[4] == 0)//��������
|
||
|
// {
|
||
|
// if (bcz == 0)//��������
|
||
|
// {
|
||
|
// //32�����������ź������붼������
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("32");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "32�����������ź������붼������");
|
||
|
// return null;
|
||
|
// }
|
||
|
// else//��������
|
||
|
// {
|
||
|
// #region ��������
|
||
|
// //20100108
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_TxtParam = '").Append(
|
||
|
// barcode).Append("' order by F_MonitorIndex asc");
|
||
|
// dvbc = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvbc.Count > 0)
|
||
|
// {
|
||
|
|
||
|
// return states;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// //30����������������
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("30");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "30�����������Ų�����");
|
||
|
// return null;
|
||
|
// }
|
||
|
// #endregion
|
||
|
// }
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// #region ��������
|
||
|
// //DataView dv = dbo.ExceSQL("SELECT F_TaskIndex, F_Askkind, F_DeviceIndex FROM T_Base_PLC_Ask where F_DeviceIndex=" + DeviceIndex).Tables[0].DefaultView;
|
||
|
// //if (dv.Count > 0)
|
||
|
// //{
|
||
|
// // if (states[4] == dv[i]["F_TaskIndex"].ToString())
|
||
|
// // {
|
||
|
// // return null;
|
||
|
// // }
|
||
|
// // else
|
||
|
// // {
|
||
|
// //and F_DeviceIndex=" + states[3] + "
|
||
|
|
||
|
// //20100108
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_MonitorIndex = '").Append(
|
||
|
// states[4]).Append("' order by F_MonitorIndex asc");
|
||
|
// dvbc = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvbc.Count > 0)
|
||
|
// {
|
||
|
// //wv[0] = "2";
|
||
|
// //sdo.WriteDBData(witemnames, wv);
|
||
|
// ////��¼������
|
||
|
// //dbo.ExceSQL("update T_Base_PLC_Ask set F_TaskIndex='" + states[4]
|
||
|
// // + "' where F_DeviceIndex=" + DeviceIndex);
|
||
|
// return states;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// //31����������������
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("31");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "31�����������Ų�����");
|
||
|
// return null;
|
||
|
// }
|
||
|
// // }
|
||
|
// //}
|
||
|
// #endregion
|
||
|
// }
|
||
|
// }
|
||
|
// #endregion
|
||
|
|
||
|
// #region ɾ����ǰ�豸��ִ�е�����(4)���������ߣ�
|
||
|
// else if (states[2] == 4)//������
|
||
|
// {
|
||
|
// //20090915
|
||
|
// if (states[4] == 0)//��������
|
||
|
// {
|
||
|
// if (bcz == 0)//��������
|
||
|
// {
|
||
|
// //32�����������ź������붼������
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("32");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "32�����������ź������붼������");
|
||
|
// return null;
|
||
|
// }
|
||
|
// else//��������
|
||
|
// {
|
||
|
// #region ��������
|
||
|
// //20100108
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_TxtParam = '").Append(
|
||
|
// barcode).Append("' order by F_MonitorIndex asc");
|
||
|
// dvbc = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvbc.Count > 0)
|
||
|
// {
|
||
|
|
||
|
// return states;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// //30����������������
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("30");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "30�����������Ų�����");
|
||
|
// return null;
|
||
|
// }
|
||
|
// #endregion
|
||
|
// }
|
||
|
// }
|
||
|
// else
|
||
|
// {//20090915
|
||
|
// #region ��������
|
||
|
// //20100108
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_MonitorIndex = '").Append(
|
||
|
// states[4]).Append("' order by F_MonitorIndex asc");
|
||
|
// dvbc = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvbc.Count > 0)
|
||
|
// {
|
||
|
|
||
|
// return states;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// //31����������������
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("31");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "31�����������Ų�����");
|
||
|
// return null;
|
||
|
// }
|
||
|
// #endregion
|
||
|
// }
|
||
|
// }
|
||
|
// #endregion
|
||
|
// break;
|
||
|
// #endregion
|
||
|
|
||
|
|
||
|
// #region ������������Ϣ
|
||
|
// case "24":
|
||
|
|
||
|
// if (DeviceStateAllReturns[temp] != 1) return null;
|
||
|
// states[0] = 0;
|
||
|
// states[1] = deviceIdx;
|
||
|
// states[2] = DeviceStateAllReturns[temp + 1];//�����˶���:1-ȡ������;2-�Ż�����;3-������������
|
||
|
// states[3] = DeviceStateAllReturns[temp + 2];//������������
|
||
|
// //sdo.WriteDBData(witemnames, wv);
|
||
|
// devinfo.ReturnMessage = states;
|
||
|
// Model.CGetInfo.SetDeviceMessage(devinfo);
|
||
|
// //string ssss = "";
|
||
|
// //for (int j = 0; j <= 3; j++)
|
||
|
// //{
|
||
|
// // ssss += "**" + states[j].ToString();
|
||
|
// //}
|
||
|
// //CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), ssss);
|
||
|
|
||
|
|
||
|
// break;
|
||
|
// #endregion
|
||
|
|
||
|
|
||
|
// #region �����豸
|
||
|
// case "1"://�Ѷ���
|
||
|
|
||
|
// states[0] = DeviceStateAllReturns[temp];//��д��־
|
||
|
// states[1] = DeviceStateAllReturns[temp + 1];//״̬
|
||
|
// states[2] = (DeviceStateAllReturns[temp + 2] << 8) + DeviceStateAllReturns[temp + 3];//������
|
||
|
// states[3] = DeviceStateAllReturns[temp + 7] + (DeviceStateAllReturns[temp + 6] << 8) + (DeviceStateAllReturns[temp + 5] << 16) + (DeviceStateAllReturns[temp + 4] << 32);//X����
|
||
|
// states[4] = DeviceStateAllReturns[temp + 11] + (DeviceStateAllReturns[temp + 10] << 8) + (DeviceStateAllReturns[temp + 9] << 16) + (DeviceStateAllReturns[temp + 8] << 32);//Y����
|
||
|
// states[5] = deviceIdx;//�豸������
|
||
|
// if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
|
||
|
// {
|
||
|
// devinfo.ReturnMessage = states;
|
||
|
// Model.CGetInfo.SetDeviceMessage(devinfo);
|
||
|
// sss.Remove(0, sss.Length);
|
||
|
// sss.Append("**����־" + states[0]).Append("**״̬" + states[1]).Append("**������" + states[2])
|
||
|
// .Append("**������" + states[3]).Append("**������" + states[4]);
|
||
|
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�յ��Ѷ���״̬", deviceIdx.ToString(), sss.ToString());
|
||
|
|
||
|
|
||
|
// }
|
||
|
// break;
|
||
|
// case "2"://���ͻ�
|
||
|
// states[0] = DeviceStateAllReturns[temp];//��д��־
|
||
|
// states[1] = DeviceStateAllReturns[temp + 1];//״̬
|
||
|
// states[2] = (DeviceStateAllReturns[temp + 2] << 8) + DeviceStateAllReturns[temp + 3];//������
|
||
|
// states[3] = 0;
|
||
|
// states[4] = 0;
|
||
|
// states[5] = deviceIdx;//�豸������
|
||
|
// if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
|
||
|
// {
|
||
|
// devinfo.ReturnMessage = states;
|
||
|
// Model.CGetInfo.SetDeviceMessage(devinfo);
|
||
|
// sss.Remove(0, sss.Length);
|
||
|
// sss.Append("**����־" + states[0]).Append("**״̬" + states[1]).Append("**������" + states[2]);
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�յ����ͻ�״̬", deviceIdx.ToString(), sss.ToString());
|
||
|
|
||
|
// }
|
||
|
// break;
|
||
|
// case "4"://RGV
|
||
|
// states[0] = DeviceStateAllReturns[temp];//��д��־
|
||
|
// states[1] = DeviceStateAllReturns[temp + 1];//״̬
|
||
|
// states[2] = (DeviceStateAllReturns[temp + 2] << 8) + DeviceStateAllReturns[temp + 3];//������
|
||
|
// states[3] = DeviceStateAllReturns[temp + 7] + (DeviceStateAllReturns[temp + 6] << 8) + (DeviceStateAllReturns[temp + 5] << 16) + (DeviceStateAllReturns[temp + 4] << 32);//X����
|
||
|
// states[4] = 0;
|
||
|
// states[5] = deviceIdx;//�豸������
|
||
|
// if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
|
||
|
// {
|
||
|
|
||
|
// devinfo.ReturnMessage = states;
|
||
|
// Model.CGetInfo.SetDeviceMessage(devinfo);
|
||
|
// sss.Remove(0, sss.Length);
|
||
|
// sss.Append("**����־" + states[0]).Append("**״̬" + states[1]).Append("**������" + states[2]).Append("**X����" + states[3]);
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), sss.ToString());
|
||
|
|
||
|
// }
|
||
|
// break;
|
||
|
|
||
|
|
||
|
|
||
|
// #endregion
|
||
|
|
||
|
// #region �߶˼������豸
|
||
|
|
||
|
// case "31"://��λ���ͻ�
|
||
|
// states[0] = DeviceStateAllReturns[temp];//��д��־
|
||
|
// states[1] = DeviceStateAllReturns[temp + 1];//״̬
|
||
|
// StringBuilder barcode1 = new StringBuilder();
|
||
|
// for (int i = 2; i <= 7; i++)
|
||
|
// {
|
||
|
// barcode1.Append(Convert.ToChar(DeviceStateAllReturns[temp + i]));
|
||
|
|
||
|
// }
|
||
|
// states[2] = GetMonitorTaskIndexFromBarCode(barcode1);
|
||
|
// states[3] = 0;
|
||
|
// states[4] = 0;
|
||
|
// states[5] = deviceIdx;//�豸������
|
||
|
// if (IsEquals(devinfo.ReturnMessage, states, 3) == false)
|
||
|
// {
|
||
|
// devinfo.ReturnMessage = states;
|
||
|
// Model.CGetInfo.SetDeviceMessage(devinfo);
|
||
|
// sss.Remove(0, sss.Length);
|
||
|
// sss.Append("**����־" + states[0]).Append("**״̬" + states[1]).Append("**������" + barcode1 + "**������" + states[2]);
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�յ���λ���ͻ�״̬", deviceIdx.ToString(), sss.ToString());
|
||
|
|
||
|
// }
|
||
|
// break;
|
||
|
// case "32"://�������
|
||
|
// if (DeviceStateAllReturns[temp] != 1) return null;
|
||
|
// states = new int[16];
|
||
|
// states[0] = 0;
|
||
|
// states[1] = deviceIdx;
|
||
|
// states[2] = DeviceStateAllReturns[temp + 1];//������
|
||
|
// states[3] = (DeviceStateAllReturns[temp + 2] << 8) + DeviceStateAllReturns[temp + 3];//�豸����
|
||
|
// int bcz11 = 0;
|
||
|
|
||
|
// StringBuilder barcode11 = new StringBuilder();
|
||
|
// for (int j = 6; j <= 11; j++)
|
||
|
// {
|
||
|
// bcz11 = bcz11 + DeviceStateAllReturns[temp + j];
|
||
|
// barcode11.Append(Convert.ToChar(DeviceStateAllReturns[temp + j]).ToString().ToUpper());
|
||
|
// states[j - 1] = DeviceStateAllReturns[temp + j];
|
||
|
// }
|
||
|
// states[4] = GetMonitorTaskIndexFromBarCode(barcode11);//������
|
||
|
// askdev = Model.CGetInfo.GetDeviceInfo(states[3]);
|
||
|
// //states[2];//������
|
||
|
// //states[3];//�豸��������ǰ�����豸��������
|
||
|
// //states[4];//�����ţ���Ҫ��Ŀ��λ�õ������ţ�
|
||
|
|
||
|
// //20091102
|
||
|
// if (askdev == null)
|
||
|
// {
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("34");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "34�������豸�Ų�����");
|
||
|
// return null;
|
||
|
// }
|
||
|
|
||
|
// //20090902������arraylength
|
||
|
// if (IsEquals(devinfo.ReturnMessage, states, 5) == false)
|
||
|
// {
|
||
|
// devinfo.ReturnMessage = states;
|
||
|
// Model.CGetInfo.SetDeviceMessage(devinfo);
|
||
|
// sss.Remove(0, sss.Length);
|
||
|
// sss.Append("**�������豸����" + states[1]).Append("**������" + states[2])
|
||
|
// .Append("**�������豸����" + states[3]).Append("**������������" + states[4]).Append("**����������" + barcode11);
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�յ��ֳ����ƴ�����������Ϣ", deviceIdx.ToString(), sss.ToString());
|
||
|
|
||
|
// }
|
||
|
|
||
|
// if (bcz11 == 0)//��������
|
||
|
// {
|
||
|
// //30�����벻����
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("30");
|
||
|
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "30�����벻����");
|
||
|
// return null;
|
||
|
// }
|
||
|
// else//��������
|
||
|
// {
|
||
|
// #region ��������
|
||
|
|
||
|
// sql.Remove(0, sql.Length);
|
||
|
// sql.Append("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,").Append(
|
||
|
// "F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6 FROM T_Monitor_Task WHERE F_TxtParam = '").Append(
|
||
|
// barcode11).Append("' order by F_MonitorIndex asc");
|
||
|
|
||
|
// dvbc = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
||
|
|
||
|
// if (dvbc.Count > 0)
|
||
|
// {
|
||
|
|
||
|
// return states;
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// //35�������豸�ź������벻ƥ��
|
||
|
// wv[0].Remove(0, wv[0].Length);
|
||
|
// wv[0].Append("33");
|
||
|
// sdo.WriteDBData(witemnames, wv);//20091013
|
||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "�����ֳ����ƴ����������ķ�����Ϣ", deviceIdx.ToString(), "33�������豸�ź������벻ƥ��");
|
||
|
// return null;
|
||
|
// }
|
||
|
// #endregion
|
||
|
|
||
|
// }
|
||
|
|
||
|
// #endregion
|
||
|
// }
|
||
|
|
||
|
|
||
|
// return states;
|
||
|
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// return null;
|
||
|
// }
|
||
|
|
||
|
|
||
|
// #endregion
|
||
|
|
||
|
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// return null;
|
||
|
// }
|
||
|
//}
|
||
|
//catch (Exception ex)
|
||
|
//{
|
||
|
// string s1 = DateTime.Now.Millisecond.ToString();
|
||
|
// RefreshMonitorEventArgs rea = new RefreshMonitorEventArgs("tsStatus", "�����豸״̬ʱ��" + ex.Message);
|
||
|
// OnRefreshMonitor(rea);
|
||
|
// return null;
|
||
|
//}
|
||
|
//finally
|
||
|
//{//20100108
|
||
|
// //dv=null;
|
||
|
// //dvM = null;
|
||
|
// askdev = null;
|
||
|
// states = null;
|
||
|
|
||
|
// dvbc = null;
|
||
|
//}
|
||
|
|
||
|
#endregion
|
||
|
}
|
||
|
public static string GetStringData(int deviceIdx)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
|
||
|
|
||
|
//20110216
|
||
|
DeviceStateAllReturns = CStaticClass.MutiReadSubscriptionDeviceStateReturns[GetDeviceReadSubscription(deviceIdx)];
|
||
|
if (DeviceStateAllReturns != null)
|
||
|
{
|
||
|
#region ��ȡ�豸״̬
|
||
|
|
||
|
devinfo = Model.CGetInfo.GetDeviceInfo(deviceIdx);
|
||
|
|
||
|
if (devinfo.Dbw2Address != -1)
|
||
|
{
|
||
|
//20110216
|
||
|
devinfo28 = Model.CGeneralFunction.GetDeviceReadSubscriptionDB2Data(new StringBuilder(devinfo.S7Connection));
|
||
|
int temp = devinfo.Dbw2Address - devinfo28.Dbw2Address;
|
||
|
decimal glen = devinfo.Dbw2Getlength;
|
||
|
|
||
|
string headstr = DeviceStateAllReturns[temp].ToString();
|
||
|
if (headstr != "1") return null;
|
||
|
wv[0].Remove(0, wv[0].Length);
|
||
|
wv[0].Append("2");
|
||
|
witemnames[0].Append(Model.CGeneralFunction.DBGet).Append(".").Append(Convert.ToString(devinfo.Dbw2Address + 0)).Append(",b");//20130510
|
||
|
sdo = CommModeCreate.CreateSendDeviceOrder(deviceIdx);
|
||
|
switch (devinfo.DeviceKind.ToString())
|
||
|
{
|
||
|
|
||
|
#region �ַ�����Ϣ
|
||
|
case "7"://������
|
||
|
sss.Remove(0, sss.Length);
|
||
|
for (int i = 1; i <= 10; i++)
|
||
|
{
|
||
|
sss.Append( Convert.ToChar(DeviceStateAllReturns[temp+i]));
|
||
|
|
||
|
}
|
||
|
|
||
|
//sdo.WriteDBData(witemnames, wv);
|
||
|
CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "��PLC����",deviceIdx.ToString(), "����־1**���룺"+sss.ToString().ToUpper());
|
||
|
break;
|
||
|
case "21"://һ�Ź�����
|
||
|
sss.Remove(0, sss.Length);
|
||
|
for (int i = 1; i <= 32; i++)
|
||
|
{
|
||
|
sss.Append(Convert.ToChar(DeviceStateAllReturns[temp + i]));
|
||
|
|
||
|
}
|
||
|
|
||
|
//sdo.WriteDBData(witemnames, wv);
|
||
|
//CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "CGetDeviceState", deviceIdx.ToString(), strdata);
|
||
|
break;
|
||
|
|
||
|
#endregion
|
||
|
}
|
||
|
|
||
|
|
||
|
return sss.ToString().ToUpper() ;
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
RefreshMonitorEventArgs rea = new RefreshMonitorEventArgs("tsStatus", string.Format("CStaticClassȡ���豸�ַ�����Ϣʱ��{0}" ,ex.StackTrace+ex.Message ));
|
||
|
OnRefreshMonitor(rea);
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// �Ƚ�����ֵ��һά���������Ƿ�ֵ����
|
||
|
/// </summary>
|
||
|
/// <param name="array1">ֵ��һά����1</param>
|
||
|
/// <param name="array2">ֵ��һά����2</param>
|
||
|
/// <returns>�ȽϽ�����������true������false</returns>
|
||
|
public static bool IsEquals(Array array1, Array array2,int arraylength)
|
||
|
{//20090902������arraylength
|
||
|
//�Ƚ������Ƿ�һ��
|
||
|
if ((array1 == null) || (array2 == null)) return false;
|
||
|
if (!Object.ReferenceEquals(array1.GetType(), array2.GetType()))
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
//�Ƚϳ����Ƿ�һ��
|
||
|
if (array1.GetLength(0) != array2.GetLength(0))
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
//�Ƚϳ�Ա�Ƿ���Ӧ����
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
static int GetMonitorTaskIndexFromBarCode(StringBuilder BarCode)
|
||
|
{//20110216
|
||
|
DataView dv = dbo.ExceSQL(string.Format("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_TxtParam = '{0}') order by F_MonitorIndex asc", BarCode.ToString())).Tables[0].DefaultView;
|
||
|
if (dv.Count > 0)
|
||
|
{
|
||
|
return Convert.ToInt32( dv[0]["F_MonitorIndex"]);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return -1;
|
||
|
}
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// 20160501����OEEͳ��������Ϣ
|
||
|
/// </summary>
|
||
|
/// <param name="DeviceIndex">�豸����</param>
|
||
|
/// <param name="Date">����</param>
|
||
|
/// <param name="ManageTaskCount">������������</param>
|
||
|
/// <param name="ErrorCount">���ϴ���</param>
|
||
|
/// <param name="AlarmCount">����ϵ��</param>
|
||
|
/// <param name="RunTime">����ʱ��</param>
|
||
|
/// <param name="ErrorTime">����ʱ��</param>
|
||
|
/// <param name="AlarmTime">����ʱ��</param>
|
||
|
/// <param name="MEO">ͳ�Ʊ������߹���ʱ����������:M��е����,E��������,O��������</param>
|
||
|
/// <param name="ScheduledRepairTime"></param>
|
||
|
/// <param name="errText"></param>
|
||
|
/// <returns></returns>
|
||
|
public static bool UpdateDeviceOEE(int DeviceIndex, DateTime Date, int ManageTaskCount ,
|
||
|
int ErrorCount, int AlarmCount, int RunTime, int ErrorTime, int AlarmTime,char MEO, int ScheduledRepairTime,out string errText)
|
||
|
{
|
||
|
errText = string.Empty;
|
||
|
string dtdate = Date.Date.ToString("u").Substring(0, 10);
|
||
|
try
|
||
|
{
|
||
|
DataView dv = dbo.ExceSQL(string.Format("SELECT F_DeviceIndex FROM T_DeviceOEE_Today where F_DeviceIndex={0} and F_Date='{1}'", DeviceIndex, dtdate)).Tables[0].DefaultView;
|
||
|
if (dv.Count > 0)
|
||
|
{
|
||
|
if (ManageTaskCount > 0)
|
||
|
{
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set f_ManageTaskCount=f_ManageTaskCount+{0} where F_DeviceIndex={1} and F_Date='{2}'", ManageTaskCount, DeviceIndex, dtdate));
|
||
|
}
|
||
|
if (ErrorCount > 0)
|
||
|
{
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_ErrorCount=F_ErrorCount+{0} where F_DeviceIndex={1} and F_Date='{2}'", ErrorCount, DeviceIndex, dtdate));
|
||
|
}
|
||
|
if (AlarmCount > 0)
|
||
|
{
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_AlarmCount=F_AlarmCount+{0} where F_DeviceIndex={1} and F_Date='{2}'", AlarmCount, DeviceIndex, dtdate));
|
||
|
}
|
||
|
if (RunTime > 0)
|
||
|
{
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_RunTime=F_RunTime+{0} where F_DeviceIndex={1} and F_Date='{2}'", RunTime, DeviceIndex, dtdate));
|
||
|
}
|
||
|
if (ErrorTime > 0)
|
||
|
{
|
||
|
if (MEO == 'M')
|
||
|
{//��е����µĹ���
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_MErrorTime=F_MErrorTime+{0} where F_DeviceIndex={1} and F_Date='{2}'", ErrorTime, DeviceIndex, dtdate));
|
||
|
}
|
||
|
else if (MEO == 'E')
|
||
|
{//��������µĹ���
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_EErrorTime=F_EErrorTime+{0} where F_DeviceIndex={1} and F_Date='{2}'", ErrorTime, DeviceIndex, dtdate));
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{//O//��������µĹ���
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_OErrorTime=F_OErrorTime+{0} where F_DeviceIndex={1} and F_Date='{2}'", ErrorTime, DeviceIndex, dtdate));
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
if (AlarmTime > 0)
|
||
|
{
|
||
|
if (MEO == 'M')
|
||
|
{//��е����µĹ���
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_MAlarmTime=F_MAlarmTime+{0} where F_DeviceIndex={1} and F_Date='{2}'", AlarmTime, DeviceIndex, dtdate));
|
||
|
}
|
||
|
else if (MEO == 'E')
|
||
|
{//��������µĹ���
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_EAlarmTime=F_EAlarmTime+{0} where F_DeviceIndex={1} and F_Date='{2}'", AlarmTime, DeviceIndex, dtdate));
|
||
|
}
|
||
|
else
|
||
|
{//O//��������µĹ���
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_OAlarmTime=F_OAlarmTime+{0} where F_DeviceIndex={1} and F_Date='{2}'", AlarmTime, DeviceIndex, dtdate));
|
||
|
}
|
||
|
|
||
|
}
|
||
|
if (ScheduledRepairTime > 0)
|
||
|
{
|
||
|
dbo.ExecuteSql(string.Format("update T_DeviceOEE_Today set F_ScheduledRepairTime=F_ScheduledRepairTime+{0} where F_DeviceIndex={1} and F_Date='{2}'", ScheduledRepairTime, DeviceIndex, dtdate));
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
int MAlarmTime = 0;
|
||
|
int EAlarmTime = 0;
|
||
|
int OAlarmTime = 0;
|
||
|
int MErrorTime = 0;
|
||
|
int EErrorTime = 0;
|
||
|
int OErrorTime = 0;
|
||
|
if (ErrorTime > 0)
|
||
|
{
|
||
|
if (MEO == 'M')
|
||
|
{//��е����µĹ���
|
||
|
MErrorTime = ErrorTime;
|
||
|
}
|
||
|
else if (MEO == 'E')
|
||
|
{//��������µĹ���
|
||
|
EErrorTime = ErrorTime;
|
||
|
}
|
||
|
else
|
||
|
{//O//��������µĹ���
|
||
|
OErrorTime = ErrorTime;
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
if (AlarmTime > 0)
|
||
|
{
|
||
|
if (MEO == 'M')
|
||
|
{//��е����µĹ���
|
||
|
MAlarmTime = AlarmTime;
|
||
|
}
|
||
|
else if (MEO == 'E')
|
||
|
{//��������µĹ���
|
||
|
EAlarmTime = AlarmTime;
|
||
|
}
|
||
|
else
|
||
|
{//O//��������µĹ���
|
||
|
OAlarmTime = AlarmTime;
|
||
|
}
|
||
|
}
|
||
|
devinfo = Model.CGetInfo.GetDeviceInfo(DeviceIndex);
|
||
|
object[] ob = new object[14] {DeviceIndex, dtdate,ManageTaskCount,ErrorCount,AlarmCount,
|
||
|
RunTime,MErrorTime,EErrorTime,OErrorTime,MAlarmTime,EAlarmTime,OAlarmTime,ScheduledRepairTime,devinfo.ScheduledDailyTaskCount };
|
||
|
dbo.ExecuteSql(string.Format("insert into T_DeviceOEE_Today ( F_DeviceIndex, F_Date, F_ManageTaskCount, F_ErrorCount, F_AlarmCount, F_RunTime, F_MErrorTime, F_EErrorTime, F_OErrorTime, F_MAlarmTime,F_EAlarmTime,F_OAlarmTime, F_ScheduledRepairTime,F_ScheduledDailyTaskCount ) values({0},'{1}',{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}) ", ob));
|
||
|
}
|
||
|
return true;
|
||
|
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
errText = "UpdateDeviceOEE:" + ex.Message + ex.StackTrace;
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|