2714 lines
136 KiB
C#
2714 lines
136 KiB
C#
|
using System.Runtime.InteropServices;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.EnterpriseServices;
|
|||
|
using System.Text;
|
|||
|
using System.Data;
|
|||
|
using System;
|
|||
|
using CommLayerFactory;
|
|||
|
using ICommLayer;
|
|||
|
using DBFactory;
|
|||
|
|
|||
|
namespace ControlSystem
|
|||
|
{
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Creator:Richard.liu
|
|||
|
/// <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
|
|||
|
public class CControl
|
|||
|
{
|
|||
|
private Object thisLock = new Object();
|
|||
|
DBOperator dbo =CStaticClass.dbo;
|
|||
|
DBOperator dboM = CStaticClass.dboM;
|
|||
|
Model.MError errs;
|
|||
|
Model.MDevice devinfo;
|
|||
|
ISendDeviceOrder sdo;
|
|||
|
CCommonFunction ccf = new CCommonFunction();
|
|||
|
// CGetState cgs = new CGetState();
|
|||
|
//CGetState gs = new CGetState();
|
|||
|
int _DeviceIdx = 0;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
int _routeID = 0;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
|
|||
|
int _serialNumber = 0;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int _ManageTaskIdx = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int _ManageKindIdx = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int _DeviceOrder = 0;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
int _LockedState = 0;
|
|||
|
int _Associate = 0;
|
|||
|
int _ManTaskReserve = 0;
|
|||
|
string _AheadDetect = "";
|
|||
|
int _NumParam1=0;
|
|||
|
int _NumParam2 = 0;
|
|||
|
int _NumParam3 = 0;
|
|||
|
int _NumParam4 = 0;
|
|||
|
int _NumParam5 = 0;
|
|||
|
int _NumParam6 = 0;
|
|||
|
string _TxtParam = "-";
|
|||
|
int _DeviceKind = 0;
|
|||
|
int _OutsideAltDevice = 0;
|
|||
|
int _InsideAltDevice = 0;
|
|||
|
int _StartDevice = 0;
|
|||
|
int _EndDevice = 0;
|
|||
|
int _RouteKind = 0;
|
|||
|
int _CorrelDoubleFork = -1;
|
|||
|
//int _UseAwayFork = 1;
|
|||
|
int _AgvNo = 65535;
|
|||
|
string _CControlError = "";//<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
|
|||
|
//20110329
|
|||
|
int LastMachine = 0;//<2F><>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
|
|||
|
int RightUseTimes = 0;//12049
|
|||
|
int LeftUseTimes = 0;//12054
|
|||
|
|
|||
|
public string CControlError
|
|||
|
{
|
|||
|
get { return _CControlError; }
|
|||
|
set { _CControlError = value; }
|
|||
|
}
|
|||
|
|
|||
|
public CControl()
|
|||
|
{
|
|||
|
//dbo.Open();
|
|||
|
}
|
|||
|
//~CControl()
|
|||
|
//{
|
|||
|
// dbo.Close();
|
|||
|
//}
|
|||
|
public void StartOrder()
|
|||
|
{
|
|||
|
|
|||
|
//<2F><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<F1B5A5B5><C4A1><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>еĵ<D0B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ռ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>豸<EFBFBD><E8B1B8>F_AheadDetect<63><74><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼִ<CABC><D6B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>еĹ<D0B5><C4B9><EFBFBD><EFBFBD>豸F_AssociateDeviceIndex,<><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8>ָ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>¼<EFBFBD><C2BC>״̬F_StatusΪ1,<2C><><EFBFBD><EFBFBD><EFBFBD>豸Ϊռ<CEAA><D5BC>״̬<D7B4><CCAC>T_Base_device<63><65>F_LockedState=<3D>豸ָ<E8B1B8><EFBFBD><EEB5A5>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO_Control<6F><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>״̬FSTATUS=1;T_Manage_Task<73><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>״̬FSTATUS=1
|
|||
|
//·<><C2B7><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8>F_LockedDeviceIndex<65><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ӧ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
string taskkind =string.Empty ;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
if (CStaticClass.AutoOrder == true)
|
|||
|
{
|
|||
|
taskkind = " (F_ManageTaskKindIndex = 1 or F_ManageTaskKindIndex = 2 or F_ManageTaskKindIndex = 4) "; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(_CControlError) < 0)
|
|||
|
{
|
|||
|
|
|||
|
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", _CControlError, true);
|
|||
|
}
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
DataView dvM = new DataView();
|
|||
|
string strM = "";
|
|||
|
char[] sep = new char[1] { '-' };
|
|||
|
string aa = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|||
|
//<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
string strsql = "SELECT DISTINCT F_ManageTaskIndex AS MIndex,F_MonitorTaskLevel,F_ManageTaskKindIndex FROM T_Monitor_Task where " +
|
|||
|
taskkind + " order by F_ManageTaskKindIndex desc, F_MonitorTaskLevel desc, F_ManageTaskIndex asc";
|
|||
|
|
|||
|
DataView dv = dbo.ExceSQL(strsql).Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
for (int i = 0; i < dv.Count; i++)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//1<><31><EFBFBD><EFBFBD>ȡÿ<C8A1><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<DDB5>һ<EFBFBD><D2BB><EFBFBD>豸ָ<E8B1B8><D6B8>
|
|||
|
strM = "select top 1 min(F_MonitorIndex) as minMidx,f_status from T_Monitor_Task where " + taskkind + " and F_ManageTaskIndex = " + dv[i]["MIndex"] + " GROUP BY F_MonitorIndex, F_Status";
|
|||
|
dvM = dbo.ExceSQL(strM).Tables[0].DefaultView;
|
|||
|
if (dvM.Count > 0 && dvM[0]["minMidx"] != DBNull.Value)
|
|||
|
{
|
|||
|
|
|||
|
if (dvM[0]["F_Status"].ToString() == "0")
|
|||
|
{
|
|||
|
SendMonitorTask(Convert.ToInt32(dvM[0]["minMidx"]));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
continue;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
continue;
|
|||
|
}
|
|||
|
}
|
|||
|
catch(Exception ex)
|
|||
|
{
|
|||
|
_CControlError = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>"+ex.Message ;
|
|||
|
}
|
|||
|
|
|||
|
}//for<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//20091107
|
|||
|
|
|||
|
dv = null;
|
|||
|
|
|||
|
dvM = null;
|
|||
|
|
|||
|
return ;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//20091107
|
|||
|
|
|||
|
dv = null;
|
|||
|
|
|||
|
dvM = null;
|
|||
|
//_CControlError = "û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD>";
|
|||
|
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(_CControlError) < 0)
|
|||
|
{
|
|||
|
FrmControlMonitor.FormInstance.FlashPanit("tsStatus",_CControlError,true );
|
|||
|
}
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><>ȡÿ<C8A1><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<DDB5>һ<EFBFBD><D2BB><EFBFBD>豸<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,true<75><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false<73><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="minMidx"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns>true<75><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false<73><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD></returns>
|
|||
|
public bool GetFirstDeviceIFLocked(int minMidx, bool checkLockedstate)
|
|||
|
{
|
|||
|
char[] sep = new char[1] { '-' };
|
|||
|
int msgIdx = 0;//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
int adidx = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DataView dv;
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Ϣ
|
|||
|
if (GetSendInfo(minMidx) == false) { return true; }
|
|||
|
|
|||
|
int DeviceIdx = _DeviceIdx;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
int routeID = _routeID;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
|
|||
|
int serialNumber = _serialNumber;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int ManageTaskIdx = _ManageTaskIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int ManageKindIdx = _ManageKindIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int DeviceOrder = _DeviceOrder;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
int LockedState = _LockedState;
|
|||
|
int Associate = _Associate;
|
|||
|
int ManTaskReserve = _ManTaskReserve;
|
|||
|
string AheadDetect = _AheadDetect;
|
|||
|
int NumParam1 = _NumParam1;
|
|||
|
int NumParam2 = _NumParam2;
|
|||
|
int NumParam3 = _NumParam3;
|
|||
|
int NumParam4 = _NumParam4;
|
|||
|
int NumParam5 = _NumParam5;
|
|||
|
int NumParam6 = _NumParam6;
|
|||
|
string TxtParam = _TxtParam;
|
|||
|
int DeviceKind = _DeviceKind;
|
|||
|
int OutsideAltDevice = _OutsideAltDevice;
|
|||
|
int InsideAltDevice = _InsideAltDevice;
|
|||
|
int StartDevice = _StartDevice;
|
|||
|
int EndDevice = _EndDevice;
|
|||
|
int RouteKind = _RouteKind;
|
|||
|
int AgvNo = _AgvNo;
|
|||
|
|
|||
|
|
|||
|
#region <EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
|
|||
|
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
|
|||
|
{//20100108
|
|||
|
#region ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGV<EFBFBD>йص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϸ<EFBFBD>·<EFBFBD><EFBFBD>
|
|||
|
//20100108 <20><><EFBFBD>ͻ<EFBFBD><CDBB>Ľӻ<C4BD><D3BB>Խ<EFBFBD>ָ<EFBFBD><EFBFBD><EEB2BB><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
if ((_DeviceKind == 4) || ((_DeviceKind == 2) && ((_DeviceOrder == 3))) && (RouteKind != 3))
|
|||
|
{
|
|||
|
bool IfModify = false, IfUseNegativeDevice = false;//20100610
|
|||
|
//20091102 RGV<47>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ָ<EFBFBD><EFBFBD><EEB2BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
if ((_DeviceKind == 4) && (_DeviceOrder == 7) &&
|
|||
|
(ccf.GetSerialNumberFromRouteDevice(_routeID, _DeviceIdx) >
|
|||
|
ccf.GetSerialNumberFromRouteDevice(_routeID, _NumParam1)))
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT MIN(F_MonitorIndex) AS mmi FROM dbo.T_Monitor_Task WHERE (F_ManageTaskIndex = " + ManageTaskIdx + ") AND (F_ManageTASKKINDINDEX = 1)").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
//20091218
|
|||
|
|
|||
|
if ((dv[0]["mmi"] != DBNull.Value) && (dv[0]["mmi"].ToString() == minMidx.ToString()))
|
|||
|
{
|
|||
|
IfModify = true;
|
|||
|
IfUseNegativeDevice = true;//20100610
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else if ((_DeviceKind == 4) && ((_DeviceOrder == 3) || (_DeviceOrder == 5)))
|
|||
|
{//20100108<30>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Խ<EFBFBD>Ӧ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
devinfo = Model.CGetInfo.DeviceInfo[DeviceIdx];
|
|||
|
if ((devinfo.RunState == 0) && (devinfo.HaveGoods == true))
|
|||
|
{
|
|||
|
IfModify = true;
|
|||
|
IfUseNegativeDevice = false;//20100610
|
|||
|
}
|
|||
|
devinfo = null;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
IfModify = true;
|
|||
|
IfUseNegativeDevice = true;//20100610
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if (IfModify == true)
|
|||
|
{
|
|||
|
int altsn = ccf.GetSerialNumberFromRouteDevice(_routeID, _OutsideAltDevice);
|
|||
|
string sql = "SELECT F_SerialNumber FROM T_Base_Device,T_Base_Route_Device,T_Base_Device_State where " +
|
|||
|
" T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and F_ErrorCode =F_DeviceErrorIndex and " +
|
|||
|
" T_Base_Device_State.F_DeviceKindIndex = T_Base_Device.F_DeviceKindIndex AND T_Base_Device.F_ErrorCode > 0 AND " +
|
|||
|
" T_Base_Route_Device.F_SerialNumber > " + _serialNumber + " AND T_Base_Route_Device.F_SerialNumber > " +
|
|||
|
altsn + " AND T_Base_Route_Device.F_RouteIDSub = " + _routeID + " and F_ErrorLevel=2 ";
|
|||
|
dv= dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
//<2F>ж<EFBFBD><D0B6>ܷ<EFBFBD><DCB7>ĵ<EFBFBD>;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>;<3B><>ManageTaskIdx<64><78>ManageKindIdx <20>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
if (GetUsableDestination(_ManageTaskIdx, _ManageKindIdx) == true)
|
|||
|
{
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
#region RGVĿ<EFBFBD><EFBFBD>λ<EFBFBD>ñ<EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
//20100610
|
|||
|
devinfo = null;
|
|||
|
if (_DeviceKind == 4)
|
|||
|
{//RGV
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(CDisassembleTask.GetNextDevice(_routeID, _serialNumber)[0]);
|
|||
|
}
|
|||
|
else
|
|||
|
{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB>ͻ<EFBFBD>
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(CDisassembleTask.GetNextDevice(_routeID, _serialNumber)[0]);//RGV
|
|||
|
int sn = 0;
|
|||
|
if (devinfo != null)
|
|||
|
{
|
|||
|
sn = ccf.GetSerialNumberFromRouteDevice(_routeID, devinfo.DeviceIndex);
|
|||
|
}
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(CDisassembleTask.GetNextDevice(_routeID, sn)[0]);//<2F>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>ͻ<EFBFBD>
|
|||
|
|
|||
|
}
|
|||
|
if (devinfo != null)
|
|||
|
{
|
|||
|
if (devinfo.HaveGoods == true)
|
|||
|
{//Ŀ<><C4BF>λ<EFBFBD>ñ<EFBFBD>ռ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
if (GetRGVIdleDestination(_ManageTaskIdx, _ManageKindIdx, devinfo.DeviceIndex, IfUseNegativeDevice) == true)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
|
|||
|
//<2F>ж<EFBFBD>F_PriorMonitor<6F><72>ֵ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ھͲ<DABE><CDB2><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>С<EFBFBD>
|
|||
|
//sql = "SELECT T_Monitor_Task.F_MonitorIndex FROM T_Monitor_Task,T_Monitor_Task T_Monitor_Task_1 WHERE "+
|
|||
|
// " T_Monitor_Task.F_PriorMonitor = T_Monitor_Task_1.F_MonitorIndex AND (T_Monitor_Task.F_PriorMonitor IS NOT NULL)";
|
|||
|
//dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|||
|
//if (dv.Count > 0)
|
|||
|
//{
|
|||
|
// return true;
|
|||
|
//}
|
|||
|
|
|||
|
|
|||
|
if (_DeviceIdx == 1001)
|
|||
|
{//20100512 AGV
|
|||
|
if (AgvNo != 65535)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>䳵<EFBFBD>ŵ<EFBFBD>AGV<47><56><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
LockedState = Convert.ToInt32(dbo.GetSingle("SELECT F_LockedState FROM T_Base_Device where F_DeviceIndex="+(1001+AgvNo)+""));
|
|||
|
if(LockedState>0)return true;
|
|||
|
}
|
|||
|
if (AheadDetectOK(minMidx, _AheadDetect) == true)//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|||
|
{
|
|||
|
#region ˫<EFBFBD><EFBFBD>AGV<EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>AheadDetectOK
|
|||
|
//20100323
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(_DeviceIdx);
|
|||
|
if (devinfo.IfCorrelDoubleFork == "1")
|
|||
|
{
|
|||
|
if (Model.CGeneralFunction.DoubleForkIfSync(minMidx, _DeviceIdx, _DeviceKind) == true)
|
|||
|
{
|
|||
|
string[] df = Model.CGeneralFunction.GetDoubleForkMonitorInfo(minMidx, _DeviceIdx);
|
|||
|
if (df != null)
|
|||
|
{
|
|||
|
if (AheadDetectOK(Convert.ToInt32(df[0]), df[1]) == false)//˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int rmankind = Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(Convert.ToInt32(df[0]));
|
|||
|
int rman = Model.CGeneralFunction.GetManageTaskIndexfromMonitor(Convert.ToInt32(df[0]));
|
|||
|
dv = dbo.ExceSQL("SELECT MIN(F_MonitorIndex) AS mmi FROM dbo.T_Monitor_Task WHERE (F_ManageTaskIndex = " + rman + ") AND (F_ManageTASKKINDINDEX = " + rmankind + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
if ((dv[0]["mmi"] != DBNull.Value) && (dv[0]["mmi"].ToString() != df[0]))
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>豸<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ռ<EFBFBD>ã<EFBFBD>RGV<47>ͶѶ<CDB6><D1B6><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>Ƿֲ<C7B7><D6B2><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ûִ<C3BB><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĵ<C2B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
if (((_LockedState == 0) && (checkLockedstate == true)) || (checkLockedstate == false))
|
|||
|
{
|
|||
|
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGV<EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼF_ManTaskReserve
|
|||
|
|
|||
|
if (_ManTaskReserve > 0)
|
|||
|
{
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(_DeviceIdx);
|
|||
|
if (devinfo.IfCorrelDoubleFork == "1")
|
|||
|
{
|
|||
|
string[] df = Model.CGeneralFunction.GetDoubleForkMonitorInfo(minMidx, _DeviceIdx);
|
|||
|
if (df != null)
|
|||
|
{
|
|||
|
int rman = Model.CGeneralFunction.GetManageTaskIndexfromMonitor(Convert.ToInt32(df[0]));
|
|||
|
int rmankind = Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(Convert.ToInt32(df[0]));
|
|||
|
if ((_ManTaskReserve.ToString() != _ManageKindIdx.ToString() + _ManageTaskIdx.ToString()) && (_ManTaskReserve.ToString() != rmankind.ToString() + rman.ToString()))
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
else//20100702<30><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʱ<EFBFBD><CAB1>ԤԼ<D4A4><D4BC>
|
|||
|
{
|
|||
|
object rob = dbo.GetSingle("SELECT F_RELATIVECONTORLID FROM T_Manage_Task WHERE (F_ManageTaskKindIndex = "+_ManageKindIdx+") AND (FID = "+_ManageTaskIdx+") AND (F_RELATIVECONTORLID <> - 1)");
|
|||
|
string rlres = string.Empty ;
|
|||
|
if (rob != null)
|
|||
|
{
|
|||
|
rlres = _ManageKindIdx.ToString() + rob.ToString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
rob = dbo.GetSingle("SELECT FID FROM T_Manage_Task WHERE (F_ManageTaskKindIndex = " + _ManageKindIdx + ") AND (F_RELATIVECONTORLID = " + _ManageTaskIdx + ") ");
|
|||
|
if (rob != null)
|
|||
|
{
|
|||
|
rlres = _ManageKindIdx.ToString() + rob.ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
if ((_ManTaskReserve.ToString() != _ManageKindIdx.ToString() + _ManageTaskIdx.ToString())&&(_ManTaskReserve.ToString() !=rlres))
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (_ManTaskReserve.ToString() != _ManageKindIdx.ToString() + _ManageTaskIdx.ToString())
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region <EFBFBD>жϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD>3215<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>3215-3213
|
|||
|
//if ((_DeviceIdx == 3301) && (_DeviceOrder == 7) && ((_NumParam1 != 3215) && (_NumParam1 != 3233)))
|
|||
|
//{
|
|||
|
// DataView dvma = dbo.ExceSQL("select FID, F_ManageTaskKindIndex,FENDDEVICE from T_Manage_Task where F_ManageTaskKindIndex=" +
|
|||
|
// ccf.GetManageTaskKindIndexFromMonitor(minMidx) + " and fid=" + ccf.GetManageTaskIndexfromMonitor(minMidx)
|
|||
|
// + " and FENDDEVICE=3215").Tables[0].DefaultView;
|
|||
|
// if (dvma.Count > 0)
|
|||
|
// {
|
|||
|
// int startdev = 3215;
|
|||
|
// int dcode = 3213;
|
|||
|
// if (CStaticClass.GetDevicePhotoelectric(32151) == 1)
|
|||
|
// {
|
|||
|
// DataView dv11 = dbo.ExceSQL("select FSTARTDEVICE,FENDDEVICE from T_Manage_Task where FSTARTDEVICE=" + startdev + " and FENDDEVICE=" + dcode + "").Tables[0].DefaultView;
|
|||
|
// if (dv11.Count <= 0)
|
|||
|
// {
|
|||
|
// int fid = ccf.GetTempManageIdx();
|
|||
|
// //ccf.RecordMaxTempManageTaskFID(fid);
|
|||
|
// string warehouse = "13";
|
|||
|
// DataView dvw = dbo.ExceSQL("SELECT F_WarehouseIndex FROM T_Warehouse").Tables[0].DefaultView;
|
|||
|
// if (dvw.Count > 0)
|
|||
|
// {
|
|||
|
// warehouse = dvw[0]["F_WarehouseIndex"].ToString();
|
|||
|
// }
|
|||
|
|
|||
|
// string sql = "INSERT INTO T_Manage_Task" +
|
|||
|
// "(FID, F_ManageTaskKindIndex,FPALLETBARCODE,FMANAGETASKTYPE,FCONTROLTASKTYPE, FTASKLEVEL, FISRETURN," +
|
|||
|
// "FWAREHOUSE, FSTARTCELL, FSTARTDEVICE, FENDDEVICE, FENDCELL, " +
|
|||
|
// "FSTATUS, FBEGTIME, FENDTIME,FIntoStepOK,FREMARK,FLANEWAY,FSTACK)" +
|
|||
|
// "VALUES (" + fid + ",2,'-','0','3','1','1','" + warehouse + "','-','"
|
|||
|
// + startdev + "','" + dcode + "','-',"
|
|||
|
// + "'0','-','-','0','',0,0)";
|
|||
|
|
|||
|
// dbo.ExceSQL(sql);
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>赲<EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
////3.5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>赲<EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//BlockDevice = ccf.GetBlockDevice(_DetailIndex);
|
|||
|
//if ((BlockDevice != null) && (BlockDevice!= ""))
|
|||
|
//{
|
|||
|
// split = BlockDevice.Split(sep);
|
|||
|
// adidx = GetMonitorTaskIndex(Convert.ToInt32(split[0]), Convert.ToInt32(split[1]));
|
|||
|
|
|||
|
// //6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>赲<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// //CStaticClass.MessageIndex++;
|
|||
|
// CStaticClass.MessageIndex = 1;
|
|||
|
// msgIdx = (CStaticClass.MessageIndex);
|
|||
|
// sdo = CommModeCreate.CreateSendDeviceOrder(Convert.ToInt32(split[1]));
|
|||
|
// //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>豸
|
|||
|
// bool sendok;
|
|||
|
// if ((ccf.GetDeviceKindIdx(Convert.ToInt32(split[0])) == 1) || (ccf.GetDeviceKindIdx(Convert.ToInt32(split[0])) == 4) || (ccf.GetDeviceKindIdx(Convert.ToInt32(split[0])) == 6))
|
|||
|
// {
|
|||
|
// int[] gc = ccf.GetCoordinatesFromMonitorTask(adidx);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// if (gc != null)
|
|||
|
// {
|
|||
|
// //1<><31><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>RGV<47><56>6<EFBFBD><36>AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>F_NeedOptimize='1'<27><>
|
|||
|
// //ֱ<><D6B1>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T_Monitor_Task_Child<6C><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// if (ccf.NeedOptimize(_DeviceIdx) == true)
|
|||
|
// {
|
|||
|
// ccf.InsertMonitorOptimizeChildTask(adidx);
|
|||
|
// sendok = true;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// sendok = sdo.SendDeviceOrder(msgIdx, adidx, Convert.ToInt32(split[1]),
|
|||
|
// Convert.ToInt32(split[0]), gc[0], gc[1], gc[2], gc[3], gc[4], gc[5]);
|
|||
|
// }
|
|||
|
|
|||
|
// }
|
|||
|
// else
|
|||
|
// return true;
|
|||
|
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// sendok = sdo.SendDeviceOrder(msgIdx, adidx, Convert.ToInt32(split[1]), Convert.ToInt32(split[0]));
|
|||
|
// }
|
|||
|
// if (sendok == false)
|
|||
|
// {
|
|||
|
// return true;
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
#endregion
|
|||
|
#region ָ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD>
|
|||
|
if (18007 == NumParam4)
|
|||
|
{
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD>̻<EFBFBD>
|
|||
|
|
|||
|
|
|||
|
// if (LastMachine == 0)//<2F><>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>̻<EFBFBD>
|
|||
|
// {
|
|||
|
// LastMachine = 12049;
|
|||
|
// RightUseTimes=1;
|
|||
|
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// if (RightUseTimes == 1)//<2F><><EFBFBD><EFBFBD>
|
|||
|
// {
|
|||
|
// LastMachine = 12049;
|
|||
|
// RightUseTimes = 0;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// if (LeftUseTimes == 1)
|
|||
|
// {
|
|||
|
// LastMachine = 12054;
|
|||
|
// LeftUseTimes = 0;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// if (LeftUseTimes == 0)
|
|||
|
// {
|
|||
|
// if (LastMachine == 12049)
|
|||
|
// {
|
|||
|
// LastMachine = 12054;
|
|||
|
// LeftUseTimes = 1;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// LastMachine = 12049;
|
|||
|
// RightUseTimes = 1;
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
// else
|
|||
|
// if (RightUseTimes == 0)
|
|||
|
// {
|
|||
|
// if (LastMachine == 12054)
|
|||
|
// {
|
|||
|
// LastMachine = 12049;
|
|||
|
// RightUseTimes = 1;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// LastMachine = 12054;
|
|||
|
// LeftUseTimes = 1;
|
|||
|
// }
|
|||
|
|
|||
|
// }
|
|||
|
|
|||
|
//}
|
|||
|
#endregion
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<EFBFBD><EFBFBD>̻<EFBFBD>
|
|||
|
|
|||
|
if (LastMachine == 0)//<2F><>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>̻<EFBFBD>
|
|||
|
{
|
|||
|
LastMachine = 12049;
|
|||
|
RightUseTimes = 1;
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (LastMachine == 12049)
|
|||
|
{
|
|||
|
LastMachine = 12054;
|
|||
|
LeftUseTimes = 1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
LastMachine = 12049;
|
|||
|
RightUseTimes = 1;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
#endregion
|
|||
|
dbo.ExceSQL("update T_Monitor_Task set F_NumParam4= " + LastMachine + " where F_MonitorIndex= " + minMidx);
|
|||
|
dbo.ExceSQL("UPDATE T_Manage_Task SET FENDDEVICE=" + LastMachine + " where FID=" + ManageTaskIdx + " and F_ManageTaskKindIndex=" + ManageKindIdx+ "");
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#endregion
|
|||
|
//3<><33>F_AheadDetect<63><74><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>顰;<3B><>)
|
|||
|
if (AheadDetectOK(minMidx, _AheadDetect) == true)//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|||
|
{
|
|||
|
#region ˫<EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>F_CorrelDoubleFork<EFBFBD>Ƿ<EFBFBD>AheadDetectOK
|
|||
|
//20100323
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(_DeviceIdx);
|
|||
|
if (devinfo.IfCorrelDoubleFork == "1")
|
|||
|
{
|
|||
|
if (Model.CGeneralFunction.DoubleForkIfSync(minMidx, _DeviceIdx, _DeviceKind) == true)
|
|||
|
{
|
|||
|
string[] df = Model.CGeneralFunction.GetDoubleForkMonitorInfo(minMidx, _DeviceIdx);
|
|||
|
if (df != null)
|
|||
|
{
|
|||
|
if (AheadDetectOK(Convert.ToInt32(df[0]), df[1]) == false)//˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int rmankind = Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(Convert.ToInt32(df[0]));
|
|||
|
int rman = Model.CGeneralFunction.GetManageTaskIndexfromMonitor(Convert.ToInt32(df[0]));
|
|||
|
dv = dbo.ExceSQL("SELECT MIN(F_MonitorIndex) AS mmi FROM dbo.T_Monitor_Task WHERE (F_ManageTaskIndex = " + rman + ") AND (F_ManageTASKKINDINDEX = "+rmankind+")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
if ((dv[0]["mmi"] != DBNull.Value) && (dv[0]["mmi"].ToString() != df[0]))
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{//20100406<30>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>谭<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>еĹ<D0B5><C4B9><EFBFBD><EFBFBD>豸F_AssociateDeviceIndex
|
|||
|
//4<><34><EFBFBD>Ƿ<EFBFBD><C7B7>й<EFBFBD><D0B9><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>
|
|||
|
//AssociateDevice = ccf.GetAssociateDevice(minMidx);
|
|||
|
if (_Associate != 0)
|
|||
|
{
|
|||
|
//5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĹ<D0B5><C4B9><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>豸ָ<E8B1B8><D6B8>,<2C>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD>У<EFBFBD>
|
|||
|
//<2F>ظ<EFBFBD><D8B8>ݹ鵽2
|
|||
|
//split = AssociateDevice.Split(sep);
|
|||
|
adidx = _Associate;
|
|||
|
if (adidx != 0)
|
|||
|
{
|
|||
|
if (ccf.GetAssociateMonitor(minMidx) == 0)
|
|||
|
{
|
|||
|
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("<22>豸ָ<E8B1B8>" + minMidx.ToString() + "<22><EFBFBD><DEB7><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + adidx.ToString() + "<22><><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") < 0)
|
|||
|
{
|
|||
|
|
|||
|
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "<22>豸ָ<E8B1B8>" + minMidx.ToString() + "<22><EFBFBD><DEB7><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + adidx.ToString() + "<22><><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", true);
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
if (GetFirstDeviceIFLocked(adidx, false) == false)
|
|||
|
{
|
|||
|
//6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB9><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
//CStaticClass.MessageIndex++;
|
|||
|
CStaticClass.MessageIndex = 1;
|
|||
|
msgIdx = (CStaticClass.MessageIndex);
|
|||
|
sdo = CommModeCreate.CreateSendDeviceOrder(_DeviceIdx);
|
|||
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>豸
|
|||
|
bool sendok;
|
|||
|
int[] gc = new int[6] { _NumParam2, _NumParam3, _NumParam1, _NumParam5, _NumParam6, _NumParam4 }; //ccf.GetCoordinatesFromMonitorTask(adidx);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
if ((_DeviceKind == 1) || (_DeviceKind == 6))
|
|||
|
{
|
|||
|
|
|||
|
//1<><31><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>RGV<47><56>6<EFBFBD><36>AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>F_NeedOptimize='1'<27><>
|
|||
|
//ֱ<><D6B1>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T_Monitor_Task_Child<6C><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (ccf.NeedOptimize(_DeviceIdx) == true)
|
|||
|
{
|
|||
|
ccf.InsertMonitorOptimizeChildTask(adidx);
|
|||
|
sendok = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, adidx, _DeviceOrder,
|
|||
|
_DeviceIdx, gc[0], gc[1], gc[2], gc[3], gc[4], gc[5]);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else if (_DeviceKind == 4)
|
|||
|
{
|
|||
|
if (ccf.NeedOptimize(_DeviceIdx) == true)
|
|||
|
{
|
|||
|
ccf.InsertMonitorOptimizeChildTask(adidx);
|
|||
|
sendok = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, adidx, _DeviceOrder, _DeviceIdx, gc[2]);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, adidx, _DeviceOrder, _DeviceIdx, gc[5]);
|
|||
|
}
|
|||
|
if (sendok == false)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>¼<EFBFBD><C2BC>״̬F_StatusΪ1,<2C><><EFBFBD><EFBFBD><EFBFBD>豸Ϊռ<CEAA><D5BC>״̬<D7B4><CCAC>T_Base_device<63><65>F_LockedState=<3D>豸ָ<E8B1B8><EFBFBD><EEB5A5>
|
|||
|
dbo.ExceSQL("update T_Monitor_Task set F_StartTime='" + DateTime.Now.ToString("u") + "',F_Status='1' where F_MonitorIndex=" + adidx);
|
|||
|
//dbo.ExceSQL("update T_Base_device set F_LockedState=" + adidx + " where F_DeviceIndex=" + _DeviceIdx);
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD>ص<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>豸ֵ
|
|||
|
_DeviceIdx = DeviceIdx;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
_routeID = routeID;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
|
|||
|
_serialNumber = serialNumber;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_ManageTaskIdx = ManageTaskIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_ManageKindIdx = ManageKindIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_DeviceOrder = DeviceOrder;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
_LockedState = LockedState;
|
|||
|
_Associate = Associate;
|
|||
|
_ManTaskReserve = ManTaskReserve;
|
|||
|
_AheadDetect = AheadDetect;
|
|||
|
_NumParam1 = NumParam1;
|
|||
|
_NumParam2 = NumParam2;
|
|||
|
_NumParam3 = NumParam3;
|
|||
|
_NumParam4 = NumParam4;
|
|||
|
_NumParam5 = NumParam5;
|
|||
|
_NumParam6 = NumParam6;
|
|||
|
_TxtParam = TxtParam;
|
|||
|
_DeviceKind = DeviceKind;
|
|||
|
_OutsideAltDevice = OutsideAltDevice;
|
|||
|
_InsideAltDevice = InsideAltDevice;
|
|||
|
_StartDevice = StartDevice;
|
|||
|
_EndDevice = EndDevice;
|
|||
|
_RouteKind = RouteKind;
|
|||
|
_AgvNo = AgvNo;
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
else//
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ص<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>豸ֵ
|
|||
|
_DeviceIdx = DeviceIdx;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
_routeID = routeID;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
|
|||
|
_serialNumber = serialNumber;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_ManageTaskIdx = ManageTaskIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_ManageKindIdx = ManageKindIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_DeviceOrder = DeviceOrder;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
_LockedState = LockedState;
|
|||
|
_Associate = Associate;
|
|||
|
_ManTaskReserve = ManTaskReserve;
|
|||
|
_AheadDetect = AheadDetect;
|
|||
|
_NumParam1 = NumParam1;
|
|||
|
_NumParam2 = NumParam2;
|
|||
|
_NumParam3 = NumParam3;
|
|||
|
_NumParam4 = NumParam4;
|
|||
|
_NumParam5 = NumParam5;
|
|||
|
_NumParam6 = NumParam6;
|
|||
|
_TxtParam = TxtParam;
|
|||
|
_DeviceKind = DeviceKind;
|
|||
|
_OutsideAltDevice = OutsideAltDevice;
|
|||
|
_InsideAltDevice = InsideAltDevice;
|
|||
|
_StartDevice = StartDevice;
|
|||
|
_EndDevice = EndDevice;
|
|||
|
_RouteKind = RouteKind;
|
|||
|
_CControlError = "<22><><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ·<CFB8><C2B7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>豸ָ<E8B1B8>ƥ<EEB2BB>䣬ϵͳ<CFB5><CDB3>Ϊû<CEAA>й<EFBFBD><D0B9><EFBFBD><EFBFBD>豸ָ<E8B1B8><EFBFBD><EEB4A6><EFBFBD><EFBFBD>";
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ص<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>豸ֵ
|
|||
|
_DeviceIdx = DeviceIdx;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
_routeID = routeID;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
|
|||
|
_serialNumber = serialNumber;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_ManageTaskIdx = ManageTaskIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_ManageKindIdx = ManageKindIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
_DeviceOrder = DeviceOrder;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
_LockedState = LockedState;
|
|||
|
_Associate = Associate;
|
|||
|
_ManTaskReserve = ManTaskReserve;
|
|||
|
_AheadDetect = AheadDetect;
|
|||
|
_NumParam1 = NumParam1;
|
|||
|
_NumParam2 = NumParam2;
|
|||
|
_NumParam3 = NumParam3;
|
|||
|
_NumParam4 = NumParam4;
|
|||
|
_NumParam5 = NumParam5;
|
|||
|
_NumParam6 = NumParam6;
|
|||
|
_TxtParam = TxtParam;
|
|||
|
_DeviceKind = DeviceKind;
|
|||
|
_OutsideAltDevice = OutsideAltDevice;
|
|||
|
_InsideAltDevice = InsideAltDevice;
|
|||
|
_StartDevice = StartDevice;
|
|||
|
_EndDevice = EndDevice;
|
|||
|
_RouteKind = RouteKind;
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dv = null;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="minMidx"><3E><><EFBFBD><EFBFBD>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns><3E>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>true<75><65>ʾ<EFBFBD>豸ִ<E8B1B8><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></returns>
|
|||
|
public bool AheadDetectOK(int minMidx, string _AheadDetect)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>顰;<3B><>)
|
|||
|
DataView dv;//20100319
|
|||
|
DataView dvdv;
|
|||
|
DataTable dt;
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
int[] States;
|
|||
|
|
|||
|
int DeviceIdx = _DeviceIdx;
|
|||
|
int TaskIdx = minMidx;
|
|||
|
int fid = ccf.GetManageTaskIndexfromMonitor(TaskIdx);
|
|||
|
int mti = ccf.GetManageTaskKindIndexFromMonitor(TaskIdx);
|
|||
|
int DeviceKind = ccf.GetDeviceKindIdx(DeviceIdx);//20100617
|
|||
|
//20100706
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(DeviceIdx);
|
|||
|
if (devinfo.CommType == "OPCClient")//20100706 ֻ<><D6BB>OPCClientͨѶ<CDA8><D1B6><EFBFBD>͵ļ<CDB5><C4BC><EFBFBD><EFBFBD>豸״̬
|
|||
|
{
|
|||
|
#region OPCͨѶ<EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
|
|||
|
//gds = CommModeCreate.CreateGetDeviceState(DeviceIdx);
|
|||
|
try
|
|||
|
{
|
|||
|
//States = gds.GetDeviceState(DeviceIdx, TaskIdx);//1<><31><EFBFBD><EFBFBD>,2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,5<>豸<EFBFBD><E8B1B8>
|
|||
|
States = CStaticClass.GetDeviceState(DeviceIdx);
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("<22><>ȡ״̬ʱ<CCAC><CAB1>" + ex.Message) < 0)
|
|||
|
{
|
|||
|
|
|||
|
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "<22><>ȡ״̬ʱ<CCAC><CAB1>" + ex.Message, true);
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
if (States == null)//û<><C3BB><EFBFBD>յ<EFBFBD><D5B5>κη<CEBA><CEB7><EFBFBD>ֵ
|
|||
|
{
|
|||
|
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>û<EFBFBD>յ<EFBFBD>PLC<4C><43><EFBFBD>ݣ<EFBFBD>") < 0)
|
|||
|
{
|
|||
|
|
|||
|
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>û<EFBFBD>յ<EFBFBD>PLC<4C><43><EFBFBD>ݣ<EFBFBD>", true);
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
if ((States[1] == 1) || (States[1] >= 30))//<2F><><EFBFBD>л<EFBFBD><D0BB>߹<EFBFBD><DFB9><EFBFBD>
|
|||
|
{
|
|||
|
if (States[1] >= 30)
|
|||
|
{
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(DeviceIdx);
|
|||
|
int ErrId = States[1];
|
|||
|
//20090910
|
|||
|
//<2F>й<EFBFBD><D0B9><EFBFBD>¼<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
string devstr = "SELECT F_DeviceIndex FROM T_Base_Device where F_DeviceIndex=" + DeviceIdx + " and F_ErrorTaskNo=" + TaskIdx + "";
|
|||
|
dt = dbo.ExceSQL(devstr).Tables[0];
|
|||
|
if (dt.Rows.Count >= 1)
|
|||
|
{
|
|||
|
//dbo.ExceSQL("update T_Monitor_Task set F_Status= " + ErrId + " where (F_MonitorIndex= " + TaskIdx + ") and ((F_Status<> " + ErrId + ") and (F_Status<> 3))");
|
|||
|
return false;
|
|||
|
}
|
|||
|
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
dbo.ExceSQL("update T_Base_Device set F_ErrorTaskNo= " + TaskIdx + " where F_DeviceIndex= " + DeviceIdx);
|
|||
|
|
|||
|
if (CStaticClass.IsEquals(devinfo.ReturnMessage, States, 2) == true) return false;
|
|||
|
|
|||
|
//if ((_DeviceKind == 2) || (_DeviceKind == 4))
|
|||
|
//{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// sdo = CommModeCreate.CreateSendDeviceOrder(DeviceIdx);
|
|||
|
// sdo.SendDeviceOrder(2, 0, 0, DeviceIdx, 0);
|
|||
|
//}
|
|||
|
//if (_DeviceKind == 1) //<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>RGV
|
|||
|
//{
|
|||
|
|
|||
|
// sdo = CommModeCreate.CreateSendDeviceOrder(DeviceIdx);
|
|||
|
// sdo.SendDeviceOrder(2, 0, 0, DeviceIdx, 0, 0, 0, 0, 0, 0);
|
|||
|
//}
|
|||
|
errs = Model.CGetInfo.GetErrorInfo(Convert.ToInt32(_DeviceKind.ToString() + States[1].ToString()));
|
|||
|
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("<22>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>" + DeviceIdx + "<22>й<EFBFBD><D0B9>ϣ<EFBFBD>" + errs.ErrorName) < 0)
|
|||
|
{
|
|||
|
|
|||
|
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "<22>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>" + DeviceIdx + "<22>й<EFBFBD><D0B9>ϣ<EFBFBD>" + errs.ErrorName, true);
|
|||
|
}
|
|||
|
FrmMain.FormInstance.notifyIcon1.BalloonTipText = "<22><><EFBFBD><EFBFBD>:" + devinfo.DeviceName + "," + DeviceIdx + "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>" + errs.ErrorName;
|
|||
|
FrmMain.FormInstance.notifyIcon1.ShowBalloonTip(10000, "<22><><EFBFBD><EFBFBD>", devinfo.DeviceName + "," + DeviceIdx + "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>" + errs.ErrorName, System.Windows.Forms.ToolTipIcon.Warning);
|
|||
|
if (mti == 1)
|
|||
|
{
|
|||
|
dboM.ExceSQL("update IO_Control set ERROR_TEXT='" + "<><D7BC>ִ<EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" + devinfo.DeviceName + "," + DeviceIdx + errs.ErrorName + "' where Control_ID=" + fid);
|
|||
|
}
|
|||
|
dbo.ExceSQL("update T_Manage_Task set FERRORCODE='" + "<><D7BC>ִ<EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" + devinfo.DeviceName + "," + DeviceIdx + errs.ErrorName + "' where F_ManageTaskKindIndex=" + mti + " and FID=" + fid);
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
//20110724
|
|||
|
if (devinfo.DeviceKind == 1 && States[3]== 0)//<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F>Ӽ<EFBFBD><D3BC><EFBFBD>20100319 AGV<47><56>ָ<EFBFBD><D6B8>67<36><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AGV<47>Ų<EFBFBD><C5B2><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1219<31><39><EFBFBD>ͳ<EFBFBD>ָ<EFBFBD>1220<32><30>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ѷ<EFBFBD><D1B7>ͣ<EFBFBD><CDA3><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>Ҫ<EFBFBD>ȴ<EFBFBD>
|
|||
|
|
|||
|
//if (ccf.GetDeviceOrderFromMonitor(minMidx) == 67)
|
|||
|
//{
|
|||
|
// dv = dbo.ExceSQL("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_DeviceIndex = 1219) AND (F_DeviceCommandIndex = 6) AND (F_Status > 0)").Tables[0].DefaultView;
|
|||
|
// if (dv.Count > 0)
|
|||
|
// {
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
// dv = dbo.ExceSQL("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_DeviceIndex = 1220) AND (F_Status > 0)").Tables[0].DefaultView;
|
|||
|
// if (dv.Count > 0)
|
|||
|
// {
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
//}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//20101011
|
|||
|
int CONTROLTASKTYPE = ccf.GetFCONTROLTASKTYPEFromManageTask(mti, fid);
|
|||
|
if (ccf.GetCorrel_DeviceIndex(devinfo.DeviceIndex,true) == 0)//<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>
|
|||
|
{
|
|||
|
string[] CorrelInfo = ccf.GetCorrel_DeviceInfo(devinfo.DeviceIndex,true);
|
|||
|
if (CorrelInfo==null) return false;
|
|||
|
//20100406<30><36><EFBFBD>ⶥ<EFBFBD><E2B6A5>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD>⣺1102<30><32>̽<EFBFBD>-11021<32><31><EFBFBD><EFBFBD>1121<32>͵<EFBFBD>λ<EFBFBD><CEBB>-11212<31><32><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>1102<30><32>̽<EFBFBD>-11022<32><32><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
if(CONTROLTASKTYPE == 1)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if ((CStaticClass.GetDevicePhotoelectric(CorrelInfo[5]) == 1) )//&& (CStaticClass.GetDevicePhotoelectric(CorrelInfo[2]) == 1))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>λ)
|
|||
|
{
|
|||
|
#region <EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><>CStaticClass.DoubleForkWaitTime<6D>涨ʱ<E6B6A8><CAB1><EFBFBD>ڵȴ<DAB5><C8B4><EFBFBD>1102<30><32>11027<32><37>ת<EFBFBD><D7AA><EFBFBD>ȴ<EFBFBD>
|
|||
|
dv = dbo.ExceSQL("SELECT F_TaskIndex,F_DeviceIndex,F_Remark FROM T_Base_PLC_Ask WHERE (F_TaskIndex =" + TaskIdx + ") AND (F_Remark <> '') AND (F_DeviceIndex=" + devinfo.DeviceIndex + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
if((Convert.ToDateTime(dv[0]["F_Remark"]).AddSeconds(Convert.ToInt32(CStaticClass.DoubleForkWaitTime)) > DateTime.Now) ||
|
|||
|
// (GetIOControlStatus(minMidx) != Model.CGeneralFunction.TASKSINGLEFORKRUN) ||
|
|||
|
((CStaticClass.GetDevicePhotoelectric(CorrelInfo[6]) == 1) && (CStaticClass.GetDeviceRunState(int.Parse(CorrelInfo[4])) == 0)))//20110106
|
|||
|
{
|
|||
|
if ((CStaticClass.GetDevicePhotoelectric(CorrelInfo[6]) == 1)
|
|||
|
&& (CStaticClass.GetDeviceRunState(int.Parse(CorrelInfo[4])) == 0)
|
|||
|
&& (CStaticClass.GetDevicePhotoelectric(CorrelInfo[1]) == 1))//1<><31>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>ڸ<EFBFBD>λ//20110106
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ұ<EFBFBD><D2B1>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int mfid = GetEnableDoubleForkManageTask(1, devinfo.DeviceIndex, fid);
|
|||
|
if (mfid > 0)
|
|||
|
{
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set F_RELATIVECONTORLID=" + mfid + " where F_ManageTaskKindIndex=" + mti + " and FID=" + fid);
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set FUseAwayFork='0',F_RELATIVECONTORLID=" + fid + " where F_ManageTaskKindIndex=" + mti + " and FID=" + mfid);
|
|||
|
dbo.ExecuteSql("update T_Monitor_Task set F_UseAwayFork='0' where F_ManageTASKKINDINDEX=" + mti + " and F_ManageTaskIndex=" + mfid + "");
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ĵ<EFBFBD>
|
|||
|
AlterRoutePath(mti, mfid, CONTROLTASKTYPE, '0', devinfo.DeviceIndex);
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>߹<EFBFBD><DFB9><EFBFBD>ǿ<EFBFBD><C7BF>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (CStaticClass.GetDeviceRunState(int.Parse(CorrelInfo[4])) == 1)//20110106
|
|||
|
{
|
|||
|
string dtime = DateTime.Now.ToString("u");
|
|||
|
dtime = dtime.Substring(0, dtime.Length - 1);
|
|||
|
dbo.ExecuteSql("update T_Base_PLC_Ask set F_Remark='" + dtime + "' where (F_DeviceIndex=" + devinfo.DeviceIndex + ")");
|
|||
|
//20110108
|
|||
|
dbo.ExecuteSql("update T_Monitor_Task set F_UseAwayFork='1' where F_ManageTASKKINDINDEX=" + mti + " and F_ManageTaskIndex=" + fid + "");
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set FUseAwayFork='1' where F_ManageTASKKINDINDEX=" + mti + " and FID=" + fid + "");
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ʱ
|
|||
|
dbo.ExecuteSql("update T_Base_PLC_Ask set F_TaskIndex=0,F_Remark='' where (F_DeviceIndex=" + devinfo.DeviceIndex + ")");
|
|||
|
//20110108
|
|||
|
dbo.ExecuteSql("update T_Monitor_Task set F_UseAwayFork='1' where F_ManageTASKKINDINDEX=" + mti + " and F_ManageTaskIndex=" + fid + "");
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set FUseAwayFork='1' where F_ManageTASKKINDINDEX=" + mti + " and FID=" + fid + "");
|
|||
|
dboM.ExceSQL("update IO_Control set CONTROL_STATUS=" + Model.CGeneralFunction.TASKSINGLEFORKRUN + " where CONTROL_ID=" + fid);
|
|||
|
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else//20101220<32><30>ʼ<EFBFBD><CABC>¼2<C2BC>б<EFBFBD><D0B1>俪ʼ<E4BFAA>ȴ<EFBFBD><C8B4><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT F_TaskIndex,F_DeviceIndex,F_Remark FROM T_Base_PLC_Ask WHERE (F_TaskIndex =0) AND (F_Remark = '') AND (F_DeviceIndex=" + devinfo.DeviceIndex + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
string dtime = DateTime.Now.ToString("u");
|
|||
|
dtime = dtime.Substring(0, dtime.Length - 1);
|
|||
|
dbo.ExecuteSql("update T_Base_PLC_Ask set F_TaskIndex=" + TaskIdx + ",F_Remark='" + dtime + "' where (F_DeviceIndex=" + devinfo.DeviceIndex + ")");
|
|||
|
dbo.ExecuteSql("update T_Monitor_Task set F_UseAwayFork='1' where F_ManageTASKKINDINDEX=" + mti + " and F_ManageTaskIndex=" + fid + "");
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set FUseAwayFork='1' where F_ManageTASKKINDINDEX=" + mti + " and FID=" + fid + "");
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ĵ<EFBFBD>
|
|||
|
AlterRoutePath(mti, fid, CONTROLTASKTYPE, '1', devinfo.DeviceIndex);
|
|||
|
return false;
|
|||
|
}
|
|||
|
else//20110401
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT FID,F_RELATIVECONTORLID FROM T_Manage_Task where F_RELATIVECONTORLID=-1 and F_ManageTaskKindIndex=" + mti + " and FID=" + fid+"").Tables[0].DefaultView;
|
|||
|
if(dv.Count>0)
|
|||
|
{
|
|||
|
if (CStaticClass.GetDevicePhotoelectric(CorrelInfo[6]) == 1)//1<><31><EFBFBD>л<EFBFBD><D0BB><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
if (CONTROLTASKTYPE == 2)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>վ̨<D5BE>ͳ<EFBFBD>ָ<EFBFBD><D6B8>ʱ<EFBFBD>ж<EFBFBD>1<EFBFBD>л<EFBFBD><D0BB><EFBFBD>2<EFBFBD><32>λ<EFBFBD><CEBB><EFBFBD>л<EFBFBD>״̬
|
|||
|
{
|
|||
|
if ((CStaticClass.GetDevicePhotoelectric(CorrelInfo[5]) == 0) && (CStaticClass.GetDevicePhotoelectric(CorrelInfo[6]) == 0))
|
|||
|
{
|
|||
|
return false ;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
#region <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if ((_AheadDetect != "") && (_AheadDetect != null))
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
char[] cc = new char[1];
|
|||
|
cc[0] = ';';
|
|||
|
string[] AheadDetect = _AheadDetect.Split(cc);
|
|||
|
char[] dd = new char[1] { '.' };//20101118
|
|||
|
string[] DS;
|
|||
|
|
|||
|
//ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0B9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IGetDeviceState<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//IGetDeviceState GDS;
|
|||
|
int s = 0;
|
|||
|
//int[] sss;
|
|||
|
int fs = 1;
|
|||
|
//int[] fsss;
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>翪<EFBFBD><E7BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
for (int i = AheadDetect.GetLowerBound(0); i <= AheadDetect.GetUpperBound(0); i++)
|
|||
|
{
|
|||
|
if (AheadDetect[i].Trim().Length <= 0) continue;
|
|||
|
if (AheadDetect[i].Trim().Substring(0, 1).ToUpper() == "H")//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>̽<EFBFBD><CCBD>
|
|||
|
{
|
|||
|
DeviceKind = ccf.GetDeviceKindIdx(Convert.ToInt32(AheadDetect[i].Trim().Substring(1)));
|
|||
|
if (DeviceKind == 9)
|
|||
|
{//<2F><>̨<EFBFBD><CCA8>Ҫ<EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ȡ
|
|||
|
if (dboM.ExceSQL("SELECT FID FROM T_ITEMDEVICESTATION WHERE (FCODE = '" + AheadDetect[i].Trim().Substring(1) + "') AND (FSTATUS = '1002')").Tables[0].DefaultView.Count > 0)
|
|||
|
{
|
|||
|
fs = fs & 1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
fs = fs & 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ȡ
|
|||
|
dvdv = dbo.ExceSQL("SELECT F_DeviceIndex, F_HaveGoods FROM T_Base_Device where F_DeviceIndex=" +
|
|||
|
Convert.ToInt32(AheadDetect[i].Trim().Substring(1)) + "").Tables[0].DefaultView;
|
|||
|
if (dvdv.Count > 0)
|
|||
|
{
|
|||
|
fs = fs & Convert.ToInt32(dvdv[0]["F_HaveGoods"]);
|
|||
|
}
|
|||
|
}
|
|||
|
continue;
|
|||
|
}
|
|||
|
if (AheadDetect[i].Trim().Substring(0, 1).ToUpper() == "N")//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>̽<EFBFBD><CCBD>
|
|||
|
{
|
|||
|
DeviceKind = ccf.GetDeviceKindIdx(Convert.ToInt32(AheadDetect[i].Trim().Substring(1)));
|
|||
|
if (DeviceKind == 9)
|
|||
|
{//<2F><>̨<EFBFBD><CCA8>Ҫ<EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ȡ;20101028<32><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD>̨<EFBFBD><CCA8>վ̨<D5BE>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//if (dboM.ExceSQL("SELECT FID FROM T_ITEMDEVICESTATION WHERE (FCODE = '" + AheadDetect[i].Trim().Substring(1) + "') AND (FSTATUS = '1002')").Tables[0].DefaultView.Count > 0)
|
|||
|
//{
|
|||
|
// fs = fs & 1;
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// fs = fs & 0;
|
|||
|
//}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ȡ
|
|||
|
dvdv = dbo.ExceSQL("SELECT F_DeviceIndex, F_HaveGoods FROM T_Base_Device where F_DeviceIndex=" +
|
|||
|
Convert.ToInt32(AheadDetect[i].Trim().Substring(1)) + "").Tables[0].DefaultView;
|
|||
|
if (dvdv.Count > 0)
|
|||
|
{
|
|||
|
s = s + Convert.ToInt32(dvdv[0]["F_HaveGoods"]);
|
|||
|
}
|
|||
|
}
|
|||
|
continue;
|
|||
|
}
|
|||
|
//20090803<30><33><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
|
|||
|
if (AheadDetect[i].Trim().Substring(0, 1).ToUpper() == "I")//<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
|
|||
|
{
|
|||
|
States = CStaticClass.GetDeviceState(Convert.ToInt32(AheadDetect[i].Trim().Substring(1)));
|
|||
|
|
|||
|
if (States != null)
|
|||
|
{
|
|||
|
s = s + States[1];
|
|||
|
}
|
|||
|
continue;
|
|||
|
}
|
|||
|
|
|||
|
#region 20101118<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>źţ<C5BA>D-12001.0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>12001<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D12001.1<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>12001<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//D-12001.2<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>12001<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D12001.3<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>12001<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ͵<EFBFBD>λ<EFBFBD><EFBFBD>
|
|||
|
if (AheadDetect[i].Trim().Substring(0, 1).ToUpper() == "D")
|
|||
|
{
|
|||
|
DS = AheadDetect[i].Trim().Substring(1).Split(dd);
|
|||
|
int devicebyte = 0; int devbit = 0;
|
|||
|
int.TryParse(DS[0], out devicebyte);
|
|||
|
int.TryParse(DS[1], out devbit);
|
|||
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>⸺<EFBFBD><E2B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>㿪<EFBFBD><E3BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ǰ<EFBFBD>ᣩ
|
|||
|
if (devicebyte < 0)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>ͨѶ<CDA8>ӿڻ<D3BF><DABB>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//GDS = CommModeCreate.CreateGetDeviceState(-Convert.ToInt32(AheadDetect[i]));+
|
|||
|
|
|||
|
//fsss = GDS.GetDeviceState(-Convert.ToInt32(AheadDetect[i]), Convert.ToInt32(dvD[0]["F_MonitorIndex"]));
|
|||
|
int fsn = CStaticClass.GetDevicePhotoelectric(-devicebyte, devbit);
|
|||
|
//if (fsss == null)
|
|||
|
//{
|
|||
|
// this._CControlError = GDS.CommLayerError;
|
|||
|
// return false;
|
|||
|
//}
|
|||
|
if (fsn == -1)//20101220
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
fs = fs & fsn;
|
|||
|
}
|
|||
|
else
|
|||
|
{//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ͨѶ<CDA8>ӿڻ<D3BF><DABB>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//GDS = CommModeCreate.CreateGetDeviceState(Convert.ToInt32(AheadDetect[i]));
|
|||
|
//sss = GDS.GetDeviceState(Convert.ToInt32(AheadDetect[i]), Convert.ToInt32(dvD[0]["F_MonitorIndex"]));
|
|||
|
int sssn = CStaticClass.GetDevicePhotoelectric(devicebyte, devbit);
|
|||
|
//if (sss == null)
|
|||
|
//{
|
|||
|
// this._CControlError = GDS.CommLayerError;
|
|||
|
// return false;
|
|||
|
//}
|
|||
|
if (sssn == -1)//20101220
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
s = s + sssn;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
if ((s == 0) && (fs == 1))
|
|||
|
{
|
|||
|
//if (CStaticClass.AGVAllowSingleFork == "0")//20100710
|
|||
|
//{
|
|||
|
// #region <20><>AGVȡ<56><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F1A3ACBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
|||
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>һ
|
|||
|
// string[] outstation = new string[4] { "2241", "2242", "3241", "3242" };
|
|||
|
// if ((Array.IndexOf(outstation, DeviceIdx.ToString()) >= 0) && (Model.CGeneralFunction.GetDoubleForkMonitorInfo(TaskIdx, DeviceIdx) == null))
|
|||
|
// {
|
|||
|
// if ((DeviceIdx % 2) == 0)
|
|||
|
// {
|
|||
|
// dvdv = dbo.ExceSQL("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE F_DeviceIndex = " + (DeviceIdx - 1) + " AND F_Status > 0").Tables[0].DefaultView;
|
|||
|
// if (dvdv.Count > 0)
|
|||
|
// {
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
// if (CStaticClass.GetDevicePhotoelectric(ccf.GetBindingDeviceIndexOut(DeviceIdx - 1)) == 1)
|
|||
|
// {
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// dvdv = dbo.ExceSQL("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE F_DeviceIndex = " + (DeviceIdx + 1) + " AND F_Status > 0").Tables[0].DefaultView;
|
|||
|
// if (dvdv.Count > 0)
|
|||
|
// {
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
// if (CStaticClass.GetDevicePhotoelectric(ccf.GetBindingDeviceIndexOut(DeviceIdx + 1)) == 1)
|
|||
|
// {
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
// #endregion
|
|||
|
//}
|
|||
|
//return true;//20101011
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>豸û<E8B1B8><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><E2BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//return true;//20101011
|
|||
|
|
|||
|
}
|
|||
|
#endregion
|
|||
|
//20101011
|
|||
|
#region ˫<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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ˫<EFBFBD>漫<EFBFBD><EFBFBD>λ
|
|||
|
if ((devinfo.DeviceKind == 1) && (devinfo.IfCorrelDoubleFork == "1") && (ccf.GetDeviceOrderFromMonitor(minMidx) == 4) && (CONTROLTASKTYPE == 1))
|
|||
|
{
|
|||
|
string[] CorrelInfo = ccf.GetCorrel_DeviceInfo(minMidx);
|
|||
|
if (CorrelInfo == null) return false;
|
|||
|
|
|||
|
string[] corrinfo=Model.CGeneralFunction.GetDoubleForkMonitorInfo(minMidx, devinfo.DeviceIndex);
|
|||
|
|
|||
|
if (corrinfo == null)
|
|||
|
{
|
|||
|
int IfCorrel = ccf.GetCorrel_DeviceIndex(minMidx);
|
|||
|
if (IfCorrel == 0)//<2F>Ѷ<EFBFBD><D1B6><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD>ж<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>20110108
|
|||
|
{
|
|||
|
|
|||
|
if (CStaticClass.GetDevicePhotoelectric(CorrelInfo[6]) != 0)
|
|||
|
{
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
//20110108
|
|||
|
dbo.ExecuteSql("update T_Monitor_Task set F_UseAwayFork='1' where F_ManageTASKKINDINDEX=" + mti + " and F_ManageTaskIndex=" + fid + "");
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set FUseAwayFork='1' where F_ManageTASKKINDINDEX=" + mti + " and FID=" + fid + "");
|
|||
|
|
|||
|
//<2F><><EFBFBD>漫<EFBFBD><EFBFBD>λ<EFBFBD>ж<EFBFBD>
|
|||
|
string ChangeForkCell = IfLimitCellChangeFork(minMidx);
|
|||
|
if (ChangeForkCell != "-")//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
ChangeEndCellCode(minMidx, ChangeForkCell, devinfo.DeviceIndex);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#region ˫<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 if (IfCorrel> 0)
|
|||
|
{
|
|||
|
//string[] CorrelInfo = ccf.GetCorrel_DeviceInfo(minMidx);
|
|||
|
//if (CorrelInfo == null) return false;
|
|||
|
|
|||
|
if(CStaticClass.GetDevicePhotoelectric(int.Parse(CorrelInfo[5])) == 1)
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT F_TaskIndex,F_DeviceIndex,F_Remark FROM T_Base_PLC_Ask WHERE (F_TaskIndex =" + TaskIdx + ") AND (F_Remark <> '') AND (F_DeviceIndex=" + CorrelInfo[0] + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
CorrelInfo = ccf.GetCorrelOther_DeviceInfo(Convert.ToInt32(CorrelInfo[8]));//<2F><><EFBFBD><EFBFBD>վ̨<D5BE><CCA8><EFBFBD><EFBFBD>Ϣ
|
|||
|
//(Convert.ToDateTime(dv[0]["F_Remark"]).AddSeconds(Convert.ToInt32(CStaticClass.DoubleForkWaitTime)) > DateTime.Now)
|
|||
|
if ((GetIOControlStatus(TaskIdx) != Model.CGeneralFunction.TASKSINGLEFORKRUN)
|
|||
|
|| ((CStaticClass.GetDevicePhotoelectric(int.Parse(CorrelInfo[5])) == 1)) && (CStaticClass.GetDeviceRunState(int.Parse(CorrelInfo[4])) == 0))//20110106
|
|||
|
{//û<><C3BB>ʱ<EFBFBD><CAB1><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if ((CStaticClass.GetDevicePhotoelectric(int.Parse(CorrelInfo[5])) == 1)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
&& (CStaticClass.GetDeviceRunState(int.Parse(CorrelInfo[4])) == 0))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//20110106
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ұ<EFBFBD><D2B1>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int mfid = GetEnableDoubleForkManageTask(1,devinfo.DeviceIndex, int.Parse(CorrelInfo[0]), fid);
|
|||
|
if (mfid > 0)
|
|||
|
{
|
|||
|
#region ˫<EFBFBD><EFBFBD>ͬΪǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>
|
|||
|
if ((IfInSameLimitX(fid, mfid,mti) == true) && (mti == 1))
|
|||
|
{
|
|||
|
dboM.ExecuteSql(" update IO_CONTROL set CONTROL_STATUS=" + Model.CGeneralFunction.TASKSINGLEFORKRUN + " WHERE (CONTROL_ID = " + fid + ")");
|
|||
|
dboM.ExecuteSql(" update IO_CONTROL set CONTROL_STATUS=" + Model.CGeneralFunction.TASKSINGLEFORKRUN + " WHERE (CONTROL_ID = " + mfid + ")");
|
|||
|
return true;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set F_RELATIVECONTORLID=" + mfid + " where F_ManageTaskKindIndex=" + mti + " and FID=" + fid);
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set F_RELATIVECONTORLID=" + fid + " where F_ManageTaskKindIndex=" + mti + " and FID=" + mfid);
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>߹<EFBFBD><DFB9><EFBFBD>ǿ<EFBFBD><C7BF>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (CStaticClass.GetDeviceRunState(int.Parse(CorrelInfo[4])) == 1)//20110106
|
|||
|
{//<2F><><EFBFBD>ڶԵ<DAB6><D4B5><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>¼<EFBFBD>ʱ
|
|||
|
string dtime = DateTime.Now.ToString("u");
|
|||
|
dtime = dtime.Substring(0, dtime.Length - 1);
|
|||
|
dbo.ExecuteSql("update T_Base_PLC_Ask set F_Remark='" + dtime + "' where (F_DeviceIndex=" + int.Parse(CorrelInfo[0]) + ")");
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{//<2F><>ʱ<EFBFBD><CAB1><EFBFBD>߹<EFBFBD><DFB9><EFBFBD>ǿ<EFBFBD><C7BF>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
dbo.ExecuteSql("update T_Base_PLC_Ask set F_TaskIndex=0,F_Remark='' where (F_DeviceIndex=" + int.Parse(CorrelInfo[0]) + ")");
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT F_TaskIndex,F_DeviceIndex,F_Remark FROM T_Base_PLC_Ask WHERE (F_TaskIndex =0) AND (F_Remark = '') AND (F_DeviceIndex=" + int.Parse(CorrelInfo[0]) + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
string dtime = DateTime.Now.ToString("u");
|
|||
|
dtime = dtime.Substring(0, dtime.Length - 1);
|
|||
|
dbo.ExecuteSql("update T_Base_PLC_Ask set F_TaskIndex=" + TaskIdx + ",F_Remark='" + dtime + "' where (F_DeviceIndex=" + int.Parse(CorrelInfo[0]) + ")");
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
#region ˫<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><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>Ϊȡ<CEAA><C8A1><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD>浹<EFBFBD><E6B5B9><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>λ---<2D><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>λ<EFBFBD><CEBB>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (CStaticClass.GetDevicePhotoelectric(CorrelInfo[6]) == 0)//˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ж<EFBFBD>1<EFBFBD><31><EFBFBD>л<EFBFBD>20110108
|
|||
|
{
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
string ChangeForkCell = IfLimitCellChangeFork(minMidx);
|
|||
|
|
|||
|
#endregion
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
string ChangeForkCell1 = IfLimitCellChangeFork(int.Parse(corrinfo[0]));
|
|||
|
|
|||
|
#endregion
|
|||
|
if ((ChangeForkCell != "-") && (ChangeForkCell1 != "-"))
|
|||
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<DEB8>λ
|
|||
|
|
|||
|
}
|
|||
|
else if ((ChangeForkCell != "-")&& (ChangeForkCell1 == "-"))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
ChangeEndCellCode(minMidx, ChangeForkCell, devinfo.DeviceIndex);
|
|||
|
}
|
|||
|
else if ((ChangeForkCell1 != "-") && (ChangeForkCell == "-"))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
ChangeEndCellCode(int.Parse(corrinfo[0]), ChangeForkCell1, devinfo.DeviceIndex);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region ˫<EFBFBD><EFBFBD>AGV<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>Ƿ<EFBFBD>Ϊ˫<EFBFBD>漫<EFBFBD><EFBFBD>λ
|
|||
|
|
|||
|
//if ((devinfo.DeviceKind == 6) && (devinfo.IfCorrelDoubleFork == "1") && (ccf.GetDeviceOrderFromMonitor(minMidx) == 1) && (CONTROLTASKTYPE == 1))
|
|||
|
//{
|
|||
|
|
|||
|
// string[] corrinfo = Model.CGeneralFunction.GetDoubleForkMonitorInfo(minMidx, devinfo.DeviceIndex);
|
|||
|
|
|||
|
// if (corrinfo == null)
|
|||
|
// {
|
|||
|
// #region ˫<><CBAB><EFBFBD>Ե<EFBFBD>վ̨<D5BE>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ˵ȴ<CBB5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD>漫<EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// if (GetIOControlStatus(TaskIdx) != Model.CGeneralFunction.TASKSINGLEFORKRUN)
|
|||
|
// {//ûǿ<C3BB>Ƶ<EFBFBD><C6B5><EFBFBD>ִ<EFBFBD><D6B4>
|
|||
|
|
|||
|
// //<2F><><EFBFBD>ҹ<EFBFBD><D2B9><EFBFBD>վ̨
|
|||
|
// int agvCorrel = GetAGVCorrelIndex(TaskIdx);
|
|||
|
// if (agvCorrel != -1)
|
|||
|
// {
|
|||
|
// //<2F><><EFBFBD>ұ<EFBFBD><D2B1>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// int mfid = GetAGVEnableDoubleForkManageTask(1,agvCorrel);
|
|||
|
// if (mfid > 0)
|
|||
|
// {
|
|||
|
// #region ˫<><CBAB>ͬΪǰ<CEAA><C7B0><EFBFBD><EFBFBD><DEBA>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
|||
|
// if ((IfInSameLimitX(fid, mfid,mti) == true) && (mti==1))
|
|||
|
// {
|
|||
|
// dboM.ExecuteSql(" update IO_CONTROL set CONTROL_STATUS="+Model.CGeneralFunction.TASKSINGLEFORKRUN+" WHERE (CONTROL_ID = "+fid+")");
|
|||
|
// dboM.ExecuteSql(" update IO_CONTROL set CONTROL_STATUS=" + Model.CGeneralFunction.TASKSINGLEFORKRUN + " WHERE (CONTROL_ID = " + mfid + ")");
|
|||
|
// return true;
|
|||
|
// }
|
|||
|
// #endregion
|
|||
|
// dbo.ExecuteSql("update T_Manage_Task set F_RELATIVECONTORLID=" + mfid + " where F_ManageTaskKindIndex=" + mti + " and FID=" + fid);
|
|||
|
// dbo.ExecuteSql("update T_Manage_Task set F_RELATIVECONTORLID=" + fid + " where F_ManageTaskKindIndex=" + mti + " and FID=" + mfid);
|
|||
|
// return true;
|
|||
|
// }
|
|||
|
|
|||
|
// else
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// return true ;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {//<2F><><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// return true;
|
|||
|
|
|||
|
// }
|
|||
|
|
|||
|
|
|||
|
// #endregion
|
|||
|
// }
|
|||
|
|
|||
|
//}
|
|||
|
#endregion
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#region ˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
int StartDevice = _StartDevice;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int EndDevice = _EndDevice;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
int DeviceOrder = _DeviceOrder;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
int END = 12604;
|
|||
|
string sqlstr = string.Empty;
|
|||
|
|
|||
|
#region <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><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>
|
|||
|
if (DeviceIdx == 11005 && DeviceOrder == 4 && CONTROLTASKTYPE == 2 && EndDevice == END)//
|
|||
|
{ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
string checkdevice = "12603;12604";
|
|||
|
int freecount = ccf.GetTransDeviceGoodsCounts(checkdevice);
|
|||
|
if (freecount > 0)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
sqlstr = string.Format("SELECT FID FROM T_Manage_Task WHERE FCONTROLTASKTYPE=1 and FSTARTDEVICE ={0}", END);
|
|||
|
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
#endregion
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ж<EFBFBD>
|
|||
|
if (DeviceIdx == END && DeviceOrder == 6 && CONTROLTASKTYPE == 1)//
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
|||
|
sqlstr = string.Format("SELECT FID FROM T_Manage_Task WHERE FCONTROLTASKTYPE=2 and FSTATUS > 0 and FENDDEVICE ={0}", END);
|
|||
|
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
#endregion
|
|||
|
#endregion
|
|||
|
|
|||
|
return true;//20101011
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dv = null;
|
|||
|
dt = null;
|
|||
|
dvdv = null;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
/// </summary>
|
|||
|
/// <param name="minMidx"><3E>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
public bool GetSendInfo(int minMidx)
|
|||
|
{
|
|||
|
DataView dvD ;
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
string strD = "";
|
|||
|
strD = "SELECT F_DeviceKindIndex,F_NumParam1,F_NumParam2,F_NumParam3,F_NumParam4," +
|
|||
|
"F_NumParam5,F_NumParam6,F_TxtParam,F_AheadDetect,F_ManTaskReserve,F_LockedState," +
|
|||
|
"F_Associate,F_SerialNumber,F_RouteID,F_DeviceIndex,F_DeviceCommandIndex," +
|
|||
|
"F_MonitorIndex,F_ManageTaskIndex,F_ManageTaskKindIndex,F_OutsideAltDevice," +
|
|||
|
"F_InsideAltDevice,F_StartDevice,F_EndDevice,F_RouteKind,F_CorrelDoubleFork,F_UseAwayFork,F_AgvNo " +
|
|||
|
" FROM V_Monitor_Route_Device where F_MonitorIndex=" + minMidx;
|
|||
|
dvD = dbo.ExceSQL(strD).Tables[0].DefaultView;
|
|||
|
|
|||
|
if (dvD.Count > 0)
|
|||
|
{
|
|||
|
if (dvD[0]["F_AheadDetect"] != DBNull.Value)
|
|||
|
{
|
|||
|
_AheadDetect = dvD[0]["F_AheadDetect"].ToString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_AheadDetect = "";
|
|||
|
}
|
|||
|
if (dvD[0]["F_ManTaskReserve"] != DBNull.Value)
|
|||
|
{
|
|||
|
_ManTaskReserve = Convert.ToInt32(dvD[0]["F_ManTaskReserve"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_ManTaskReserve = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_Associate"] != DBNull.Value)
|
|||
|
{
|
|||
|
_Associate = Convert.ToInt32(dvD[0]["F_Associate"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_Associate = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_LockedState"] != DBNull.Value)
|
|||
|
{
|
|||
|
_LockedState = Convert.ToInt32(dvD[0]["F_LockedState"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_LockedState = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_NumParam1"] != DBNull.Value)
|
|||
|
{
|
|||
|
_NumParam1 = Convert.ToInt32(dvD[0]["F_NumParam1"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_NumParam1 = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_NumParam2"] != DBNull.Value)
|
|||
|
{
|
|||
|
_NumParam2 = Convert.ToInt32(dvD[0]["F_NumParam2"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_NumParam2 = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_NumParam3"] != DBNull.Value)
|
|||
|
{
|
|||
|
_NumParam3 = Convert.ToInt32(dvD[0]["F_NumParam3"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_NumParam3 = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_NumParam4"] != DBNull.Value)
|
|||
|
{
|
|||
|
_NumParam4 = Convert.ToInt32(dvD[0]["F_NumParam4"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_NumParam4 = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_NumParam5"] != DBNull.Value)
|
|||
|
{
|
|||
|
_NumParam5 = Convert.ToInt32(dvD[0]["F_NumParam5"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_NumParam5 = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_NumParam6"] != DBNull.Value)
|
|||
|
{
|
|||
|
_NumParam6 = Convert.ToInt32(dvD[0]["F_NumParam6"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_NumParam6 = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_TxtParam"] != DBNull.Value)
|
|||
|
{
|
|||
|
_TxtParam = dvD[0]["F_TxtParam"].ToString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_TxtParam = "-";
|
|||
|
}
|
|||
|
_serialNumber = Convert.ToInt32(dvD[0]["F_SerialNumber"]);
|
|||
|
_routeID = Convert.ToInt32(dvD[0]["F_RouteID"]);
|
|||
|
_DeviceIdx = Convert.ToInt32(dvD[0]["F_DeviceIndex"]);
|
|||
|
_DeviceOrder = Convert.ToInt32(dvD[0]["F_DeviceCommandIndex"]);
|
|||
|
_ManageKindIdx = Convert.ToInt32(dvD[0]["F_ManageTaskKindIndex"]);
|
|||
|
_ManageTaskIdx = Convert.ToInt32(dvD[0]["F_ManageTaskIndex"]);
|
|||
|
_DeviceKind = Convert.ToInt32(dvD[0]["F_DeviceKindIndex"]);
|
|||
|
if (dvD[0]["F_OutsideAltDevice"] != DBNull.Value)
|
|||
|
{
|
|||
|
_OutsideAltDevice = Convert.ToInt32(dvD[0]["F_OutsideAltDevice"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_OutsideAltDevice = 0;
|
|||
|
}
|
|||
|
if (dvD[0]["F_InsideAltDevice"] != DBNull.Value)
|
|||
|
{
|
|||
|
_InsideAltDevice = Convert.ToInt32(dvD[0]["F_InsideAltDevice"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_InsideAltDevice = 0;
|
|||
|
}
|
|||
|
_StartDevice = Convert.ToInt32(dvD[0]["F_StartDevice"]);
|
|||
|
_EndDevice = Convert.ToInt32(dvD[0]["F_EndDevice"]);
|
|||
|
_RouteKind = Convert.ToInt32(dvD[0]["F_RouteKind"]);
|
|||
|
if (dvD[0]["F_CorrelDoubleFork"] != DBNull.Value)
|
|||
|
{
|
|||
|
_CorrelDoubleFork = Convert.ToInt32(dvD[0]["F_CorrelDoubleFork"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_CorrelDoubleFork = -1;
|
|||
|
}
|
|||
|
if (dvD[0]["F_AgvNo"] != DBNull.Value)
|
|||
|
{
|
|||
|
_AgvNo = Convert.ToInt32(dvD[0]["F_AgvNo"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_AgvNo = 65535;
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dvD = null;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="MonitorIndex"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool SendMonitorTask(int MonitorIndex)
|
|||
|
{
|
|||
|
|
|||
|
lock (thisLock)
|
|||
|
{
|
|||
|
char[] sep = new char[1] { '-' };
|
|||
|
int msgIdx = 0;//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
bool sendok;
|
|||
|
//string aa222 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|||
|
#region ˫<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><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰλ<EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸ָ<EFBFBD><EFBFBD>
|
|||
|
MonitorIndex = GetDoubleForkMinRouteTask(MonitorIndex);
|
|||
|
#endregion
|
|||
|
//string aa22 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|||
|
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Ϣ
|
|||
|
// 20121014
|
|||
|
if (GetSendInfo(MonitorIndex) == false) { return false; }
|
|||
|
|
|||
|
#region <EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
if (ccf.GetManageTaskKindIndexFromMonitor(MonitorIndex) == 4)
|
|||
|
{
|
|||
|
//20120915
|
|||
|
// if (AheadDetectOK(MonitorIndex, ccf.GetBeDetectedDevices(_DeviceIdx)) == false)
|
|||
|
if (AheadDetectOK(MonitorIndex, ccf.GetBeDetectedDevices(_DeviceIdx)) == false) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
//CStaticClass.MessageIndex++;
|
|||
|
CStaticClass.MessageIndex = 1;
|
|||
|
msgIdx = (CStaticClass.MessageIndex);
|
|||
|
|
|||
|
sdo = CommModeCreate.CreateSendDeviceOrder(_DeviceIdx);
|
|||
|
|
|||
|
int[] gc = new int[6] {_NumParam2, _NumParam3, _NumParam1, _NumParam5, _NumParam6, _NumParam4 };
|
|||
|
|
|||
|
if ((_DeviceKind == 1) || (_DeviceKind == 6))
|
|||
|
{
|
|||
|
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder,
|
|||
|
_DeviceIdx, gc[0], gc[1], gc[2], gc[3], gc[4], gc[5]);
|
|||
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("send", "1111", _DeviceIdx.ToString(), "------");
|
|||
|
|
|||
|
}
|
|||
|
else if (_DeviceKind == 4)
|
|||
|
{
|
|||
|
if (ccf.NeedOptimize(_DeviceIdx) == true)
|
|||
|
{
|
|||
|
ccf.InsertMonitorOptimizeChildTask(MonitorIndex);
|
|||
|
sendok = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, gc[2]);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, gc[5]);
|
|||
|
}
|
|||
|
if (sendok == false)
|
|||
|
{
|
|||
|
if (sdo.CommLayerError != null)
|
|||
|
{
|
|||
|
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(sdo.CommLayerError) < 0)
|
|||
|
{
|
|||
|
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", sdo.CommLayerError, true);
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//////////////////////////
|
|||
|
ccf.SendOrderSuccess(_ManageKindIdx, _ManageTaskIdx, MonitorIndex, _DeviceIdx, _routeID);
|
|||
|
#region ˫<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>ɹ<EFBFBD>
|
|||
|
//20100323
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(_DeviceIdx);
|
|||
|
if (devinfo.IfCorrelDoubleFork == "1")
|
|||
|
{
|
|||
|
if (Model.CGeneralFunction.DoubleForkIfSync(MonitorIndex, _DeviceIdx, _DeviceKind) == true)
|
|||
|
{
|
|||
|
string[] df = Model.CGeneralFunction.GetDoubleForkMonitorInfo(MonitorIndex, _DeviceIdx);
|
|||
|
if (df != null)
|
|||
|
{
|
|||
|
ccf.SendOrderSuccess(ccf.GetManageTaskKindIndexFromMonitor(Convert.ToInt32(df[0])), ccf.GetManageTaskIndexfromMonitor(Convert.ToInt32(df[0])), Convert.ToInt32(df[0]), Convert.ToInt32(df[2]), Convert.ToInt32(df[3]));
|
|||
|
//dbo.ExceSQL("update T_Monitor_Task set F_CorrelDoubleFork=" + df[0] + " where F_MonitorIndex=" + MonitorIndex + "");
|
|||
|
//dbo.ExceSQL("update T_Monitor_Task set F_CorrelDoubleFork=" + MonitorIndex + " where F_MonitorIndex=" + df[0] + "");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region <EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(taskkind == 1<EFBFBD><EFBFBD>2)
|
|||
|
//(taskkind == 1<><31>2)<29>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
///////////////////////////////////////
|
|||
|
//2--6Ӧ<36><D3A6><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
///////////////////////////////////////
|
|||
|
/////////////////////
|
|||
|
//20100208
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGV<EFBFBD><EFBFBD><EFBFBD>䳵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#endregion
|
|||
|
////////////////////
|
|||
|
|
|||
|
|
|||
|
//2<><32><EFBFBD><EFBFBD>ȡÿ<C8A1><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<DDB5>һ<EFBFBD><D2BB><EFBFBD>豸״̬
|
|||
|
//string aa221 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|||
|
|
|||
|
if (GetFirstDeviceIFLocked(MonitorIndex, true) == false)//û<>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
//7<><37><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
//CStaticClass.MessageIndex++;
|
|||
|
CStaticClass.MessageIndex = 1;
|
|||
|
msgIdx = (CStaticClass.MessageIndex);
|
|||
|
sdo = CommModeCreate.CreateSendDeviceOrder(_DeviceIdx);
|
|||
|
//<2F>ж<EFBFBD><D0B6>豸<EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>RGV<47>ͣ<EFBFBD><CDA3>ǣ<EFBFBD>
|
|||
|
int[] gc = new int[6] { _NumParam2, _NumParam3, _NumParam1, _NumParam5, _NumParam6, _NumParam4 };//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (gc == null)
|
|||
|
{
|
|||
|
this._CControlError += "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>꣡";
|
|||
|
return false;
|
|||
|
}
|
|||
|
if ((_DeviceKind == 1) || (_DeviceKind == 6))
|
|||
|
{
|
|||
|
|
|||
|
//1<><31><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>RGV<47><56>6<EFBFBD><36>AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>F_NeedOptimize='1'<27><>
|
|||
|
//ֱ<><D6B1>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T_Monitor_Task_Child<6C><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (ccf.NeedOptimize(_DeviceIdx) == true)
|
|||
|
{
|
|||
|
ccf.InsertMonitorOptimizeChildTask(MonitorIndex);
|
|||
|
sendok = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder,
|
|||
|
_DeviceIdx, gc[0], gc[1], gc[2], gc[3], gc[4], gc[5]);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
else if (_DeviceKind == 4) // RGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (ccf.NeedOptimize(_DeviceIdx) == true)
|
|||
|
{
|
|||
|
ccf.InsertMonitorOptimizeChildTask(MonitorIndex);
|
|||
|
sendok = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, gc[2]);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, gc[5]); // <20><><EFBFBD>ͻ<EFBFBD><CDBB>ķ<EFBFBD><C4B7><EFBFBD>ָ<EFBFBD><D6B8> _NumParam4<6D><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾĿ<CABE><C4BF>λ<EFBFBD><CEBB>
|
|||
|
if (_DeviceOrder == 7 || _DeviceOrder == 8)
|
|||
|
{
|
|||
|
// cgs.ActionComplete(_DeviceIdx, MonitorIndex, 1);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (sendok == false)
|
|||
|
{
|
|||
|
if (sdo.CommLayerError != null)
|
|||
|
{
|
|||
|
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(sdo.CommLayerError) < 0)
|
|||
|
{
|
|||
|
|
|||
|
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", sdo.CommLayerError, true);
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
//////////////////////////
|
|||
|
dbo.ExecuteSql("update T_Monitor_Task set F_SendFlag='1' where F_MonitorIndex=" + MonitorIndex);//20100905ֻ<35>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ccf.SendOrderSuccess(_ManageKindIdx, _ManageTaskIdx, MonitorIndex, _DeviceIdx, _routeID);
|
|||
|
#region ˫<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>ɹ<EFBFBD>
|
|||
|
//20100323
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(_DeviceIdx);
|
|||
|
if (devinfo.IfCorrelDoubleFork == "1")
|
|||
|
{
|
|||
|
if (Model.CGeneralFunction.DoubleForkIfSync(MonitorIndex, _DeviceIdx, _DeviceKind) == true)
|
|||
|
{
|
|||
|
string[] df = Model.CGeneralFunction.GetDoubleForkMonitorInfo(MonitorIndex, _DeviceIdx);
|
|||
|
if (df != null)
|
|||
|
{
|
|||
|
ccf.SendOrderSuccess(ccf.GetManageTaskKindIndexFromMonitor(Convert.ToInt32(df[0])), ccf.GetManageTaskIndexfromMonitor(Convert.ToInt32(df[0])), Convert.ToInt32(df[0]), Convert.ToInt32(df[2]), Convert.ToInt32(df[3]));
|
|||
|
//dbo.ExceSQL("update T_Monitor_Task set F_CorrelDoubleFork=" + df[0] + " where F_MonitorIndex=" + MonitorIndex + "");
|
|||
|
//dbo.ExceSQL("update T_Monitor_Task set F_CorrelDoubleFork=" + MonitorIndex + " where F_MonitorIndex=" + df[0] + "");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
int GetDeviceFromMonitor(int monitorIndex)
|
|||
|
{
|
|||
|
DataView dv = dbo.ExceSQL("SELECT F_MonitorIndex, F_DeviceIndex FROM T_Monitor_Task WHERE (F_MonitorIndex = " + monitorIndex + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
return Convert.ToInt32(dv[0]["F_DeviceIndex"]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD>õ<EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>վ̨
|
|||
|
/// </summary>
|
|||
|
/// <param name="manageTaskIdx"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="manageKindIdx"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
bool GetUsableDestination(int manageTaskIdx,int manageKindIdx )
|
|||
|
{
|
|||
|
//20100610<31><30><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD><D9B5>յ<EFBFBD><D5B5>豸
|
|||
|
Dictionary<int, int> advDev=new Dictionary<int,int>();
|
|||
|
object ob;
|
|||
|
|
|||
|
|
|||
|
DataView dv = dbo.ExceSQL("SELECT * FROM T_Manage_Task WHERE (FID = " + manageTaskIdx + ") AND (F_ManageTaskKindIndex = " + manageKindIdx + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count <= 0)
|
|||
|
{
|
|||
|
return false ;
|
|||
|
}
|
|||
|
DataRowView dr = dv[0];
|
|||
|
|
|||
|
//20091107
|
|||
|
DataView dvIO = dboM.ExceSQL("select CONTROL_ID, CONTROL_STATUS from IO_Control where (CONTROL_ID = " + Convert.ToInt32(dr["FID"]) + ") AND ((CONTROL_STATUS=" + Model.CGeneralFunction.TASKALTERROUTEAPPLY + ") or (CONTROL_STATUS=" + Model.CGeneralFunction.TASKALTERROUTEREPLY + "))").Tables[0].DefaultView;
|
|||
|
if (dvIO.Count <= 0)
|
|||
|
{
|
|||
|
//ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<DEB8><C4B5><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
if (dr["F_ManageTaskKindIndex"].ToString() != "1") return false;
|
|||
|
string sql = "";
|
|||
|
string adviceDev = "";
|
|||
|
DataTable dtd = dbo.ExceSQL("SELECT F_TASKKIND, F_DESTINATION FROM T_Base_Destination WHERE (F_TASKKIND = " + dr["FCONTROLTASKTYPE"] + ") and (F_AbendStation=1) and (F_DESTINATION=" + dr["FENDDEVICE"] + ")").Tables[0];
|
|||
|
if (dtd.Rows.Count > 0)//ԭ<><D4AD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>Ӧ<EFBFBD><D3A6>վ̨<D5BE><CCA8>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ̨<D5BE><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ı<EFBFBD>
|
|||
|
{
|
|||
|
adviceDev = dtd.Rows[0]["F_DESTINATION"].ToString();
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD><CEBB>
|
|||
|
DataTable dt = dbo.ExceSQL("SELECT F_TASKKIND, F_DESTINATION FROM T_Base_Destination WHERE (F_TASKKIND = " + dr["FCONTROLTASKTYPE"] + ") and (F_DESTINATION <>" + dr["FENDDEVICE"] + ") and (F_AbendStation=0)").Tables[0];
|
|||
|
if (dt.Rows.Count > 0)
|
|||
|
{
|
|||
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|||
|
{
|
|||
|
if (CDisassembleTask.MinRouteID(Convert.ToInt32(dr["FSTARTDEVICE"]), Convert.ToInt32(dt.Rows[i]["F_DESTINATION"]), dr["FUseAwayFork"]) != -1)
|
|||
|
{
|
|||
|
|
|||
|
//20100610ͳ<30>Ƶ<EFBFBD><C6B5>յ<EFBFBD><D5B5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ob = dbo.GetSingle("SELECT count(FENDDEVICE) as counts FROM T_Manage_Task where FENDDEVICE='" + dt.Rows[i]["F_DESTINATION"] + "' and fstatus>0");
|
|||
|
advDev.Add(Convert.ToInt32(dt.Rows[i]["F_DESTINATION"]),Convert.ToInt32(ob));
|
|||
|
|
|||
|
//20100610 break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (advDev.Count == 0)//20100610
|
|||
|
{
|
|||
|
|
|||
|
return false;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{//20100610
|
|||
|
int mincount=9999;
|
|||
|
foreach (int aaa in advDev.Keys)
|
|||
|
{
|
|||
|
if (advDev[aaa] < mincount)
|
|||
|
{
|
|||
|
mincount = advDev[aaa];
|
|||
|
adviceDev = aaa.ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
if (adviceDev == "")
|
|||
|
{
|
|||
|
|
|||
|
return false;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{//20100610
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//DataView DV = dboM.ExceSQL("select IO_CONTROL_APPLY_SEQ.NEXTVAL FROM DUAL").Tables[0].DefaultView;
|
|||
|
//20101108int fid = dboM.GetManageTableIndex("IO_CONTROL_APPLY");
|
|||
|
string dtime = DateTime.Now.ToString("u");
|
|||
|
dtime = dtime.Substring(0, dtime.Length - 1);
|
|||
|
//20091128
|
|||
|
dboM.TransBegin();
|
|||
|
try
|
|||
|
{
|
|||
|
dboM.ExceSQL(" update IO_CONTROL set CONTROL_STATUS="+Model.CGeneralFunction.TASKALTERROUTEAPPLY+" where CONTROL_ID=" + dr["FID"] + "");
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>//20101108CONTROL_APPLY_ID, " + fid + ",
|
|||
|
sql = "INSERT INTO IO_CONTROL_APPLY ( CONTROL_ID,CONTROL_APPLY_TYPE,WAREHOUSE_CODE, STOCK_BARCODE, DEVICE_CODE, APPLY_TASK_STATUS, CREATE_TIME, " +
|
|||
|
" CONTROL_APPLY_REMARK)" +
|
|||
|
"VALUES (" + dr["FID"] + ",2,'" + dr["FSTARTWAREHOUSE"] + "','" + dr["FPALLETBARCODE"] + "','" + adviceDev + "',0,'" + dtime + "',null)";
|
|||
|
|
|||
|
dboM.ExceSQL(sql);
|
|||
|
dboM.TransCommit();
|
|||
|
//<2F><>ManageTaskIdx<64><78>ManageKindIdx <20>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
dbo.ExceSQL("UPDATE T_Monitor_Task SET F_Status = 3 WHERE (F_ManageTaskIndex = " + manageTaskIdx + ") AND (F_ManageTASKKINDINDEX =" + manageKindIdx + ")");
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
_CControlError = "<22><><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message;
|
|||
|
dboM.TransRollback();
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><>ȡRGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>վ̨
|
|||
|
/// </summary>
|
|||
|
/// <param name="manageTaskIdx"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="manageKindIdx"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="IfUseNegativeDevice"><3E>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>豸ǰ<E8B1B8><C7B0><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGV<47><56><EFBFBD>߷<EFBFBD><DFB7><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
bool GetRGVIdleDestination(int manageTaskIdx, int manageKindIdx,int RGVGateDevice, bool IfUseNegativeDevice)
|
|||
|
{
|
|||
|
|
|||
|
//20100610 t_Base_device <20><>F_UsableEndDevice<63>ֶδ<D6B6><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>Եȵ<D4B5><C8B5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>飨<EFBFBD>ԷֺŸ<D6BA><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ڵ<EFBFBD>ǰ<EFBFBD>豸ǰ<E8B1B8>棨<EFBFBD><E6A3A8><EFBFBD><EFBFBD>RGV<47><56><EFBFBD>߷<EFBFBD><DFB7><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>RGVȡ<56><C8A1><EFBFBD>͵<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʱʹ<CAB1>ã<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>.ֱ<><D6B1>RGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//T_Base_RGV_Gate<74><65><EFBFBD><EFBFBD><EFBFBD>ֶΡ<D6B6>F_EndDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>RGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Ķ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ̨һ<CCA8><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>Ӧ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD>վ̨<D5BE><CCA8><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//<2F>ɱ<EFBFBD><C9B1><EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>õ<EFBFBD>ѡ<EFBFBD><D1A1>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>RGVĿ<56><C4BF>λ<EFBFBD>ÿ<EFBFBD><C3BF>С<EFBFBD><D0A1><EFBFBD><EFBFBD>Ŀ<EFA3BB><C4BF>λ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
DataView dv;
|
|||
|
DataRowView dr;
|
|||
|
string sql = "";
|
|||
|
string adviceDev = "";
|
|||
|
char[] cc = new char[1] { ';' };
|
|||
|
string[] sp;
|
|||
|
DataView dvIO;
|
|||
|
Dictionary<int, int> advDev=new Dictionary<int,int>();
|
|||
|
object ob;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT * FROM T_Manage_Task WHERE (FID = " + manageTaskIdx + ") AND (F_ManageTaskKindIndex = " + manageKindIdx + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count <= 0)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
dr = dv[0];
|
|||
|
//ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<DEB8><C4B5><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
if (dr["F_ManageTaskKindIndex"].ToString() != "1") return false;
|
|||
|
dvIO = dboM.ExceSQL("select CONTROL_ID, CONTROL_STATUS from IO_Control where (CONTROL_ID = " + Convert.ToInt32(dr["FID"]) + ") AND ((CONTROL_STATUS=" + Model.CGeneralFunction.TASKALTERROUTEAPPLY + ") or (CONTROL_STATUS=" + Model.CGeneralFunction.TASKCANCEL + ") or(CONTROL_STATUS=" + Model.CGeneralFunction.TASKALTERROUTEREPLY + "))").Tables[0].DefaultView;
|
|||
|
if (dvIO.Count <= 0)
|
|||
|
{
|
|||
|
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>T_Base_Device<EFBFBD><EFBFBD><EFBFBD><EFBFBD>F_UsableEndDevice<EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD>豸
|
|||
|
DataView dvu = dbo.ExceSQL("select F_UsableEndDevice from T_Base_Device where F_UsableEndDevice is not null and F_DeviceIndex=" + RGVGateDevice + "").Tables[0].DefaultView;
|
|||
|
if (dvu.Count > 0)
|
|||
|
{
|
|||
|
int enddv = 0, DESTINATION = 0;
|
|||
|
sp = dvu[0]["F_UsableEndDevice"].ToString().Split(cc);
|
|||
|
|
|||
|
for (int i = sp.GetLowerBound(0); i <= sp.GetUpperBound(0); i++)
|
|||
|
{
|
|||
|
if (Microsoft.VisualBasic.Information.IsNumeric(sp[i]) == false) continue;
|
|||
|
enddv = Convert.ToInt32(sp[i]);
|
|||
|
if (enddv < 0)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>豸ǰ<E8B1B8><C7B0><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGV<47><56><EFBFBD>߷<EFBFBD><DFB7><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (IfUseNegativeDevice == true)
|
|||
|
{
|
|||
|
enddv = -(enddv);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
continue;
|
|||
|
}
|
|||
|
}
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(enddv);
|
|||
|
if ((devinfo.HaveGoods == true)||(devinfo.RunState==2))
|
|||
|
{//Ŀ<><C4BF>λ<EFBFBD>ñ<EFBFBD>ռ<EFBFBD>û<EFBFBD><C3BB>߹<EFBFBD><DFB9><EFBFBD>
|
|||
|
continue;
|
|||
|
}
|
|||
|
ob = dbo.GetSingle("SELECT F_EndDevice FROM T_Base_RGV_Gate WHERE (F_RGVGateDeviceIndex = " + enddv + ") AND (F_EndDevice IS NOT NULL)");
|
|||
|
if (ob == null) continue;
|
|||
|
DESTINATION = Convert.ToInt32(ob);
|
|||
|
if (CDisassembleTask.MinRouteID(Convert.ToInt32(dr["FSTARTDEVICE"]), DESTINATION) != -1)
|
|||
|
{
|
|||
|
//20100609ͳ<39>Ƶ<EFBFBD><C6B5>յ<EFBFBD><D5B5>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ob = dbo.GetSingle("SELECT count(FENDDEVICE) as counts FROM T_Manage_Task where FENDDEVICE='" + DESTINATION + "' and fstatus>0");
|
|||
|
advDev.Add(DESTINATION, Convert.ToInt32(ob));
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
dvu = null;
|
|||
|
if (advDev.Count<=0)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
int mincount = 9999;
|
|||
|
foreach (int aaa in advDev.Keys)
|
|||
|
{
|
|||
|
if (advDev[aaa] < mincount)
|
|||
|
{
|
|||
|
mincount = advDev[aaa];
|
|||
|
adviceDev = aaa.ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
if (adviceDev == "")
|
|||
|
{
|
|||
|
|
|||
|
return false;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
//20101108int fid = dboM.GetManageTableIndex("IO_CONTROL_APPLY");
|
|||
|
string dtime = DateTime.Now.ToString("u");
|
|||
|
dtime = dtime.Substring(0, dtime.Length - 1);
|
|||
|
|
|||
|
dboM.TransBegin();
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
dboM.ExceSQL(" update IO_CONTROL set CONTROL_STATUS=" + Model.CGeneralFunction.TASKALTERROUTEAPPLY + " where CONTROL_ID=" + dr["FID"] + " and CONTROL_STATUS<>" + Model.CGeneralFunction.TASKCANCEL + "");
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>//20101108CONTROL_APPLY_ID," + fid + ",
|
|||
|
sql = "INSERT INTO IO_CONTROL_APPLY ( CONTROL_ID, WAREHOUSE_CODE, STOCK_BARCODE, DEVICE_CODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_REMARK)" +
|
|||
|
"VALUES (" + dr["FID"] + ",'" + dr["FENDWAREHOUSE"] + "','" + dr["FPALLETBARCODE"] + "','" + adviceDev + "',0,'" + dtime + "',null)";
|
|||
|
dboM.ExceSQL(sql);
|
|||
|
dboM.TransCommit();
|
|||
|
//<2F><>ManageTaskIdx<64><78>ManageKindIdx <20>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
dbo.ExceSQL("UPDATE T_Monitor_Task SET F_Status = 3 WHERE (F_ManageTaskIndex = " + manageTaskIdx + ") AND (F_ManageTASKKINDINDEX =" + manageKindIdx + ")");
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
dboM.TransRollback();
|
|||
|
_CControlError = "<22><><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message;
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
_CControlError = "<22><><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message;
|
|||
|
return false;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dv = null;
|
|||
|
dr = null;
|
|||
|
cc = null;
|
|||
|
sp = null;
|
|||
|
dvIO = null;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="controlTaskType"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="devindex"><3E>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
int GetEnableDoubleForkManageTask(int controlTaskType, int devindex,int FID)
|
|||
|
{
|
|||
|
DataView dv0;
|
|||
|
string sql = "SELECT F_MonitorIndex,T_Monitor_Task.F_ManageTaskIndex,T_Monitor_Task.F_ManageTASKKINDINDEX FROM T_Monitor_Task ,T_Manage_Task where T_Monitor_Task.F_ManageTaskIndex = T_Manage_Task.FID AND T_Monitor_Task.F_ManageTASKKINDINDEX = T_Manage_Task.F_ManageTaskKindIndex AND F_DeviceIndex=" + devindex + " and FCONTROLTASKTYPE=" + controlTaskType;
|
|||
|
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
for (int i = 0; i < dv.Count; i++)
|
|||
|
{
|
|||
|
dv0 = dbo.ExceSQL("select min(F_MonitorIndex) as mm from T_Monitor_Task where F_ManageTaskIndex=" + dv[i]["F_ManageTaskIndex"] + " and F_ManageTASKKINDINDEX=" + dv[i]["F_ManageTASKKINDINDEX"] + " ").Tables[0].DefaultView;
|
|||
|
if (dv0.Count > 0)
|
|||
|
{
|
|||
|
if (dv0[0]["mm"].ToString() == dv[i]["F_MonitorIndex"].ToString())
|
|||
|
{
|
|||
|
if (FID != Convert.ToInt32(dv[i]["F_ManageTaskIndex"]))
|
|||
|
{
|
|||
|
return Convert.ToInt32( dv[i]["F_ManageTaskIndex"]);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD>öѶ<C3B6><D1B6><EFBFBD><EFBFBD>ڶԵ<DAB6>վ̨ȡ<CCA8><C8A1><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="controlTaskType"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="Stackdevindex"><3E>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="StationDevice">վ̨<D5BE>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="FID"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
int GetEnableDoubleForkManageTask(int controlTaskType, int Stackdevindex,int StationDevice, int FID)
|
|||
|
{
|
|||
|
DataView dv1 = dbo.ExceSQL("SELECT F_ZXY FROM T_Base_Lane_Gate,T_Base_LaneInfo WHERE "+
|
|||
|
"(T_Base_Lane_Gate.F_LaneIndex = T_Base_LaneInfo.F_LaneDeviceIndex) and (T_Base_LaneInfo.F_StackIndex = " +
|
|||
|
Stackdevindex + ") and (F_LaneGateDeviceIndex=" + StationDevice + ")").Tables[0].DefaultView;
|
|||
|
if (dv1.Count <= 0) return -1;
|
|||
|
char[] cc = new char[1] {'-' };
|
|||
|
string[] zxy = dv1[0]["F_ZXY"].ToString().Split(cc);
|
|||
|
DataView dv0;
|
|||
|
string sql = "SELECT F_MonitorIndex,T_Monitor_Task.F_ManageTaskIndex,T_Monitor_Task.F_ManageTASKKINDINDEX "+
|
|||
|
" FROM T_Monitor_Task ,T_Manage_Task where T_Monitor_Task.F_ManageTaskIndex = T_Manage_Task.FID AND "+
|
|||
|
"T_Monitor_Task.F_ManageTASKKINDINDEX = T_Manage_Task.F_ManageTaskKindIndex AND F_DeviceIndex=" +
|
|||
|
Stackdevindex + " and FCONTROLTASKTYPE=" + controlTaskType + " and F_NumParam1=" + zxy[0] +
|
|||
|
" and F_NumParam2=" + zxy[1] + " and F_NumParam3=" + zxy[2] + "";
|
|||
|
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
for (int i = 0; i < dv.Count; i++)
|
|||
|
{
|
|||
|
dv0 = dbo.ExceSQL("select min(F_MonitorIndex) as mm from T_Monitor_Task where F_ManageTaskIndex=" + dv[i]["F_ManageTaskIndex"] + " and F_ManageTASKKINDINDEX=" + dv[i]["F_ManageTASKKINDINDEX"] + " ").Tables[0].DefaultView;
|
|||
|
if (dv0.Count > 0)
|
|||
|
{
|
|||
|
if (dv0[0]["mm"].ToString() == dv[i]["F_MonitorIndex"].ToString())
|
|||
|
{
|
|||
|
if (FID != Convert.ToInt32(dv[i]["F_ManageTaskIndex"]))
|
|||
|
{
|
|||
|
return Convert.ToInt32(dv[i]["F_ManageTaskIndex"]);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
///
|
|||
|
/// </summary>
|
|||
|
/// <param name="Mankind"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="FID"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="ControlTaskType"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="UseAwayFork"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
void AlterRoutePath(int Mankind,int FID,int ControlTaskType,char UseAwayFork,int NowDevice)
|
|||
|
{
|
|||
|
DataView dv; DataView dv1; DataView dvnew;
|
|||
|
|
|||
|
//<2F><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ǰ<EFBFBD><C7B0>·<EFBFBD><C2B7><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>ƥ<EFBFBD>䣬<EFBFBD><E4A3AC>ƥ<EFBFBD><C6A5><EFBFBD>ĸĵ<C4B8>
|
|||
|
try
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT T_Monitor_Task.F_MonitorIndex,T_Monitor_Task.F_DeviceIndex FROM T_Monitor_Task,T_Base_Route_Device where "+
|
|||
|
" T_Monitor_Task.F_RouteID = T_Base_Route_Device.F_RouteIDSub AND T_Monitor_Task.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and T_Monitor_Task.F_ManageTaskIndex="+
|
|||
|
FID+" and T_Monitor_Task.F_ManageTASKKINDINDEX="+Mankind+" and T_Base_Route_Device.F_UseAwayFork<>'"+UseAwayFork+"'").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("select * from T_Manage_Task where F_ManageTaskKindIndex=" + Mankind + " and FID=" + FID).Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
//20100702
|
|||
|
string sql = "SELECT T_Base_Route_Device.F_RouteIDSub FROM T_Base_Route,T_Base_Route_Device where T_Base_Route.F_RouteID = T_Base_Route_Device.F_RouteID " +
|
|||
|
" and (T_Base_Route_Device.F_UseAwayFork = '" + UseAwayFork + "') AND (T_Base_Route_Device.F_DeviceIndex = " + NowDevice + ") AND (T_Base_Route.F_StartDevice = " +
|
|||
|
dv[0]["FSTARTDEVICE"] + ") AND (T_Base_Route.F_EndDevice = " + dv[0]["FENDDEVICE"] + " and F_RouteKind="+ControlTaskType+")";
|
|||
|
dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|||
|
if (dv1.Count > 0)
|
|||
|
{
|
|||
|
int routeidNew=Convert.ToInt32( dv1[0][0]);
|
|||
|
//ɾ<><C9BE>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F1A3ACB2><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
dbo.ExceSQL("DELETE FROM T_Monitor_Task WHERE (F_ManageTaskIndex = " + FID + ") AND (F_ManageTASKKINDINDEX ="+Mankind+")");
|
|||
|
if (CDisassembleTask.CreateMonitor(Mankind, FID, routeidNew, dv[0], 3) > 0)
|
|||
|
{
|
|||
|
dvnew = dbo.ExceSQL("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = " +
|
|||
|
FID + ") AND (F_ManageTASKKINDINDEX = "+Mankind+") AND (F_DeviceIndex = " +
|
|||
|
NowDevice + ") AND (F_RouteID = " + routeidNew +
|
|||
|
") AND (F_Status = 3) ").Tables[0].DefaultView;
|
|||
|
if (dvnew.Count > 0)
|
|||
|
{
|
|||
|
dbo.ExceSQL("delete from T_Monitor_Task where F_MonitorIndex<" + dvnew[0]["F_MonitorIndex"] + " and (F_ManageTaskIndex = " +
|
|||
|
FID + ") AND (F_ManageTASKKINDINDEX = "+Mankind+") AND (F_Status = 3)");
|
|||
|
|
|||
|
dbo.ExceSQL("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = " +
|
|||
|
FID + ") AND (F_ManageTASKKINDINDEX = "+Mankind+") AND (F_Status = 3)");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dv = null;
|
|||
|
dv1 = null;
|
|||
|
dvnew = null;
|
|||
|
}
|
|||
|
}
|
|||
|
int GetDoubleForkMinRouteTask(int taskno)
|
|||
|
{
|
|||
|
DataView dv;
|
|||
|
//<2F><><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD>taskno<6E><6F><EFBFBD><EFBFBD>˫<EFBFBD>浫<EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD>taskno
|
|||
|
//˫<>治<EFBFBD><E6B2BB>ͬ<EFBFBD><CDAC><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵱ǰ<EBB5B1>Ѷ<EFBFBD><D1B6><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>taskno
|
|||
|
|
|||
|
int manKind=Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(taskno);
|
|||
|
int manFid=Model.CGeneralFunction.GetManageTaskIndexfromMonitor(taskno);
|
|||
|
int deviceindex = Model.CGeneralFunction.GetDeviceIndexFromMonitor(taskno);
|
|||
|
int devKind=Model.CGeneralFunction.GetDeviceKindIdx(deviceindex);
|
|||
|
int devOrder = Model.CGeneralFunction.GetDeviceOrderFromMonitor(taskno);
|
|||
|
|
|||
|
devinfo = Model.CGetInfo.GetDeviceInfo(deviceindex);
|
|||
|
// string aa1212q = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|||
|
int nX=Model.CGeneralFunction.GetXCoorFromMonitor(taskno,deviceindex,devOrder);
|
|||
|
int nY=Model.CGeneralFunction.GetYCoorFromMonitor(taskno,deviceindex,devOrder);
|
|||
|
// string aa212q = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|||
|
double nXY = 0, doubleXY = 0;
|
|||
|
int doubleX=Model.CGeneralFunction.GetDoubleForkX(manKind,manFid,deviceindex,devOrder);
|
|||
|
//string aa212 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|||
|
int doubleY=Model.CGeneralFunction.GetDoubleForkY(manKind,manFid,deviceindex,devOrder);
|
|||
|
// string aa122 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|||
|
if (devinfo.IfCorrelDoubleFork == "1")
|
|||
|
{
|
|||
|
string[] df = Model.CGeneralFunction.GetDoubleForkMonitorInfo(taskno, deviceindex);
|
|||
|
if(df==null)return taskno;
|
|||
|
if (Model.CGeneralFunction.DoubleForkIfSync(taskno, deviceindex, devKind) == false)
|
|||
|
{
|
|||
|
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int rmankind = Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(Convert.ToInt32(df[0]));
|
|||
|
int rman = Model.CGeneralFunction.GetManageTaskIndexfromMonitor(Convert.ToInt32(df[0]));
|
|||
|
dv = dbo.ExceSQL("SELECT MIN(F_MonitorIndex) AS mmi FROM dbo.T_Monitor_Task WHERE (F_ManageTaskIndex = " + rman + ") AND (F_ManageTASKKINDINDEX = " + rmankind + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
if ((dv[0]["mmi"] != DBNull.Value) && (dv[0]["mmi"].ToString() != df[0]))
|
|||
|
{
|
|||
|
return taskno;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
if (devKind == 1)//<2F>Ѷ<EFBFBD><D1B6><EFBFBD>
|
|||
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(devOrder==5)//<2F>ͻ<EFBFBD>ָ<EFBFBD><D6B8>ʱ<EFBFBD>ж<EFBFBD>20110425
|
|||
|
{
|
|||
|
if (false == IfExcuteFirst(taskno))
|
|||
|
{
|
|||
|
return Convert.ToInt32(df[0]);
|
|||
|
}
|
|||
|
if (false == IfExcuteFirst(Convert.ToInt32(df[0])))
|
|||
|
{
|
|||
|
return taskno;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
nXY = Math.Pow((double)(nX - devinfo.XCoor), 2) + (Math.Pow((double)(nY - devinfo.YCoor), 2));
|
|||
|
doubleXY = Math.Pow((double)(doubleX - devinfo.XCoor), 2) + (Math.Pow((double)(doubleY - devinfo.YCoor), 2));
|
|||
|
if (nXY < doubleXY)
|
|||
|
{
|
|||
|
return taskno;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return Convert.ToInt32(df[0]);
|
|||
|
}
|
|||
|
}
|
|||
|
else if (devKind == 6)//AGV
|
|||
|
{
|
|||
|
nXY =Convert.ToInt32(dbo.GetSingle("SELECT F_Sequence FROM T_Base_AGV_Gate WHERE (F_AGVGateDeviceIndex = "+nX+")"));
|
|||
|
doubleXY = Convert.ToInt32(dbo.GetSingle("SELECT F_Sequence FROM T_Base_AGV_Gate WHERE (F_AGVGateDeviceIndex = " + doubleX + ")"));
|
|||
|
if (nXY < doubleXY)
|
|||
|
{
|
|||
|
return taskno;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return Convert.ToInt32(df[0]);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return taskno;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return taskno;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return taskno;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
int CountAGVTask(int taskno)
|
|||
|
{//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//ÿ<><C3BF>AGVͨ<56><CDA8>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//F_status>0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>2ʱ<32><CAB1><EFBFBD>ж<EFBFBD>F_status>0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>taskno˫<6F><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//F_status>0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD>2ʱ<32><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3
|
|||
|
int devindex = GetDeviceFromMonitor(taskno);
|
|||
|
int devorder = ccf.GetDeviceOrderFromMonitor(taskno);
|
|||
|
int devStation=Model.CGeneralFunction.GetXCoorFromMonitor(taskno, devindex, devorder);
|
|||
|
string bt = " < 3000 ";
|
|||
|
if (devStation < 3000)
|
|||
|
{//<2F><>¥
|
|||
|
bt = " < 3000 ";
|
|||
|
}
|
|||
|
else
|
|||
|
{//<2F><>¥
|
|||
|
bt = " > 3000 ";
|
|||
|
}
|
|||
|
int agvc = dbo.ExceSQL("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_Status > 0) AND (F_NumParam1 "+bt+") AND (F_DeviceIndex = 1001)").Tables[0].DefaultView.Count;
|
|||
|
if (agvc == 1)
|
|||
|
{
|
|||
|
if (Model.CGeneralFunction.GetDoubleForkMonitorInfo(taskno, devindex,0) ==true)
|
|||
|
{
|
|||
|
return 3;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (agvc == 0)
|
|||
|
{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return 3;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
bool IFAGVGate(int devIndex)
|
|||
|
{
|
|||
|
if (dbo.ExceSQL("SELECT F_AGVGateDeviceIndex FROM T_Base_AGV_Gate WHERE (F_AGVGateDeviceIndex = "+devIndex +")").Tables[0].DefaultView.Count > 0)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20121030
|
|||
|
/// </summary>
|
|||
|
/// <param name="TaskIndex"></param>
|
|||
|
/// <returns></returns>
|
|||
|
string IfLimitCellChangeFork(int TaskIndex)
|
|||
|
{
|
|||
|
// int[] zxy = ccf.GetCoordinatesFromMonitorTask(TaskIndex);
|
|||
|
// int xCoor = zxy[4];
|
|||
|
// string zxystr = (zxy[0].ToString().Length == 1 ? "0" + zxy[0].ToString() : zxy[0].ToString()) + "-" +
|
|||
|
// ((zxy[1].ToString().Length == 1) ? ("0" + zxy[1].ToString()) : (zxy[1].ToString())) + "-" +
|
|||
|
// ((zxy[2].ToString().Length == 1) ? ("0" + zxy[2].ToString()) : (zxy[2].ToString()));
|
|||
|
// // string zxystr = (zxy[3].ToString().Length == 1 ? "0" + zxy[3].ToString() : zxy[3].ToString()) + "-" +
|
|||
|
// //((zxy[4].ToString().Length == 1) ? ("0" + zxy[4].ToString()) : (zxy[4].ToString())) + "-" +
|
|||
|
// //((zxy[5].ToString().Length == 1) ? ("0" + zxy[5].ToString()) : (zxy[5].ToString()));
|
|||
|
|
|||
|
// string UseAwayFork=Model.CGeneralFunction.GetUseAwayFork(TaskIndex);//1,Զ<><D4B6><EFBFBD>棻0<E6A3BB><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棻'-'<27><>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// //<2F>ж<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>Ӧ<EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// DataView dv = dbo.ExceSQL("SELECT F_MoveCellCode FROM T_Base_Lane_Gate,T_Base_LaneInfo where T_Base_Lane_Gate.F_LaneIndex = T_Base_LaneInfo.F_LaneDeviceIndex and (T_Base_LaneInfo.F_ForwardLimitX = " + xCoor + ") and F_ZXY='" + zxystr + "'").Tables[0].DefaultView;
|
|||
|
// // DataView dv = dbo.ExceSQL("SELECT F_MoveCellCode FROM T_Base_LaneInfo where F_ForwardLimitX = " + xCoor + "").Tables[0].DefaultView;
|
|||
|
|
|||
|
// if (dv.Count > 0)
|
|||
|
// {
|
|||
|
// if (UseAwayFork == "1")
|
|||
|
// {
|
|||
|
// return dv[0]["F_MoveCellCode"].ToString();
|
|||
|
// }
|
|||
|
// }
|
|||
|
// //<2F>жϺ<D0B6><CFBA><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>Ӧ<EFBFBD><D3A6>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>
|
|||
|
// dv = dbo.ExceSQL("SELECT F_MoveCellCode FROM T_Base_Lane_Gate,T_Base_LaneInfo where T_Base_Lane_Gate.F_LaneIndex = T_Base_LaneInfo.F_LaneDeviceIndex and (T_Base_LaneInfo.F_BackLimitX = " + xCoor + ") and F_ZXY='" + zxystr + "'").Tables[0].DefaultView;
|
|||
|
// //dv = dbo.ExceSQL("SELECT F_MoveCellCode FROM T_Base_LaneInfo where F_BackLimitX = " + xCoor + "").Tables[0].DefaultView;
|
|||
|
|
|||
|
// if (dv.Count > 0)
|
|||
|
// {
|
|||
|
// if (UseAwayFork == "0")
|
|||
|
// {
|
|||
|
// return dv[0]["F_MoveCellCode"].ToString();
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
return "-";
|
|||
|
}
|
|||
|
|
|||
|
bool IfExcuteFirst(int TaskIndex)
|
|||
|
{
|
|||
|
int[] zxy = ccf.GetCoordinatesFromMonitorTask(TaskIndex);
|
|||
|
string zxystr = (zxy[3].ToString().Length == 1 ? "0" + zxy[0].ToString() : zxy[3].ToString()) + "-" +
|
|||
|
((zxy[4].ToString().Length == 1) ? ("0" + zxy[4].ToString()) : (zxy[4].ToString())) + "-" +
|
|||
|
((zxy[5].ToString().Length == 1) ? ("0" + zxy[5].ToString()) : (zxy[5].ToString()));
|
|||
|
|
|||
|
DataView dv = dbo.ExceSQL("SELECT F_MoveCellCode FROM T_Base_LaneInfo WHERE (F_MoveCellCode = '" + zxystr + "')").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="taskindex"><3E>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="ChangeForkCell"><3E>ɸ<EFBFBD><C9B8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD></param>
|
|||
|
void ChangeEndCellCode(int taskindex, string ChangeForkCell,int StackIndex)
|
|||
|
{
|
|||
|
char[] cc=new char[1]{'-'};
|
|||
|
string[] endCell = ChangeForkCell.Split(cc);
|
|||
|
int fid = ccf.GetManageTaskIndexfromMonitor(taskindex);
|
|||
|
int Mankind = ccf.GetManageTaskKindIndexFromMonitor(taskindex);
|
|||
|
//dbo.TransBegin();
|
|||
|
try
|
|||
|
{
|
|||
|
DataView dv = dbo.ExceSQL("SELECT F_LaneGateDeviceIndex FROM T_Base_Lane_Gate,T_Base_Device WHERE (T_Base_Lane_Gate.F_LaneGateDeviceIndex = T_Base_Device.F_DeviceIndex) and (F_ZXY = '" + ChangeForkCell + "')").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
|
|||
|
dbo.ExecuteSql("update T_Monitor_Task set F_AheadDetect=F_AheadDetect+'" + ";N" + dv[0]["F_LaneGateDeviceIndex"].ToString() + "', F_NumParam4=" + endCell[0] + ",F_NumParam5=" + endCell[1]
|
|||
|
+ ",F_NumParam6=" + endCell[2] + " where F_ManageTaskIndex=" + fid + " and F_ManageTASKKINDINDEX=" + Mankind + " and F_DeviceIndex=" + StackIndex);
|
|||
|
dbo.ExecuteSql("update T_Manage_Task set FExceptionNO=" + Model.CGeneralFunction.TASKCHANGEFORK + " where FID=" + fid + " and F_ManageTaskKindIndex=" + Mankind);
|
|||
|
}
|
|||
|
//dbo.TransCommit();
|
|||
|
}
|
|||
|
catch(Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
//dbo.TransRollback();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
int GetIOControlStatus(int TaskIndex)
|
|||
|
{
|
|||
|
int mankind = ccf.GetManageTaskKindIndexFromMonitor(TaskIndex);
|
|||
|
int Fid = ccf.GetManageTaskIndexfromMonitor(TaskIndex);
|
|||
|
if (mankind == 1)
|
|||
|
{
|
|||
|
object ob=dboM.GetSingle("SELECT CONTROL_STATUS FROM IO_CONTROL WHERE (CONTROL_ID = "+Fid+")");
|
|||
|
if (ob != null)
|
|||
|
{
|
|||
|
return Convert.ToInt32(ob);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return Model.CGeneralFunction.TASKSINGLEFORKRUN;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return Model.CGeneralFunction.TASKSINGLEFORKRUN;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>AGV˫<56><CBAB><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>վ̨,<2C><>-1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>й<EFBFBD><D0B9><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="taskindex"><3E>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
int GetAGVCorrelIndex(int taskindex)
|
|||
|
{
|
|||
|
object ob = dbo.GetSingle("SELECT F_NumParam2 FROM T_Monitor_Task WHERE (F_MonitorIndex = "+taskindex+")");
|
|||
|
if (ob != null)
|
|||
|
{
|
|||
|
int cs = Convert.ToInt32(ob);
|
|||
|
if (cs % 2 == 0)
|
|||
|
{
|
|||
|
return (cs-1);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return (cs + 1);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>AGV<47>ڴ<EFBFBD>վ̨ȡ<CCA8><C8A1><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="controltype"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="stationIndex">AGVվ̨<D5BE><CCA8><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
int GetAGVEnableDoubleForkManageTask(int controltype, int stationIndex)
|
|||
|
{
|
|||
|
string sql = "SELECT T_Monitor_Task.F_ManageTaskIndex "+
|
|||
|
" FROM T_Monitor_Task ,T_Manage_Task where T_Monitor_Task.F_ManageTaskIndex = T_Manage_Task.FID AND "+
|
|||
|
"T_Monitor_Task.F_ManageTASKKINDINDEX = T_Manage_Task.F_ManageTaskKindIndex and FCONTROLTASKTYPE=" +
|
|||
|
controltype + " and F_NumParam2=" + stationIndex + " and F_DeviceIndex=1001 and F_DeviceCommandIndex=1";
|
|||
|
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
return Convert.ToInt32(dv[0]["F_ManageTaskIndex"]);
|
|||
|
}
|
|||
|
else
|
|||
|
return -1;
|
|||
|
}
|
|||
|
bool IfInSameLimitX(int fid, int mfid,int manKind)
|
|||
|
{
|
|||
|
//DataView dv = dbo.ExceSQL("SELECT F_ForwardLimitX,F_BackLimitX,FEndCol FROM T_Manage_Task,T_Base_LaneInfo WHERE T_Manage_Task.FLANEWAY = T_Base_LaneInfo.F_LaneDeviceIndex and (F_ManageTaskKindIndex = " + manKind + ") AND (FID = " + fid + ")").Tables[0].DefaultView;
|
|||
|
//if (dv.Count == 0)
|
|||
|
//{
|
|||
|
// return false;
|
|||
|
//}
|
|||
|
//DataView dv1 = dbo.ExceSQL("SELECT F_ForwardLimitX,F_BackLimitX,FEndCol FROM T_Manage_Task,T_Base_LaneInfo WHERE T_Manage_Task.FLANEWAY = T_Base_LaneInfo.F_LaneDeviceIndex and (F_ManageTaskKindIndex = " + manKind + ") AND (FID = " + mfid + ")").Tables[0].DefaultView;
|
|||
|
//if (dv1.Count == 0)
|
|||
|
//{
|
|||
|
// return false;
|
|||
|
//}
|
|||
|
//if ((dv[0]["FEndCol"].ToString() == dv[0]["F_ForwardLimitX"].ToString()) && (dv1[0]["F_ForwardLimitX"].ToString() == dv1[0]["FEndCol"].ToString()))
|
|||
|
//{
|
|||
|
// return true;
|
|||
|
//}
|
|||
|
//if ((dv[0]["FEndCol"].ToString() == dv[0]["F_BackLimitX"].ToString()) && (dv1[0]["F_BackLimitX"].ToString() == dv1[0]["FEndCol"].ToString()))
|
|||
|
//{
|
|||
|
// return true;
|
|||
|
//}
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|