AHTC/RGD/RGD.WCS/CParsePLCData.cs

899 lines
44 KiB
C#
Raw Normal View History

2025-05-19 09:22:33 +08:00
using RGD.Common;
using RGD.DataService;
using RGD.DBUtility;
using System;
using System.Data;
using System.Threading;
namespace RGD.WCS
{
/// <summary>
/// Creator:RGD
/// <20><><EFBFBD><EFBFBD>PLC<4C><43><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public static class CParsePLCData
{
private static string _CParsePLCError = "";//<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
public static string CParsePLCError
{
get { return _CParsePLCError; }
set { _CParsePLCError = value; }
}
private static Model.MDevice devinfo28 = BaseDeviceService.GetDeviceInfo(65534);
private static Thread mythread;
private static bool exitThread = false;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD> 300ms
public static void StartListen()
{
exitThread = false;
mythread = new Thread(new ThreadStart(BeginListen));
mythread.IsBackground = true;
mythread.Start();
}
private static void BeginListen()
{
while (!exitThread)
{
try
{
SetDeviceState();
}
catch (Exception ex)
{
_CParsePLCError = ex.Message;
}
//Thread.Sleep(300);
}
}
public static void EndListen()
{//20091107
exitThread = true;
if (mythread != null)
{
mythread.Abort();
mythread = null;
}
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD> 300ms
/// <summary>
/// <20><><EFBFBD><EFBFBD>PLC<4C><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ǰ<EFBFBD><C7B0>̬<EFBFBD><CCAC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CStaticClass.AllReturns
/// </summary>
public static void SetDeviceState()
{
try
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ30s <EFBFBD>ر<EFBFBD>״̬<EFBFBD><EFBFBD>ÿ3s
bool updateroute = false;//<2F><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ÿ30s
bool reportstatus = false;//<2F>ر<EFBFBD>״̬<D7B4><CCAC>ÿ3s
if (CStaticClass.routetime.AddSeconds(30) <= DateTime.Now)
{
updateroute = true;
CStaticClass.routetime = DateTime.Now;
}
if (CStaticClass.reporttime.AddSeconds(3) <= DateTime.Now)
{
reportstatus = true;
CStaticClass.reporttime = DateTime.Now;
}
else
{
reportstatus = false;
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ30s <EFBFBD>ر<EFBFBD>״̬<EFBFBD><EFBFBD>ÿ3s
//<2F><>CStaticClass.AllReturnsλNullʱ <20><>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ż<EFBFBD><C5BB>ص<EFBFBD>
int[] States;
//LogUtil.WriteLog("", "<22><><EFBFBD><EFBFBD>PLC<4C><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ǰ<EFBFBD><C7B0>̬<EFBFBD><CCAC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CStaticClass.AllReturns");
//DateTime dt1 = DateTime.Now;
DataTable dvvDeviceState = DbHelperSQL.Query("SELECT F_DeviceIndex,F_LockedState FROM T_Base_Device").Tables[0];
//LogUtil.WriteLog("", "<22><><EFBFBD><EFBFBD>PLC<4C>豸״̬,<2C><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>:" + (DateTime.Now - dt1).TotalMilliseconds + ";"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>2<EFBFBD><32>
foreach (Model.MDevice devinfo1 in BaseDeviceService.DeviceInfo.Values)
{
//ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>ݿ<EFBFBD>Ƶ<EFBFBD><C6B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>Ƿ<EFBFBD>ͣ<EFBFBD><CDA3> <20><><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>
#region ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>-1<EFBFBD><EFBFBD>ʾͣ<EFBFBD><EFBFBD>
DataRow[] rows = dvvDeviceState.Select("F_LockedState=-1 and F_DeviceIndex=" + devinfo1.DeviceIndex);
if (rows.Length > 0)
{
#region ͣ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> <EFBFBD>˴<EFBFBD>δ<EFBFBD><EFBFBD>20210915
if (updateroute == true)
{//20100131
UpdateErrorCode(devinfo1.DeviceIndex, 98);
AlterRoute(devinfo1.DeviceIndex, 98);
}
//20090926
if (devinfo1.ErrorCode != 98)
{
UpdateErrorCode(devinfo1.DeviceIndex, 98);
AlterRoute(devinfo1.DeviceIndex, 98);
devinfo1.RunState = 4;
}
devinfo1.ErrorCode = 98;
#endregion ͣ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> <EFBFBD>˴<EFBFBD>δ<EFBFBD><EFBFBD>20210915
}
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>Ϣ
if ((devinfo1.DeviceKind == 14) || (devinfo1.DeviceKind == 18))//<2F><><EFBFBD><EFBFBD> λ<><CEBB><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
{
devinfo1.DeviceVisual = GetDevicePhotoelectric(devinfo1.DeviceIndex);
continue;
}
if (devinfo1.DeviceKind == 2 || devinfo1.DeviceKind == 3 || devinfo1.DeviceKind == 5 || devinfo1.DeviceKind == 7 || devinfo1.DeviceKind == 32 || devinfo1.DeviceKind == 34)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD>۵<EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨ģ<EFBFBD><EFBFBD>AGV<EFBFBD><EFBFBD> SQL<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Щ<EFBFBD><D0A9><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD>д<EFBFBD><D0B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ƣ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>к͹<D0BA><CDB9><EFBFBD>λ<EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD><EFBFBD><EFBFBD>
if (devinfo1.OnlyDetectIO == "1")//ֻ<><D6BB><EFBFBD><EFBFBD>IO<49>ź<EFBFBD>
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+7<EFBFBD><EFBFBD>
devinfo1.RunState = GetDevicePhotoelectric(Convert.ToInt32(devinfo1.DeviceIndex.ToString() + "7"));
if (updateroute == true)
{//20100131
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, 0);
}
if (devinfo1.ErrorCode != 0)
{
AlterRoute(devinfo1.DeviceIndex, 0);
}
//20090926
int err = 0;
//devinfo1.ErrorCode = 0;
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+7<EFBFBD><EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+6<EFBFBD><EFBFBD>
if (GetDevicePhotoelectric(Convert.ToInt32(devinfo1.DeviceIndex.ToString() + "6")) == 1)
{
if (updateroute == true)
{//20100131
UpdateErrorCode(devinfo1.DeviceIndex, 97);
AlterRoute(devinfo1.DeviceIndex, 97);
}
devinfo1.RunState = 2;
if (devinfo1.ErrorCode != 97)
{
UpdateErrorCode(devinfo1.DeviceIndex, 97);
AlterRoute(devinfo1.DeviceIndex, 97);
}
err = 97;
}
if (updateroute == true)
{
UpdateErrorCode(devinfo1.DeviceIndex, err);
AlterRoute(devinfo1.DeviceIndex, err);
}
if (devinfo1.ErrorCode != err)
{
UpdateErrorCode(devinfo1.DeviceIndex, err);
AlterRoute(devinfo1.DeviceIndex, err);
}
devinfo1.ErrorCode = err;
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+6<EFBFBD><EFBFBD>
}
else
{
States = GetDeviceState(devinfo1.DeviceIndex);
if (States == null) continue;
if (States[1] >= 30)
{
if (updateroute == true)
{
UpdateErrorCode(devinfo1.DeviceIndex, States[1]);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
//<2F>޸<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if (States[1] != devinfo1.ErrorCode)
{
UpdateErrorCode(devinfo1.DeviceIndex, States[1]);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
devinfo1.ErrorCode = States[1];
devinfo1.RunState = 2;
}
else if ((States[1] == 0) || (States[1] == 1) || (States[1] == 2))
{
if (updateroute == true)
{
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
//<2F>޸<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if (States[1] != devinfo1.ErrorCode)
{
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
if (States[1] == 2)
{
//20090920
devinfo1.RunState = 5;
}
else
{
devinfo1.RunState = States[1];
}
devinfo1.ErrorCode = States[1];
}
devinfo1.TaskNo = States[2];
if (devinfo1.SplitByte != -1)
{
devinfo1.SplitByte_0 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 0);
devinfo1.SplitByte_1 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 1);
devinfo1.SplitByte_2 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 2);
devinfo1.SplitByte_3 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 3);
devinfo1.SplitByte_4 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 4);
devinfo1.SplitByte_5 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 5);
devinfo1.SplitByte_6 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 6);
devinfo1.SplitByte_7 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 7);
}
DbHelperSQL.ExecuteSql("UPDATE T_Base_Device SET F_HaveGoodsDetect = " + devinfo1.SplitByte_0 + " WHERE F_DeviceIndex = " + devinfo1.DeviceIndex);
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD>۵<EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨ģ<EFBFBD><EFBFBD>AGV<EFBFBD><EFBFBD> SQL<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
if (devinfo1.DeviceKind == 33)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
States = GetDeviceState(devinfo1.DeviceIndex);
if (States == null) continue;
if (States[1] >= 30)
{
if (updateroute == true)
{//20100131
UpdateErrorCode(devinfo1.DeviceIndex, States[1]);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
//<2F>޸<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if (States[1] != devinfo1.ErrorCode)
{
UpdateErrorCode(devinfo1.DeviceIndex, States[1]);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
devinfo1.ErrorCode = States[1];
devinfo1.RunState = 2;
}
else if ((States[1] == 0) || (States[1] == 1) || (States[1] == 2))
{
if (updateroute == true)
{//20100131
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
//<2F>޸<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if (States[1] != devinfo1.ErrorCode)
{
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
if (States[1] == 2)
{
devinfo1.RunState = 5;
}
else
{
devinfo1.RunState = States[1];
}
devinfo1.ErrorCode = States[1];
}
devinfo1.TaskNo = States[2];
devinfo1.CurrentLocation = States[3];
devinfo1.PLCAskNo = States[4];
if (devinfo1.SplitByte != -1)
{
devinfo1.SplitByte_0 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 0);
devinfo1.SplitByte_1 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 1);
devinfo1.SplitByte_2 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 2);
devinfo1.SplitByte_3 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 3);
devinfo1.SplitByte_4 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 4);
devinfo1.SplitByte_5 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 5);
devinfo1.SplitByte_6 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 6);
devinfo1.SplitByte_7 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 7);
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
if (devinfo1.DeviceKind == 5)
{
#region <EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>
States = GetDeviceState(devinfo1.DeviceIndex);
if (States == null) continue;
if (States[1] >= 30)
{
if (updateroute == true)
{//20100131
UpdateErrorCode(devinfo1.DeviceIndex, States[1]);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
//<2F>޸<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if (States[1] != devinfo1.ErrorCode)
{
UpdateErrorCode(devinfo1.DeviceIndex, States[1]);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
devinfo1.ErrorCode = States[1];
devinfo1.RunState = 2;
}
else if ((States[1] == 0) || (States[1] == 1) || (States[1] == 2))
{
if (updateroute == true)
{
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
//<2F>޸<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if (States[1] != devinfo1.ErrorCode)
{
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
if (States[1] == 2)
{
devinfo1.RunState = 5;
}
else
{
devinfo1.RunState = States[1];
}
devinfo1.ErrorCode = States[1];
}
devinfo1.TaskNo = States[2];
if (devinfo1.SplitByte != -1)
{
devinfo1.SplitByte_0 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 0);
devinfo1.SplitByte_1 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 1);
devinfo1.SplitByte_2 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 2);
devinfo1.SplitByte_3 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 3);
devinfo1.SplitByte_4 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 4);
devinfo1.SplitByte_5 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 5);
devinfo1.SplitByte_6 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 6);
devinfo1.SplitByte_7 = GetDevicePhotoelectric(devinfo1.DeviceIndex, 7);
}
#endregion <EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>
}
if (devinfo1.DeviceKind == 1)
{
#region <EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>
States = GetDeviceState(devinfo1.DeviceIndex);
if (States == null) continue;
//<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (States[1] >= 30)
{
#region
if (updateroute == true)
{
UpdateErrorCode(devinfo1.DeviceIndex, States[1]);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
//<2F>޸<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if (States[1] != devinfo1.ErrorCode)
{
//20100131
UpdateErrorCode(devinfo1.DeviceIndex, States[1]);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
devinfo1.ErrorCode = States[1];
devinfo1.RunState = 2;
#endregion <EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>
}
else if ((States[1] == 0) || (States[1] == 1) || (States[1] == 2))
{
if (updateroute == true)
{//20100131
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
//<2F>޸<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if (States[1] != devinfo1.ErrorCode)
{
//20100131
UpdateErrorCode(devinfo1.DeviceIndex, 0);
AlterRoute(devinfo1.DeviceIndex, States[1]);
}
if (States[1] == 2)
{
devinfo1.RunState = 5;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
devinfo1.RunState = States[1];
}
devinfo1.ErrorCode = States[1];
}
devinfo1.TaskNo = States[2];
devinfo1.XCoor = States[3];
devinfo1.YCoor = States[4];
#endregion <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>Ϣ
}
#endregion ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>-1<EFBFBD><EFBFBD>ʾͣ<EFBFBD><EFBFBD>
#region <EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ǰλ<EFBFBD><EFBFBD>
int bdv = 0, bdov = 0;
string[] DS; char[] dd = new char[1] { '.' };
int devicebyte = 0; int devbit = 0;
if (devinfo1.BindingDevice != null)
{
DS = devinfo1.BindingDevice.Split(dd);
int.TryParse(DS[0], out devicebyte);
int.TryParse(DS[1], out devbit);
bdv = GetDevicePhotoelectric(devicebyte, devbit);
}
if (devinfo1.BindingDeviceOut != null)
{
DS = devinfo1.BindingDeviceOut.Split(dd);
int.TryParse(DS[0], out devicebyte);
int.TryParse(DS[1], out devbit);
bdov = GetDevicePhotoelectric(devicebyte, devbit);
}
if ((bdv + bdov) >= 1)
{
devinfo1.HaveGoods = true;//dzf <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⸳ֵ
}
else
{
devinfo1.HaveGoods = false;
}
DataView dvb = DbHelperSQL.Query("SELECT F_MonitorIndex,F_NumParam1,F_NumParam2,F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6, F_TxtParam FROM T_Monitor_Task WHERE (F_MonitorIndex = " + devinfo1.TaskNo + ")").Tables[0].DefaultView;
if (dvb.Count > 0)
{
if (devinfo1.DeviceKind == 1)
{
devinfo1.ArrowLocation = dvb[0]["F_NumParam4"].ToString() + "<22><>" + dvb[0]["F_NumParam5"].ToString() + "<22><>" + dvb[0]["F_NumParam6"].ToString() + "<22><>";
}
if (devinfo1.DeviceKind == 2)
{
devinfo1.ArrowLocation = dvb[0]["F_NumParam4"].ToString();
}
devinfo1.Barcode = dvb[0]["F_TxtParam"].ToString();
}
else
{
devinfo1.Barcode = "";
devinfo1.ArrowLocation = "";
}
dvb = null;
#endregion <EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ǰλ<EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>е<EFBFBD><D0B5><EFBFBD><E8B1B8>Ϣ
BaseDeviceService.SetDeviceInfo(devinfo1);
//LogUtil.WriteLog("", "<22><><EFBFBD><EFBFBD>PLC<4C><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CParsePLCData:" + devinfo1.DeviceIndex);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬
if (reportstatus == true)
{
#region 1<EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD>
if (devinfo1.DeviceKind == 1 || devinfo1.DeviceKind == 2 || devinfo1.DeviceKind == 3 || devinfo1.DeviceKind == 5)
{
int CurRunState = 0;
if (devinfo1.RunState == 0 || devinfo1.RunState == 5)
{
CurRunState = 0;
}
else if (devinfo1.RunState == 4)
{
CurRunState = 3;
}
else
{
CurRunState = devinfo1.RunState;
}
try
{
#region <EFBFBD>ϱ<EFBFBD><EFBFBD>״̬<EFBFBD>͵<EFBFBD>ǰʱ<EFBFBD><EFBFBD> <EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string dtime = DateTime.Now.ToString("u");
dtime = dtime.Substring(0, dtime.Length - 1);
dtime = dtime.Substring(0, dtime.Length - 1);
string sql = "";
if (DbHelperSQL.Exists(string.Format("select DEVICE_CODE from DEVICE_MONITOR where DEVICE_CODE ={0} ", devinfo1.DeviceIndex)))
{
sql = string.Format("Update DEVICE_MONITOR set DEVICE_CUR_STATUS={0},UPDATE_TIME='{1}',HAVE_GOODS={3} where DEVICE_CODE ={2}", CurRunState, dtime, devinfo1.DeviceIndex, devinfo1.HaveGoods ? 1 : 0);
}
else
{
sql = string.Format("insert into DEVICE_MONITOR (DEVICE_CUR_STATUS,UPDATE_TIME,HAVE_GOODS,DEVICE_CODE) values({0},'{1}',{3},{2})", CurRunState, dtime, devinfo1.DeviceIndex, devinfo1.HaveGoods ? 1 : 0);
}
DbHelperSQL.ExecuteSql(sql);
devinfo1.LastRunState = CurRunState;
BaseDeviceService.SetDeviceLastRunState(devinfo1);
#endregion <EFBFBD>ϱ<EFBFBD><EFBFBD>״̬<EFBFBD>͵<EFBFBD>ǰʱ<EFBFBD><EFBFBD> <EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
catch (Exception ex)
{
_CParsePLCError = string.Format("<22>ϱ<EFBFBD><CFB1>豸{0}<7D><><EFBFBD>豸״̬ʱ<CCAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:{1}", devinfo1.DeviceIndex, ex.Message);
}
}
#endregion 1<EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD>
}
#endregion
}
}
catch (Exception exa)
{
_CParsePLCError = "<22><><EFBFBD><EFBFBD>PLC<4C><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵļ<DDB5>¼<EFBFBD>豸״̬ʱ<CCAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + exa.Message;
}
}
/// <summary>
/// ȡ<><C8A1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>ȷ<EFBFBD>ϰ<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źţ<C5BA>0<EFBFBD><30>1<EFBFBD><31>
/// </summary>
/// <param name="deviceIdx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns>0<><30>1</returns>
public static int GetDevicePhotoelectric(int deviceIdx)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
DataView dvle = DbHelperSQL.Query("SELECT F_DeviceIndex, F_DeviceKindIndex,F_DBWGetLength," +
" F_DBW2Address FROM T_Base_Device WHERE ((F_DeviceKindIndex = 14)" +
" OR (F_DeviceKindIndex = 18)) and (F_DBW2Address is not NULL) and F_DeviceIndex=" + deviceIdx + "").Tables[0].DefaultView;
int glen = 0;
int IfVis = 0;
if (dvle.Count > 0)
{
int temp = Convert.ToInt32(dvle[0]["F_DBW2Address"]) - devinfo28.Dbw2Address;
if (Convert.ToInt32((Convert.ToDecimal(dvle[0]["F_DBWGetLength"]) * 8 - 1)) > 7)//devinfo.Dbw2Getlength
{
glen = Convert.ToInt32((Convert.ToDecimal(dvle[0]["F_DBWGetLength"]) * 8 - 1)) - 8;
temp = temp + 1;
}
else
{
glen = Convert.ToInt32((Convert.ToDecimal(dvle[0]["F_DBWGetLength"]) * 8 - 1));
}
if (temp >= 0)
{
IfVis = CCarryConvert.GetBitFromInteger(CStaticClass.AllReturns[temp], glen);
return IfVis;
}
else
{
return -1;
}
}
else
{
return -1;
}
#endregion
}
else
{
return -1;
}
}
else
{
return -1;
}
}
catch
{
return -1;
}
}
/// <summary>
/// 20101118<31><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>bitλ<74><CEBB>ȡ<EFBFBD><C8A1>F_SplitByte<74><65><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>bitֵ<74><D6B5>0,1
/// </summary>
/// <param name="deviceIdx"></param>
/// <param name="bit"></param>
/// <returns></returns>
public static int GetDevicePhotoelectric(int deviceIdx, int abit)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
DataView dvle = new DataView();
try
{
dvle = DbHelperSQL.Query("SELECT F_SplitByte FROM T_Base_Device WHERE F_DeviceIndex=" + deviceIdx + " and F_SplitByte>=0").Tables[0].DefaultView;
}
catch (Exception e)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", e.Message + "\r\n", true);
}
int glen = 0;
int IfVis = 0;
if (dvle.Count > 0)
{
int temp = Convert.ToInt32(dvle[0]["F_SplitByte"]) - devinfo28.Dbw2Address;
if (abit > 7)
{
glen = abit - 8;
temp = temp + 1;
}
else
{
glen = abit;
}
if (temp >= 0)
{
if (temp!=305)
{
IfVis = CCarryConvert.GetBitFromInteger(CStaticClass.AllReturns[temp], glen);
}
return IfVis;
}
else
{
return -1;
}
}
else
{
return -1;
}
#endregion
}
else
{
return -1;
}
}
else
{
return -1;
}
}
catch
{
return -1;
}
}
/// <summary>
/// 20101118<31><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>bitλ<74><CEBB>ȡ<EFBFBD><C8A1>F_SplitByte<74><65><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>bitֵ<74><D6B5>0,1
/// </summary>
/// <param name="deviceIdx"></param>
/// <param name="bit"></param>
/// <returns></returns>
public static int GetDevicePhotoelectric(Model.MDevice deviceinfo, int abit)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
int glen = 0;
int IfVis = 0;
if (deviceinfo.SplitByte > 0)
{
int temp = Convert.ToInt32(deviceinfo.SplitByte) - devinfo28.Dbw2Address;
if (abit > 7)
{
glen = abit - 8;
temp = temp + 1;
}
else
{
glen = abit;
}
if (temp >= 0)
{
IfVis = CCarryConvert.GetBitFromInteger(CStaticClass.AllReturns[temp], glen);
return IfVis;
}
else
{
return -1;
}
}
else
{
return -1;
}
#endregion
}
else
{
return -1;
}
}
else
{
return -1;
}
}
catch
{
return -1;
}
}
/// <summary>
/// ȡ<><C8A1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸״̬:[0]<5D><>д<EFBFBD><D0B4>־;[1]״̬;[2]<5D><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>[3]X<><58><EFBFBD><EFBFBD>;[4]Y<><59><EFBFBD><EFBFBD>;[5]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/// </summary>
/// <param name="deviceIdx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static int[] GetDeviceState(int deviceIdx)
{
try
{
if (devinfo28.DeviceKind == 28)
{
if (CStaticClass.AllReturns != null)
{
#region <EFBFBD><EFBFBD>ȡ<EFBFBD>״̬
DataView dvle = DbHelperSQL.Query("SELECT F_DeviceIndex, F_DeviceKindIndex,F_DBWGetLength," +
" F_DBW2Address FROM T_Base_Device WHERE (F_DBW2Address is not NULL) and F_DeviceIndex=" + deviceIdx + "").Tables[0].DefaultView;
if (dvle.Count > 0)
{
int temp = Convert.ToInt32(dvle[0]["F_DBW2Address"]) - devinfo28.Dbw2Address;//devinfo.Dbw2Address
decimal glen = Convert.ToDecimal(dvle[0]["F_DBWGetLength"]);//devinfo.Dbw2Getlength
int[] states = new int[6];
switch (dvle[0]["F_DeviceKindIndex"].ToString())//devinfo.DeviceKind.ToString()
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>Ϣ
case "1"://<2F>Ѷ<EFBFBD><D1B6><EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = CStaticClass.AllReturns[temp + 7] + (CStaticClass.AllReturns[temp + 6] << 8) + (CStaticClass.AllReturns[temp + 5] << 16) + (CStaticClass.AllReturns[temp + 4] << 32);//X<><58><EFBFBD><EFBFBD>
states[4] = CStaticClass.AllReturns[temp + 11] + (CStaticClass.AllReturns[temp + 10] << 8) + (CStaticClass.AllReturns[temp + 9] << 16) + (CStaticClass.AllReturns[temp + 8] << 32);//Y<><59><EFBFBD><EFBFBD>
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case "2"://<2F><><EFBFBD>ͻ<EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = 0;
states[4] = 0;
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case "5"://<2F><><EFBFBD>̻<EFBFBD><CCBB>͵<EFBFBD><CDB5>̻<EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];
states[3] = (CStaticClass.AllReturns[temp + 4] << 8) + CStaticClass.AllReturns[temp + 5];
states[4] = 0;
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case "32"://<2F><>ѡģ<D1A1><C4A3>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = 0;
states[4] = 0;
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case "33"://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = CStaticClass.AllReturns[temp + 5];//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
states[4] = (CStaticClass.AllReturns[temp + 6] << 8) + CStaticClass.AllReturns[temp + 7];
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case "34"://AGV
states[0] = CStaticClass.AllReturns[temp];//<2F><>д<EFBFBD><D0B4>־
states[1] = CStaticClass.AllReturns[temp + 1];//״̬
states[2] = (CStaticClass.AllReturns[temp + 2] << 8) + CStaticClass.AllReturns[temp + 3];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
states[3] = 0;
states[4] = 0;
states[5] = deviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
#endregion
}
return states;
}
else
{
return null;
}
#endregion
}
else
{
return null;
}
}
else
{
return null;
}
}
catch
{
return null;
}
}
/// <summary>
/// <20>޸ı<DEB8><C4B1><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="devInx"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static bool AlterRoute(int devInx, int state)
{
//string ss1 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
try
{
DataView dv = DbHelperSQL.Query("select distinct F_RouteID from T_Base_Route_Device where F_DeviceIndex=" + devInx).Tables[0].DefaultView;
for (int i = 0; i < dv.Count; i++)
{
if (state >= 30)
{
#region
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B6A8>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
string sql = " SELECT T_Base_Route_Device.F_RouteIDSub, SUM(T_Base_Device.F_ErrorCode) AS ErrorCodes " +
" FROM T_Base_Route_Device,T_Base_Device where T_Base_Route_Device.F_DeviceIndex = T_Base_Device.F_DeviceIndex" +
" and T_Base_Route_Device.F_RouteID=" + dv[i]["F_RouteID"] + " GROUP BY T_Base_Route_Device.F_RouteIDSub ";
DataView dvr = DbHelperSQL.Query(sql).Tables[0].DefaultView;
bool ifUsable = false;
for (int kk = 0; kk < dvr.Count; kk++)
{
if (Convert.ToInt32(dvr[kk]["ErrorCodes"]) <= 0)
{
ifUsable = true;
break;
}
}
if (ifUsable == false)
{
int ups = DbHelperSQL.ExecuteSql("update t_base_route set F_Status=0 where f_routeid=" + dv[i]["F_RouteID"] + " and F_Status=1 and F_AutoUpdate=1 ");
}
#endregion
}
else
{
#region <EFBFBD><EFBFBD>޴<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> ״̬<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD>ֹʹ<EFBFBD><EFBFBD>
DataView dv1 = DbHelperSQL.Query("SELECT SUM(T_Base_Device.F_ErrorCode) as errcode FROM T_Base_Device ,T_Base_Route_Device" +
" where T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and T_Base_Route_Device.F_RouteID=" + dv[i]["F_RouteID"]).Tables[0].DefaultView;
if (dv1.Count > 0)
{
int errcode = 0;
if (Microsoft.VisualBasic.Information.IsNumeric(dv1[0]["errcode"]) == true)
{
errcode = Convert.ToInt32(dv1[0]["errcode"]);
}
if (errcode <= 0)
{
//20101011
int ups = DbHelperSQL.ExecuteSql("update t_base_route set F_Status=1 where f_routeid=" + dv[i]["F_RouteID"] + " and F_Status=0 and F_AutoUpdate=1 ");
}
}
#endregion
}
}
return true;
}
catch (Exception ex)
{
_CParsePLCError = "<22><><EFBFBD><EFBFBD>PLC<4C><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>޸<EFBFBD>·<EFBFBD><C2B7>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return false;
}
}
private static void UpdateErrorCode(int devInx, int errorCode)
{
DbHelperSQL.ExecuteSql("UPDATE T_Base_Device SET F_ErrorCode = " + errorCode + " WHERE (F_DeviceIndex = " + devInx + ")and (F_ErrorCode <> " + errorCode + ")");
}
}
}