AHTC/RGD/RGD.OPCClient/CSendDeviceOrder.cs

853 lines
40 KiB
C#
Raw Permalink Normal View History

2025-05-19 09:22:33 +08:00
using Microsoft.VisualBasic;
using RGD.Common;
using RGD.DataService;
using RGD.DBUtility;
using System;
using System.Data;
namespace RGD.OPCClient
{
public class CSendDeviceOrder : ISendDeviceOrder
{
private string _commLayerError;
public string CommLayerError
{
get { return _commLayerError; }
set { _commLayerError = value; }
}
private Model.MDevice devinfo;
public CSendDeviceOrder()
{
}
/// <summary>
/// <20><>˫<EFBFBD><CBAB><EFBFBD>ĶѶ<C4B6><D1B6><EFBFBD>ͨѶ<CDA8><D1B6>ʽ
/// </summary>
/// <param name="MessageIndex">ָ<><D6B8>ͷ</param>
/// <param name="TaskIndex"><3E>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="Order">ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="DeviceIndex"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="StartX"><3E><><EFBFBD><EFBFBD>X<EFBFBD><58></param>
/// <param name="StartY"><3E><><EFBFBD><EFBFBD>Y<EFBFBD><59></param>
/// <param name="StartZ"><3E><><EFBFBD><EFBFBD>Z<EFBFBD><5A></param>
/// <param name="EndX"><3E>յ<EFBFBD>X<EFBFBD><58></param>
/// <param name="EndY"><3E>յ<EFBFBD>Y<EFBFBD><59></param>
/// <param name="EndZ"><3E>յ<EFBFBD>Z<EFBFBD><5A></param>
/// <param name="DoubleFork">˫<><CBAB><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD></param>
/// <returns></returns>
public bool SendDeviceOrder(int MessageIndex, int TaskIndex, int Order, int DeviceIndex, int StartX, int StartY, int StartZ, int EndX, int EndY, int EndZ, string DoubleFork)
{
return true;
}
/// <summary>
/// <20><><EFBFBD>ͶѶ<CDB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="MessageIndex"><3E><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD></param>
/// <param name="TaskIndex"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="Order"><3E>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
///1-<2D><>λ
///2-<2D><>ȡ
///3-<2D><><EFBFBD><EFBFBD>
///4-ȡ<><C8A1>
///5-<2D>Ż<EFBFBD>
///6-ȡ<>Ż<EFBFBD>
/// <param name="DeviceIndex"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="StartX"><3E><>ʼx<CABC><78><EFBFBD><EFBFBD><EAA3AC>-<2D>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="StartY"><3E><>ʼy<CABC><79><EFBFBD><EFBFBD><EAA3AC>-<2D>߶ȷ<DFB6><C8B7><EFBFBD></param>
/// <param name="StartZ"><3E><>ʼz<CABC><7A><EFBFBD><EFBFBD><EAA3AC>-<2D><><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬1-<2D><><EFBFBD>࣬2-<2D>Ҳ<EFBFBD></param>
/// <param name="EndX">Ŀ<><C4BF>x<EFBFBD><78><EFBFBD><EFBFBD><EAA3AC>-<2D>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="EndY">Ŀ<><C4BF>y<EFBFBD><79><EFBFBD><EFBFBD><EAA3AC>-<2D>߶ȷ<DFB6><C8B7><EFBFBD></param>
/// <param name="EndZ">Ŀ<><C4BF>z<EFBFBD><7A><EFBFBD><EFBFBD><EAA3AC>-<2D><><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬1-<2D><><EFBFBD>࣬2-<2D>Ҳ<EFBFBD></param>
/// <returns><3E><><EFBFBD>ͶѶ<CDB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD></returns>
public bool SendDeviceOrder(int MessageIndex, int TaskIndex, int Order, int DeviceIndex, int StartX, int StartY, int StartZ, int EndX, int EndY, int EndZ)
{
string[] itemnames;
string[] itemvalues;
//if (MessageIndex == 2)//20101220
//{
// Order = 100;
//}
try
{
int StartZ1 = 0; int EndZ1 = 0;
int sn = 0;//int UseAwayFork=0;int UseAwayFork1=0;//dzf
DataView dv = DbHelperSQL.Query("SELECT F_DBW1Address,F_DBWSendLength,F_DeviceIndex,F_DeviceKindIndex,F_OPCProgID, F_RemoteIP FROM T_Base_Device where F_DeviceIndex=" + DeviceIndex).Tables[0].DefaultView;
if (dv.Count == 0)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>û<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
return false;
}
else
{
if ((dv[0]["F_DeviceKindIndex"].ToString() != "1"))
{//<2F>Ѷ<EFBFBD><D1B6><EFBFBD>ʹ<EFBFBD>ô˷<C3B4><CBB7><EFBFBD>
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣺶Ѷ<F3A3BAB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<E8B1B8>ô˷<C3B4><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ!";
return false;
}
#region <EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>
if (dv[0]["F_DeviceKindIndex"].ToString() == "1")
{
devinfo = BaseDeviceService.GetDeviceInfo(DeviceIndex);
#region ˫<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
//if (devinfo.IfCorrelDoubleFork == "1")
//{
// //<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB>ȡ<EFBFBD><C8A1>ָ<EFBFBD><EFBFBD>ڴ˾<DAB4><CBBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>桢ͬ<E6A1A2><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD><EFBFBD>20100323
// if ((Order == 4) || (Order == 2))
// {
// #region <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// //20110707
// int managetaskindex;
// int taskkindindex;
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ST_CELL<4C><4C>FDoubleFork=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD>棬ż<E6A3AC><C5BC><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><E6A3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B0B4>ST_CELL<4C><4C>FDoubleFork<72><6B>ֵ
// string[] rr = Model.CGeneralFunction.GetDoubleForkMonitorInfo(TaskIndex, DeviceIndex);
// if (rr == null)
// {
// //<2F><><EFBFBD><EFBFBD>F_UseAwayFork='-',<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD><D9B7><EFBFBD>
// if (Model.CGeneralFunction.GetUseAwayFork(TaskIndex) == "-")
// {
// switch (Model.CGeneralFunction.GetDoubleForkFromST_CELL(StartZ, StartX, StartY, Model.CGeneralFunction.GetWAREHOUSEFromSTCELL(DeviceIndex)))
// {
// case 1:
// UseAwayFork = 0;
// break;
// case 2:
// UseAwayFork = 1;
// break;
// case 0:
// if ((StartX % 2) == 0)
// {
// UseAwayFork = 1;
// }
// else
// {
// UseAwayFork = 0;
// }
// break;
// }
// managetaskindex = Model.CGeneralFunction.GetManageTaskIndexfromMonitor(TaskIndex);
// taskkindindex = Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(TaskIndex);
// dbo.ExceSQL("UPDATE T_Monitor_Task SET F_UseAwayFork = '" + UseAwayFork + "' WHERE (F_ManageTaskIndex = " +
// managetaskindex + ") AND (F_ManageTASKKINDINDEX = " +
// taskkindindex + ")");//20101220
// dbo.ExceSQL("update T_Manage_Task set FUseAwayFork= '" + UseAwayFork + "' where FID = " + managetaskindex + " and F_ManageTASKKINDINDEX= " + taskkindindex + "");
// }
// else
// {
// UseAwayFork = Convert.ToInt32(Model.CGeneralFunction.GetUseAwayFork(TaskIndex));
// }
// if (UseAwayFork == 1)//Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// if (StartX != 1)
// {
// StartX = StartX - 1;
// }
// }
// }
// else
// {
// if (Model.CGeneralFunction.GetUseAwayFork(TaskIndex) == "-")
// {
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ST_CELL<4C><4C>FDoubleFork=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// UseAwayFork = Model.CGeneralFunction.GetUseAwayFork(TaskIndex, DeviceIndex, Order);
// managetaskindex = Model.CGeneralFunction.GetManageTaskIndexfromMonitor(TaskIndex);
// taskkindindex = Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(TaskIndex);
// dbo.ExceSQL("UPDATE T_Monitor_Task SET F_UseAwayFork = '" + UseAwayFork + "' WHERE (F_ManageTaskIndex = " +
// managetaskindex + ") AND (F_ManageTASKKINDINDEX = " +
// taskkindindex + ")");//20101220
// dbo.ExceSQL("update T_Manage_Task set FUseAwayFork= '" + UseAwayFork + "' where FID = " + managetaskindex + " and F_ManageTASKKINDINDEX= " + taskkindindex + "");
// }
// else
// {
// UseAwayFork =Convert.ToInt32( Model.CGeneralFunction.GetUseAwayFork(TaskIndex));
// }
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// if (UseAwayFork == 1)//Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// UseAwayFork1 = 0;
// if (StartX != 1)
// {
// StartX = StartX - 1;
// }
// }
// else
// {
// UseAwayFork1 = 1;
// }
// int TaskIndex1 = Convert.ToInt32(rr[0]);
// managetaskindex = Model.CGeneralFunction.GetManageTaskIndexfromMonitor(TaskIndex1);
// taskkindindex = Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(TaskIndex1);
// dbo.ExceSQL("UPDATE T_Monitor_Task SET F_UseAwayFork = '" + UseAwayFork1 + "' WHERE (F_ManageTaskIndex = " +
// managetaskindex + ") AND (F_ManageTASKKINDINDEX = " +
// taskkindindex + ")");//20101220
// dbo.ExceSQL("update T_Manage_Task set FUseAwayFork= '" + UseAwayFork1 + "' where FID = " + managetaskindex + " and F_ManageTASKKINDINDEX= " + taskkindindex + "");
// }
// #endregion
// #region ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD><EFBFBD>
// if (Model.CGeneralFunction.DoubleForkIfSync(TaskIndex, DeviceIndex, devinfo.DeviceKind) == true)
// {
// if (UseAwayFork == 1)//Զ<><D4B6><EFBFBD><EFBFBD>
// {
// StartZ = Model.CGeneralFunction.GetZCoorFromMonitor(TaskIndex, DeviceIndex, Order);//Զ<><D4B6><EFBFBD><EFBFBD>
// EndZ = 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// StartZ1 = Model.CGeneralFunction.GetDoubleForkZ(Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(TaskIndex),
// Model.CGeneralFunction.GetManageTaskIndexfromMonitor(TaskIndex), DeviceIndex, Order); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// EndZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// }
// else
// { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// StartZ1 = Model.CGeneralFunction.GetZCoorFromMonitor(TaskIndex, DeviceIndex, Order); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// EndZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// StartZ = Model.CGeneralFunction.GetDoubleForkZ(Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(TaskIndex),
// Model.CGeneralFunction.GetManageTaskIndexfromMonitor(TaskIndex), DeviceIndex, Order);//Զ<><D4B6><EFBFBD><EFBFBD>
// EndZ = 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// }
// }
// else
// {
// if (UseAwayFork == 1)//Զ<><D4B6><EFBFBD><EFBFBD>
// {
// StartZ = Model.CGeneralFunction.GetZCoorFromMonitor(TaskIndex,DeviceIndex,Order);//Զ<><D4B6><EFBFBD><EFBFBD>
// EndZ = 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// StartZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// EndZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// }
// else
// { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// StartZ1 = Model.CGeneralFunction.GetZCoorFromMonitor(TaskIndex, DeviceIndex, Order); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// EndZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// StartZ =0;//Զ<><D4B6><EFBFBD><EFBFBD>
// EndZ = 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// }
// }
// #endregion
// }
// //<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD>ͻ<EFBFBD>ָ<EFBFBD><EFBFBD>ڴ˾<DAB4><CBBE><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD><EFBFBD>20100323
// if ((Order == 5) || (Order == 3))
// {
// UseAwayFork = Convert.ToInt32(Model.CGeneralFunction.GetUseAwayFork(TaskIndex));
// #region ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD><EFBFBD>
// if (Model.CGeneralFunction.DoubleForkIfSync(TaskIndex, DeviceIndex, devinfo.DeviceKind) == true)
// {
// if (UseAwayFork == 1)//Զ<><D4B6><EFBFBD><EFBFBD>
// {
// EndZ = Model.CGeneralFunction.GetZCoorFromMonitor(TaskIndex, DeviceIndex, Order);//Զ<><D4B6><EFBFBD><EFBFBD>
// StartZ= 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// EndZ1 = Model.CGeneralFunction.GetDoubleForkZ(Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(TaskIndex),
// Model.CGeneralFunction.GetManageTaskIndexfromMonitor(TaskIndex), DeviceIndex, Order); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// StartZ1= 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// }
// else
// { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// EndZ1= Model.CGeneralFunction.GetZCoorFromMonitor(TaskIndex, DeviceIndex, Order); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// StartZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// EndZ = Model.CGeneralFunction.GetDoubleForkZ(Model.CGeneralFunction.GetManageTaskKindIndexFromMonitor(TaskIndex),
// Model.CGeneralFunction.GetManageTaskIndexfromMonitor(TaskIndex), DeviceIndex, Order);//Զ<><D4B6><EFBFBD><EFBFBD>
// StartZ = 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// }
// }
// else
// {
// if (UseAwayFork == 1)//Զ<><D4B6><EFBFBD><EFBFBD>
// {
// EndZ = Model.CGeneralFunction.GetZCoorFromMonitor(TaskIndex, DeviceIndex, Order);//Զ<><D4B6><EFBFBD><EFBFBD>
// StartZ = 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// StartZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// EndZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// }
// else
// { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// EndZ1 = Model.CGeneralFunction.GetZCoorFromMonitor(TaskIndex, DeviceIndex, Order); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// StartZ1 = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// StartZ = 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// EndZ = 0;//Զ<><D4B6><EFBFBD><EFBFBD>
// }
// }
// #endregion
// if (Model.CGeneralFunction.GetUseAwayFork(TaskIndex) == "1")//Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// if (EndX != 1)
// {
// EndX = EndX - 1;
// }
// }
// }
//}
#endregion ˫<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
itemnames = new string[9];//20101220
itemvalues = new string[9];
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ת<EFBFBD><EFBFBD>ΪPLC<EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////01-29-23;01-30-23;01-24-23;01-23-23,[01-22-23,01-28-23]Ϊ<><CEAA>¥<EFBFBD><C2A5><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2>䣬1<E4A3AC>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĻ<D0B5>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>+1<><31>2<EFBFBD><32>23<32><EFBFBD><E3B6BC>+1
//if ((((StartZ == 1) || (StartZ1 == 1)) && (StartY == 23) && ((StartX != 23) && (StartX != 22) && (StartX != 24) && (StartX != 28) && (StartX != 29) && (StartX != 30)))
// || (((StartZ == 2) || (StartZ1 == 2)) && (StartY == 23)))
//{
// StartY++;
//}
//if ((((EndZ == 1) || (EndZ1 == 1)) && (EndY == 23) && ((EndX != 23) && (EndX != 22) && (EndX != 24) && (EndX != 28) && (EndX != 29) && (EndX != 30)))
// || (((EndZ == 2) || (EndZ1 == 2)) && (EndY == 23)))
//{
// EndY++;
//}
#endregion ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (StartZ != 0)
{
if (StartZ % 2 == 0)
{
StartZ = 2;
}
else
{
StartZ = 1;
}
}
if (EndZ != 0)
{
if (EndZ % 2 == 0)
{
EndZ = 2;
}
else
{
EndZ = 1;
}
}
////////////////
if (StartZ1 != 0)
{
if (StartZ1 % 2 == 0)
{
StartZ1 = 2;
}
else
{
StartZ1 = 1;
}
}
if (EndZ1 != 0)
{
if (EndZ1 % 2 == 0)
{
EndZ1 = 2;
}
else
{
EndZ1 = 1;
}
}
#endregion ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ת<EFBFBD><EFBFBD>ΪPLC<EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sn = Convert.ToInt32(dv[0]["F_DBW1Address"]);
itemnames[0] = "DB1,byte" + Convert.ToString(sn + 0);//<2F><>Ϣͷ
itemvalues[0] = "0";
itemnames[1] = "DB1,byte" + Convert.ToString(sn + 1);//<2F><><EFBFBD><EFBFBD>
itemvalues[1] = Order.ToString();
itemnames[2] = "DB1,int" + Convert.ToString(sn + 2);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
itemvalues[2] = TaskIndex.ToString();
itemnames[3] = "DB1,byte" + Convert.ToString(sn + 4);
itemvalues[3] = StartX.ToString();
itemnames[4] = "DB1,byte" + Convert.ToString(sn + 5);
itemvalues[4] = StartY.ToString();
//itemnames[5] = "DB1,byte" + Convert.ToString(sn + 6);
//itemvalues[5] = StartZ1.ToString();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
itemnames[5] = "DB1,byte" + Convert.ToString(sn + 6);
itemvalues[5] = StartZ.ToString();
itemnames[6] = "DB1,byte" + Convert.ToString(sn + 7);
itemvalues[6] = EndX.ToString();
itemnames[7] = "DB1,byte" + Convert.ToString(sn + 8);
itemvalues[7] = EndY.ToString();
//itemnames[9] = "DB1,byte" + Convert.ToString(sn + 10);
//itemvalues[9] = EndZ1.ToString();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
itemnames[8] = "DB1,byte" + Convert.ToString(sn + 9);
itemvalues[8] = EndZ.ToString();//Զ<><D4B6><EFBFBD><EFBFBD>
CCommonOPCClient.Hostname = AppSettings.GetValue("HostName");//20090922 devinfo.RemoteIP;
CCommonOPCClient.ProgID = AppSettings.GetValue("OPCProgID");
if (CCommonOPCClient.SyncWriteAllItemValue(itemnames, itemvalues) == false)
{
return false;
}
itemnames[0] = "DB1,byte" + Convert.ToString(sn + 0);//<2F><>Ϣͷ
itemvalues[0] = MessageIndex.ToString();
if (CCommonOPCClient.SyncWriteAllItemValue(itemnames, itemvalues) == false)
{
return false;
}
string sss = "";
for (int j = 0; j <= 8; j++)
{
sss += "**" + itemvalues[j];
}
CCarryConvert.WriteDarkCasket("OPCClient", "SendDeviceOrder", DeviceIndex.ToString(), sss);
if (WriteBarcode(DeviceIndex, TaskIndex) == false)
{
return false;
}
}
#endregion <EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>
}
return true;
}
catch (Exception ex)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return false;
}
finally
{
itemnames = null;
itemvalues = null;
}
}
/// <summary>
/// <20><><EFBFBD>ʹ<EFBFBD><CDB4>󳵡<EFBFBD><F3B3B5A1><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/// </summary>
/// <param name="MessageIndex"><3E><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD></param>
/// <param name="TaskIndex"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="Order"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>
///1-<2D><>λ
///2-<2D><><EFBFBD>ӻ<EFBFBD>
///3-<2D><><EFBFBD>ͻ<EFBFBD>
///4-<2D>ҽӻ<D2BD>
///5-<2D><><EFBFBD>ͻ<EFBFBD>
///6-ֹͣ
///7-<2D>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>5<EFBFBD>ֽ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>
///1-<2D><><EFBFBD><EFBFBD><E2A3A8><EFBFBD><EFBFBD><EFBFBD>
///2-<2D><><EFBFBD><EFBFBD><E2A3A8><EFBFBD><EFBFBD><EFBFBD>
///3-<2D>ͻ<EFBFBD>
///4-<2D>ӻ<EFBFBD>
///5-ֹͣ
/// <param name="DeviceIndex"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
///<param name="ArrowDeviceIndex"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳵴<EFBFBD><F3B3B5B4><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// 0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><E8B1B8><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>65535<33><35><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns><3E><><EFBFBD>ʹ<EFBFBD><CDB4>󳵡<EFBFBD><F3B3B5A1><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD></returns>
public bool SendDeviceOrder(int MessageIndex, int TaskIndex, int Order, int DeviceIndex, int ArrowDeviceIndex)
{
Model.MDevice askdev;
string[] itemnames;
string[] itemvalues;
//if (MessageIndex == 2) Order = 100;//20101220
try
{
//20101220
int neartaskno = 0, fartaskno = 0, outtimes = 0; //UseAwayFork = 0; //dzf//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int sn = 0;
//int floor = 0;//20110318 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dzf
DataView dv = DbHelperSQL.Query("SELECT F_DBW1Address,F_DBWSendLength,F_DeviceIndex,F_DeviceKindIndex,F_OPCProgID, F_RemoteIP FROM T_Base_Device where F_DeviceIndex=" + DeviceIndex).Tables[0].DefaultView;
if (dv.Count == 0)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
return false;
}
else
{
askdev = BaseDeviceService.GetDeviceInfo(DeviceIndex);
itemnames = new string[4];
itemvalues = new string[4];
outtimes = 3;
if (dv[0]["F_DeviceKindIndex"].ToString() == "7")
{
return true;
}
if ((dv[0]["F_DeviceKindIndex"].ToString() == "1"))
{//<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˷<C3B4><CBB7><EFBFBD>
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣺶Ѷ<F3A3BAB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˷<C3B4><CBB7><EFBFBD>!";
return false;
}
sn = Convert.ToInt32(dv[0]["F_DBW1Address"]);
itemnames[0] = "DB1,byte" + Convert.ToString(sn + 1);
itemvalues[0] = Order.ToString();
if (askdev.IfCorrelDoubleFork == "1")//20101220
{
itemnames[1] = "DB1,int" + Convert.ToString(sn + 2);
itemvalues[1] = neartaskno.ToString();
itemnames[2] = "DB1,int" + Convert.ToString(sn + 4);
itemvalues[2] = fartaskno.ToString();
itemnames[3] = "DB1,byte" + Convert.ToString(sn + 0);
itemvalues[3] = "0";
itemnames[4] = "DB1,int" + Convert.ToString(sn + 6);
itemvalues[4] = ArrowDeviceIndex.ToString();
}
else
{
itemnames[1] = "DB1,int" + Convert.ToString(sn + 2);
itemvalues[1] = TaskIndex.ToString();
itemnames[2] = "DB1,int" + Convert.ToString(sn + 4);
itemvalues[2] = ArrowDeviceIndex.ToString();
itemnames[3] = "DB1,byte" + Convert.ToString(sn + 0);
itemvalues[3] = "0";
if (askdev.UseCommonDB == "1")
{
itemnames[4] = "DB1,int" + Convert.ToString(sn + 6);
itemvalues[4] = DeviceIndex.ToString();
}
}
CCommonOPCClient.Hostname = AppSettings.GetValue("HostName");//20090922 devinfo.RemoteIP;
CCommonOPCClient.ProgID = AppSettings.GetValue("OPCProgID");
if (CCommonOPCClient.SyncWriteAllItemValue(itemnames, itemvalues) == false)
{
return false;
}
itemnames[3] = "DB1,byte" + Convert.ToString(sn + 0);
itemvalues[3] = MessageIndex.ToString();
if (CCommonOPCClient.SyncWriteAllItemValue(itemnames, itemvalues) == false)
{
return false;
}
string sss = "";
for (int j = 0; j <= outtimes; j++)
{
sss += "**" + itemvalues[j];
}
CCarryConvert.WriteDarkCasket("OPCClient", "SendDeviceOrder", DeviceIndex.ToString(), sss);
if (MessageIndex == 1)
{
if (WriteBarcode(DeviceIndex, TaskIndex) == false)
{
return false;
}
}
}
return true;
}
catch (Exception ex)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return false;
}
finally
{
askdev = null;
itemnames = null;
itemvalues = null;
}
}
/// <summary>
/// <20><><EFBFBD>ͼ<EFBFBD>ѡ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/// </summary>
/// <param name="MessageIndex"><3E><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD></param>
/// <param name="TaskIndex"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="Order"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="DeviceIndex"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
///<param name="GoodsLocation">ʮ<><CAAE><EFBFBD><EFBFBD>:ץ1/9<><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>257(100000001)</param>
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD></returns>
public bool SendDeviceOrder(int MessageIndex, int TaskIndex, int Order, int DeviceIndex, string GoodsLocation)
{
Model.MDevice askdev;
string[] itemnames;
string[] itemvalues;
//if (MessageIndex == 2) Order = 100;//20101220
try
{
//20101220
int outtimes = 0;
int sn = 0;
DataView dv = DbHelperSQL.Query("SELECT F_DBW1Address,F_DBWSendLength,F_DeviceIndex,F_DeviceKindIndex,F_OPCProgID, F_RemoteIP FROM T_Base_Device where F_DeviceIndex=" + DeviceIndex).Tables[0].DefaultView;
if (dv.Count == 0)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
return false;
}
else
{
askdev = BaseDeviceService.GetDeviceInfo(DeviceIndex);
itemnames = new string[4];
itemvalues = new string[4];
outtimes = 3;
if (dv[0]["F_DeviceKindIndex"].ToString() == "7")
{
return true;
}
if ((dv[0]["F_DeviceKindIndex"].ToString() == "1"))
{//<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˷<C3B4><CBB7><EFBFBD>
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣺶Ѷ<F3A3BAB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˷<C3B4><CBB7><EFBFBD>!";
return false;
}
sn = Convert.ToInt32(dv[0]["F_DBW1Address"]);
itemnames[0] = "DB1,byte" + Convert.ToString(sn + 1);
itemvalues[0] = Order.ToString();
itemnames[1] = "DB1,int" + Convert.ToString(sn + 2);
itemvalues[1] = TaskIndex.ToString();
itemnames[2] = "DB1,int" + Convert.ToString(sn + 4);
itemvalues[2] = GoodsLocation;
itemnames[3] = "DB1,byte" + Convert.ToString(sn + 0);
itemvalues[3] = "0";
CCommonOPCClient.Hostname = AppSettings.GetValue("HostName");//20090922 devinfo.RemoteIP;
CCommonOPCClient.ProgID = AppSettings.GetValue("OPCProgID");
if (CCommonOPCClient.SyncWriteAllItemValue(itemnames, itemvalues) == false)
{
return false;
}
itemnames[3] = "DB1,byte" + Convert.ToString(sn + 0);
itemvalues[3] = MessageIndex.ToString();
if (CCommonOPCClient.SyncWriteAllItemValue(itemnames, itemvalues) == false)
{
return false;
}
string sss = "";
for (int j = 0; j <= outtimes; j++)
{
sss += "**" + itemvalues[j];
}
CCarryConvert.WriteDarkCasket("OPCClient", "SendDeviceOrder", DeviceIndex.ToString(), sss);
if (MessageIndex == 1)
{
if (WriteBarcode(DeviceIndex, TaskIndex) == false)
{
return false;
}
}
}
return true;
}
catch (Exception ex)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return false;
}
finally
{
askdev = null;
itemnames = null;
itemvalues = null;
}
}
/// <summary>
/// <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<E4B0B4><C6B7><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ϣ<EFBFBD><CFA2>15<31>ֽ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱд<CAB1><D0B4>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>д<EFBFBD><D0B4>
/// </summary>
/// <param name="DeviceIndex"><3E><><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="TobaccoCode"><3E><>3--15<31>ֽ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="HaveFirstProjectCode"><3E><>1<EFBFBD>ֽ<EFBFBD>,1-<2D><>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD>,0-<2D><>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="IfSmallTobacco"><3E><>2<EFBFBD>ֽ<EFBFBD>,1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<E4B0B4><C6B7><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ϣ<EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD></returns>
public bool SendDeviceOrder(int DeviceIndex, string TobaccoCode, bool HaveFirstProjectCode, bool IfSmallTobacco, int Count)
{
string[] itemnames = new string[16];
string[] itemvalues = new string[16];
try
{
int sn = 0;
DataView dv = DbHelperSQL.Query("SELECT F_DBW1Address,F_DBWSendLength,F_DeviceIndex,F_DeviceKindIndex,F_OPCProgID, F_RemoteIP FROM T_Base_Device where F_DeviceIndex=" + DeviceIndex).Tables[0].DefaultView;
if (dv.Count == 0)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
return false;
}
else
{
sn = Convert.ToInt32(dv[0]["F_DBW1Address"]);
itemnames[0] = "DB1,byte" + (sn + 0).ToString();
if (HaveFirstProjectCode == true)
{
itemvalues[0] = "1";
}
else
{
itemvalues[0] = "0";
}
itemnames[1] = "DB1,byte" + (sn + 1).ToString();
if (IfSmallTobacco == true)
{
itemvalues[1] = "1";
}
else
{
itemvalues[1] = "0";
}
for (int i = 2; i <= 14; i++)
{
itemnames[i] = "DB1,byte" + (sn + i).ToString();
itemvalues[i] = Strings.Asc(TobaccoCode.Substring(i - 2, 1)).ToString();
}
itemnames[15] = "DB1,byte" + (sn + 15).ToString();
itemvalues[15] = Count.ToString();
CCommonOPCClient.Hostname = AppSettings.GetValue("HostName");//20090922 devinfo.RemoteIP;
CCommonOPCClient.ProgID = AppSettings.GetValue("OPCProgID");
if (CCommonOPCClient.SyncWriteAllItemValue(itemnames, itemvalues) == false)
{
return false;
}
}
return true;
}
catch (Exception ex)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return false;
}
finally
{
itemnames = null;
itemvalues = null;
}
}
public bool WriteBarcode(int deviceindex, int taskindex)
{
Model.MDevice devinfo;
string[] itemnames = new string[11];
string[] itemvalues = new string[11];
string barcode = "";
int sn = 0;
try
{
DataView dvb = DbHelperSQL.Query("SELECT F_MonitorIndex, F_TxtParam FROM T_Monitor_Task WHERE (F_MonitorIndex = " + taskindex + ")").Tables[0].DefaultView;
if (dvb.Count > 0)
{
barcode = dvb[0]["F_TxtParam"].ToString();
if ((barcode == "-") || (barcode == "")) return true;
}
else
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EBB8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>!";
return false;
}
devinfo = BaseDeviceService.GetDeviceInfo(deviceindex);
if (devinfo.AppendBarcode > 0)
{
Model.MDevice devinfo1 = BaseDeviceService.GetDeviceInfo(devinfo.AppendBarcode);
//DataView dv = dbo.ExceSQL("SELECT F_DBW1Address,F_DBWSendLength,F_DeviceIndex,F_DeviceKindIndex,F_OPCProgID, F_RemoteIP FROM T_Base_Device where F_DeviceIndex=" + Convert.ToInt32(dv0[0]["F_AppendBarcode"])).Tables[0].DefaultView;
if (devinfo1.DeviceIndex == 0)
{
_commLayerError = "OPCClient.CSendDeviceOrder.SendDeviceOrder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EBB8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
return false;
}
else
{
//byte0,byte1,byte2,byte3,byte4
// int1 int3
//int0(byte0,byte1);int1(byte1,byte2);int2(byte2,byte3);int3(byte3,byte4)
sn = Convert.ToInt32(devinfo1.Dbw1Address);
for (int i = 0; i <= 9; i++)
{
itemnames[i] = "DB1,byte" + Convert.ToString(sn + i + 1);
itemvalues[i] = Strings.Asc(barcode.Substring((i), 1)).ToString();
}
itemnames[10] = "DB1,byte" + Convert.ToString(sn + 0);
itemvalues[10] = "1";
CCommonOPCClient.Hostname = AppSettings.GetValue("HostName");//20090922 devinfo.RemoteIP;
CCommonOPCClient.ProgID = AppSettings.GetValue("OPCProgID");
if (CCommonOPCClient.SyncWriteAllItemValue(itemnames, itemvalues) == false)
{
return false;
}
CCarryConvert.WriteDarkCasket("OPCClient", "SendDeviceOrder", deviceindex.ToString(), barcode);
}
return true;
}
else
{
return true; ;
}
}
catch (Exception ex)
{
_commLayerError = "OPCClient.CSendDeviceOrder.WriteBarcode<64><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return false;
}
finally
{
devinfo = null;
itemnames = null;
itemvalues = null;
barcode = null;
}
}
/// <summary>
/// <20><>PLC<4C><43>DB<44><42>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="ItemNames"><3E><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="ItemValues"><3E><>ǩֵ<C7A9><D6B5><EFBFBD><EFBFBD></param>
/// <returns></returns>
public bool WriteDBData(string[] ItemNames, string[] ItemValues)
{
try
{
if (CCommonOPCClient.SyncWriteAllItemValue(ItemNames, ItemValues) == false)
{
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
_commLayerError = "OPCClient.CSendDeviceOrder.WriteDBData<74><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return false;
}
finally
{
ItemNames = null;
ItemValues = null;
}
}
}
}