东风铸造整件库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2518 lines
124 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.ServiceModel;
using WcfControlMonitorLib;
using CommonLib;
using System.Globalization;
using System.Security.Cryptography;
using System.Threading;
using Model;//20151019richard
namespace wcfControlMonitorClient
{
public partial class FrmHost : Form
{
Model.MonitorInfo mi;//20140824richard
//20130122
private static FrmHost _formInstance;
//20130122
public static FrmHost FormInstance
{
get
{
if (_formInstance == null)
{
_formInstance = new FrmHost();
}
return _formInstance;
}
set { _formInstance = value; }
}
int timersum = 0;//20120513
int timerefesh = 0;//20150103增加断网恢复
DBFactory.DBOperator dbo;
DBFactory.DBOperator dboM;
/// <summary>
///
/// </summary>
public FrmHost()
{
try
{
dbo = CStaticClass.dbo;
dboM = CStaticClass.dboM;
//DBFactory.DBOperator dboMan = CStaticClass.dboM;//20130510
InitializeComponent();
CStaticClass.SystemName = CommonClassLib.AppSettings.GetValue("SystemName");
this.notifyIcon1.Text = CStaticClass.SystemName;
this.Text = CStaticClass.SystemName;
//WCSServer.ControlMonitorClient aa = new WCSServer.ControlMonitorClient(new InstanceContext(new FrmSystemInit()));
//Model.MonitorInfo mi=new Model.MonitorInfo();
//if (aa.Heartbeat(out mi) == true)
//{
// MessageBox.Show("网络中已经有WCS服务端工作,不要重复启动WCS服务!");
// this.Close();
// return;
//}
_host = new ServiceHost(typeof(WcfControlMonitorLib.SControlMonitor));
_host.Open();
//Silverlight跨域访问服务
//policyHost = ClientCrossDomainAccessPolicy.GetHost(_host.BaseAddresses[0].Host);
//policyHost.Open();
SControlMonitor.ChannelOpen += new ClientLogEventHandler(SControlMonitor_ChannelOpen);
SControlMonitor.ClientLogout += new ClientLogEventHandler(SControlMonitor_ClientLogout);
SControlMonitor.RefreshMonitor += new RefreshMonitorEventHandler(SControlMonitor_RefreshMonitor);
SControlMonitor.PLCCommonUpdateDB += new CUpdateDBEventHandler(SControlMonitor_PLCCommonUpdateDB);//PLC//20121108
SControlMonitor.AGVUpdateDB += new CUpdateDBEventHandler(SControlMonitor_AGVUpdateDB);//AGV//20121108
SControlMonitor.SendBarcode += new CStringInfoEventHandler(SControlMonitor_SendBarcode);
SControlMonitor.WriteDarkCasket += new CWriteDarkCasketEventHandler(SControlMonitor_WriteDarkCasket);//20121108
SControlMonitor.SendDeviceOrder += new CSendDeviceOrderEventHandler(SControlMonitor_SendDeviceOrder); ;//20121108
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.InnerException, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
}
}
void SControlMonitor_AGVUpdateDB(object sender, CUpdateDBChangeEventArgs e)
{//20120616
this.BeginInvoke(new MethodInvoker(delegate()
{ CStaticClass.WcfControl.DealWithListenAGVState_UpdateDB(sender,e); }));
}
void SControlMonitor_PLCCommonUpdateDB(object sender, CUpdateDBChangeEventArgs e)
{
string errtext=string.Empty;
this.BeginInvoke(new MethodInvoker(delegate()
{CStaticClass.WcfControl.DealWithDeviceState(out errtext, e.Deviceindex, e.SplitbyteValue, e.Devicestates);}));
}
void SControlMonitor_SendBarcode(object sender, CStringInfoEventArgs e)
{
string errtext = string.Empty;
this.BeginInvoke(new MethodInvoker(delegate()
{
CStaticClass.WcfControl.WriteDBData(e.Deviceindex,"DB1",e.Barcode+","+e.Confirm.ToString(),out errtext);
dbo.ExceSQL(string.Format(" update T_Base_PLC_Ask set F_TaskIndex={0} WHERE (F_DeviceIndex = {1})", e.Deviceindex,Convert.ToInt32(sender)));
}));
}
void SControlMonitor_SendDeviceOrder(object sender, CSendDeviceOrderEventArgs e)
{//20121108
this.BeginInvoke(new MethodInvoker(delegate()
{ CStaticClass.WcfControl.DealWithSendDeviceOrder(sender, e); }));
}
void SControlMonitor_WriteDarkCasket(object sender, CWriteDarkCasketEventArgs e)
{//20121108
this.BeginInvoke(new MethodInvoker(delegate()
{ CStaticClass.WcfControl.DealWithWriteDarkCasket(sender, e); }));
}
void SControlMonitor_CDeviceState(object sender, CDeviceStateChangeEventArgs e)
{
try
{
SendDeviceInfosToClient(e.Devinfo);
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("SControlMonitor_CDeviceState:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "SControlMonitor_CDeviceState:" + ex.StackTrace + ex.Message;
}
}
}
void SControlMonitor_RefreshMonitor(RefreshMonitorEventArgs e)
{
try
{
this.BeginInvoke(new MethodInvoker(delegate()
{
SendMessageToClient(e.RefreshObjectName + "@" + e.RefreshObjectInfo);
}));
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("SControlMonitor_RefreshMonitor:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "SControlMonitor_RefreshMonitor:" + ex.StackTrace + ex.Message;
}
}
}
void SControlMonitor_DataChange(object sender, CDataChangeEventArgs e)
{
try
{
SendMessageToClient(sender.ToString());
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("SControlMonitor_DataChange:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "SControlMonitor_DataChange:" + ex.StackTrace + ex.Message;
}
}
}
void SControlMonitor_ClientLogout(ClientLogEventArgs e)
{
try
{
AddList1Info(e.clientInfo);//20120503
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("SControlMonitor_ClientLogout:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "SControlMonitor_ClientLogout:" + ex.StackTrace + ex.Message;
}
}
}
void SControlMonitor_ChannelOpen(ClientLogEventArgs e)
{
try
{
AddList1Info(e.clientInfo);//20120503
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("SControlMonitor_ChannelOpen:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "SControlMonitor_ChannelOpen:" + ex.StackTrace + ex.Message;
}
}
}
private ServiceHost _host = null;
private ServiceHost policyHost = null;
private void FrmHost_Load(object sender, EventArgs e)
{
MIStartRetrieveTask_Click(sender, e);
MITurnOn_Click(sender, e);
string targetDevice = Convert.ToString(dbo.ExceSQL("select * from WH_LANEWAY where WAREHOUSE_CODE = '1'").Tables[0].DefaultView[0]["LANEWAY_CODE"]);
comboBox1.Text = targetDevice;
label4.Text = targetDevice;
}
private void MIDataClear_Click(object sender, EventArgs e)
{
if (MessageBox.Show("您确认清空调度系统的调度队列和设备指令队列数据吗?这个操作将导致调度系统丢失当前记录的所有数据,并且使系统恢复到初始状态!", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
string errtext=string.Empty;
if (CStaticClass.WcfControl.DataClear(out errtext) == false)
{
MessageBox.Show(errtext, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
void SendMessageToClient(string strmessage)
{
IClient cl=null;
try
{
if(AddList1Info(strmessage)==false)return ;//20130510
var list = WcfControlMonitorLib.SControlMonitor.ClientCallbackLists;
if (list == null || list.Count == 0)
{
return;
}
lock (list)
{
foreach (System.Collections.DictionaryEntry client in list)
{
// Broadcast
cl = (IClient)client.Key;
//string aa = client.Value.ToString();
//this.BeginInvoke(new MethodInvoker(delegate()
//{
//20140824richard
if (strmessage == "巡检客户端")
{
cl.BeginSendOrderMessage(mi, new AsyncCallback(SendOrderMessageCallback), mi);
}
else
{
cl.BeginSendMessage(strmessage, new AsyncCallback(sendMessageCallback), strmessage);
}
//20140824richard
//}));
}
}
}
catch (Exception ex)
{
if (cl != null)
{
WcfControlMonitorLib.SControlMonitor.ClientCallbackLists.Remove(cl);
WcfControlMonitorLib.SControlMonitor.ClientShowLists.Remove(cl);
}
AddList1Info(string.Format("SendMessageToClient时异常:{0}", ex.Message));//20120503
//if (listBox1.Items.Count >= 100) listBox1.Items.Clear();
//this.listBox1.Items.Add(string.Format("SendMessageToClient时异常:{0},{1}" , ex.Message,DateTime.Now.ToString("u")));
}
}
void SendOrderMessageCallback(IAsyncResult ar)
{
}
void sendMessageCallback(IAsyncResult ar)
{
try
{
this.BeginInvoke(new MethodInvoker(delegate()
{
string sem = (string)ar.AsyncState;
AddList1Info(sem);//20120503
//if (listBox1.Items.Count >= 100) listBox1.Items.Clear();
//if (listBox1.Items.Count >= 1)
//{
// if (this.listBox1.Items[listBox1.Items.Count - 1].ToString().IndexOf(sem) >= 0) return;
//}
//if (sem == "巡检客户端") return;
//listBox1.Items.Add(DateTime.Now.ToLongTimeString()+sem);
}));
}
catch (Exception ex)
{
this.BeginInvoke(new MethodInvoker(delegate()
{
if (tsStatus.Text.IndexOf("巡检客户端sendMessageCallback:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "巡检客户端sendMessageCallback:" + ex.StackTrace + ex.Message;
}
}));
}
}
void SendDeviceInfosToClient(Model.MDevice devinfo)
{
IClient cl = null;
try
{
var list = WcfControlMonitorLib.SControlMonitor.ClientCallbackLists;
if (list == null || list.Count == 0)
return;
lock (list)
{
foreach (System.Collections.DictionaryEntry client in list)
{
// Broadcast
cl = (IClient)client.Key;
cl.BeginSendDeviceInfo(devinfo, new AsyncCallback(sendDeviceInfosCallback), null);
}
}
}
catch (Exception ex)
{
if (cl != null)
{
WcfControlMonitorLib.SControlMonitor.ClientCallbackLists.Remove(cl);
WcfControlMonitorLib.SControlMonitor.ClientShowLists.Remove(cl);
}
AddList1Info(string.Format("SendDeviceInfosToClient时异常:{0}", ex.Message));//20120503
//if (listBox1.Items.Count >= 100) listBox1.Items.Clear();
//this.listBox1.Items.Add(string.Format("SendDeviceInfosToClient时异常:{0},{1}" , ex.Message , DateTime.Now.ToString("u")));
}
}
void sendDeviceInfosCallback(IAsyncResult ar)
{
}
private void FrmHost_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("您确认要关闭"+CStaticClass.SystemName+"吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK)
{
e.Cancel = true;
return;
}
if (_host != null)
{
SControlMonitor.ChannelOpen -= new ClientLogEventHandler(SControlMonitor_ChannelOpen);
SControlMonitor.ClientLogout -= new ClientLogEventHandler(SControlMonitor_ClientLogout);
SControlMonitor.DataChange -= new CDataSourceChangeEventHandler(SControlMonitor_DataChange);
SControlMonitor.RefreshMonitor -= new RefreshMonitorEventHandler(SControlMonitor_RefreshMonitor);
SControlMonitor.CDeviceState -= new CDeviceStateChangeEventHandler(SControlMonitor_CDeviceState);
SControlMonitor.PLCCommonUpdateDB -= new CUpdateDBEventHandler(SControlMonitor_PLCCommonUpdateDB);
SControlMonitor.SendBarcode -= new CStringInfoEventHandler(SControlMonitor_SendBarcode);
_host.Close();
IDisposable host = _host as IDisposable;
host.Dispose();
}
CommonClassLib.AppSettings.dbo.Close();
CommonClassLib.AppSettings.dboM.Close();
}
private void MIStartRetrieveTask_Click(object sender, EventArgs e)
{
if (MITurnOn.Checked == true)
{
this.Text = CStaticClass.SystemName + "【开始获取任务!】" + "【正在执行自动命令!】";//20120510
}
else
{
this.Text = CStaticClass.SystemName + "【开始获取任务!】";//20120510
}
CStaticClass.WcfControl.ObtainTask("", "UPDATE");
MIStopRetrieveTask.Enabled = true;
//CStaticClass.ObtainManageTask = true;
MIStartRetrieveTask.Checked = true;
MIStopRetrieveTask.Checked = false;
}
private void MIStopRetrieveTask_Click(object sender, EventArgs e)
{
if (MITurnOn.Checked == true)
{
this.Text = CStaticClass.SystemName + "【正在执行自动命令!】";//20120510
}
else
{
this.Text = CStaticClass.SystemName;//20120510
}
CStaticClass.WcfControl.StopObtainTask();
//CStaticClass.ObtainManageTask = false;
//20120510CStaticClass.WcfControl.StopObtainTask();
ToolStripMenuItem tsm;
for (int i = 0; i < MIStartRetrieveTask.DropDown.Items.Count; i++)
{
tsm = (ToolStripMenuItem)MIStartRetrieveTask.DropDown.Items[i];
tsm.Checked = false;
}
MIStartRetrieveTask.Checked = false;
MIStartRetrieveTask.Enabled = true;
MIStopRetrieveTask.Enabled = false;
MIStopRetrieveTask.Checked = true;
}
void ToolStripMenu_Click(object sender, EventArgs e)
{
ToolStripMenuItem tsm; bool ifget = false;
DataView dv;
char[] cc = new char[1] { ':' };
int laneway = 0; StringBuilder minz = new StringBuilder(); StringBuilder maxz = new StringBuilder();
StringBuilder wherez = new StringBuilder();
ToolStripMenuItem aa = (ToolStripMenuItem)sender;
if (aa.Name == "MCAll")
{
if (aa.Checked == true)
{
aa.Checked = false;
CStaticClass.WcfControl.ObtainTask("", "UPDATE");
}
else
{
aa.Checked = true;
CStaticClass.WcfControl.ObtainTask(" or (1=1) ", "UPDATE");
}
//20100625修正不能获取站台到站台的任务
for (int i = 0; i < MIStartRetrieveTask.DropDown.Items.Count; i++)
{
tsm = (ToolStripMenuItem)MIStartRetrieveTask.DropDown.Items[i];
if (tsm.Name != "MCAll")
{
tsm.Checked = aa.Checked;
}
}
//20100625修正不能获取站台到站台的任务
}
else
{
laneway = Convert.ToInt32(aa.Text.Split(cc)[1]);
dv = dbo.ExceSQL("select min(f_z) as minZ from st_cell where flaneway=" + laneway + "").Tables[0].DefaultView;
if (dv.Count > 0)
{
if (dv[0]["minZ"].ToString().Length == 1)
{
minz = minz.Append("'0").Append(dv[0]["minZ"].ToString()).Append("-00-00'");
}
else
{
minz = minz.Append("'" + dv[0]["minZ"].ToString()).Append("-00-00'");
}
}
dv = dbo.ExceSQL("select max(f_z) as maxZ from st_cell where flaneway=" + laneway + "").Tables[0].DefaultView;
if (dv.Count > 0)
{
if (dv[0]["maxZ"].ToString().Length == 1)
{
maxz = maxz.Append("'0").Append(dv[0]["maxZ"].ToString()).Append("-99-99'");
}
else
{
maxz = maxz.Append("'" + dv[0]["maxZ"].ToString()).Append("-99-99'");
}
}
wherez.Append(" or ((START_DEVICE_CODE between ").Append(minz).Append(" and ").Append(maxz).Append(" ) or (END_DEVICE_CODE between ").Append(minz).Append(" and ").Append(maxz).Append("))");
if (aa.Checked == true)
{
aa.Checked = false;
//20100625修正不能获取站台到站台的任务
CStaticClass.WcfControl.ObtainTask(wherez.ToString(), "REPLACE");
ToolStripMenuItem cm = new ToolStripMenuItem();
ToolStripMenuItem all = (ToolStripMenuItem)MIStartRetrieveTask.DropDown.Items["MCAll"];
CStaticClass.WcfControl.ObtainTask(" or (1=1) ", "REPLACE");
all.Checked = false;
StringBuilder wherez1 = new StringBuilder();
for (int ii = 0; ii < MIStartRetrieveTask.DropDown.Items.Count; ii++)
{
//20101208
minz.Remove(0, minz.Length);
maxz.Remove(0, maxz.Length);
cm = (ToolStripMenuItem)MIStartRetrieveTask.DropDown.Items[ii];
if ((cm.Checked == true) && (cm.Name != aa.Name) && (cm.Name != "MCAll"))
{
laneway = Convert.ToInt32(cm.Text.Split(cc)[1]);
dv = dbo.ExceSQL("select min(f_z) as minZ from st_cell where flaneway=" + laneway + "").Tables[0].DefaultView;
if (dv.Count > 0)
{
if (dv[0]["minZ"].ToString().Length == 1)
{
minz = minz.Append("'0").Append(dv[0]["minZ"].ToString()).Append("-00-00'");
}
else
{
minz = minz.Append("'" + dv[0]["minZ"].ToString()).Append("-00-00'");
}
}
dv = dbo.ExceSQL("select max(f_z) as maxZ from st_cell where flaneway=" + laneway + "").Tables[0].DefaultView;
if (dv.Count > 0)
{
if (dv[0]["maxZ"].ToString().Length == 1)
{
maxz = maxz.Append("'0").Append(dv[0]["maxZ"].ToString()).Append("-99-99'");
}
else
{
maxz = maxz.Append("'" + dv[0]["maxZ"].ToString()).Append("-99-99'");
}
}
wherez1.Append(" or ((START_DEVICE_CODE between ").Append(minz).Append(" and ").Append(maxz).Append(" ) or (END_DEVICE_CODE between ").Append(minz).Append(" and ").Append(maxz).Append("))");
}
}
CStaticClass.WcfControl.ObtainTask(wherez1.ToString(), "APPEND");
//20100625修正不能获取站台到站台的任务
}
else
{
aa.Checked = true;
CStaticClass.WcfControl.ObtainTask(wherez.ToString(), "APPEND");
}
}
MIStartRetrieveTask_Click(sender, e);
for (int i = 0; i < MIStartRetrieveTask.DropDown.Items.Count; i++)
{
tsm = (ToolStripMenuItem)MIStartRetrieveTask.DropDown.Items[i];
if (tsm.Checked == true)
{
ifget = true;
}
}
if (ifget == false)
{
MIStopRetrieveTask_Click(sender, e);
}
}
private void MITurnOn_Click(object sender, EventArgs e)
{
MITurnOff.Enabled = true;
MITurnOn.Enabled = false;
tsmTurnOff.Enabled = true;
tsmTurnOn.Enabled = false;
tsmTurnOff.Checked = false;
tsmTurnOn.Checked = true;
MITurnOff.Checked = false;
MITurnOn.Checked = true;
//CStaticClass.Order = true;
CStaticClass.WcfControl.OrderTurnOn();
if (MIStartRetrieveTask.Checked == true)
{
this.Text = CStaticClass.SystemName + "【开始获取任务!】" + "【正在执行自动命令!】";
}
else
{
this.Text = CStaticClass.SystemName + "【正在执行自动命令!】";
}
//20120510CStaticClass.WcfControl.OrderTurnOn();
}
private void MITurnOff_Click(object sender, EventArgs e)
{
if (MessageBox.Show("您确认要“关闭命令开关”吗?如果“关闭命令开关”将导致调度计算机与所有设备通讯中断!", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK)
{
return;
}
CStaticClass.WcfControl.OrderTurnOff();
//CStaticClass.Order = false;
MITurnOff.Enabled = false;
MITurnOn.Enabled = true;
tsmTurnOff.Enabled = false;
tsmTurnOn.Enabled = true;
tsmTurnOn.Checked = false;
tsmTurnOff.Checked = true;
MITurnOn.Checked = false;
MITurnOff.Checked = true;
if (MIStartRetrieveTask.Checked == true)
{
this.Text = CStaticClass.SystemName + "【开始获取任务!】";
}
else
{
this.Text = CStaticClass.SystemName;
}
//20120510CStaticClass.WcfControl.OrderTurnOff();
}
private void timerObtainTask_Tick(object sender, EventArgs e)
{
timerObtainTask.Enabled = false;
try
//if (CStaticClass.ObtainManageTask == true)
{
string errtext = string.Empty;
if (CStaticClass.WcfControl.GetAllManageTask(out errtext) == false)
{
if (tsStatus.Text.IndexOf(errtext) < 0)
{
tsStatus.Text += errtext;
}
}
#region AGV任务没响应,任务重发
//int DeviceIdx;
//int TaskIdx = 0;
//StringBuilder sql = new StringBuilder();
//DataView dvmo =new DataView();
//sql.Remove(0, sql.Length);
//sql.Append("SELECT F_DeviceIndex,F_DeviceKindIndex,F_MaxSendCount,F_SendInterval FROM T_Base_Device WHERE F_DeviceKindIndex = 6");
//DataView dd = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
//for (int j = 0; j < dd.Count; j++)
//{
// DeviceIdx = Convert.ToInt32(dd[j]["F_DeviceIndex"]);
// #region 发送后规定时间内没报开始或者读取数据成功需要进行超时重发,重发超限时报错
// sql.Remove(0, sql.Length);
// sql.Append("select F_MonitorIndex,F_DeviceIndex,F_SendCount,F_StartTime,F_Status,F_AgvNo from T_Monitor_Task where F_DeviceIndex=").Append(DeviceIdx).Append(" and f_status=1 and F_SendFlag='1'");
// dvmo= dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;//20100905只重发主任务
// if (dvmo.Count > 0)
// {//20110510
// TaskIdx = Convert.ToInt32(dvmo[0]["F_MonitorIndex"]);
// int scount = Convert.ToInt32(dvmo[0]["F_SendCount"]);
// scount++;
// if (scount > Convert.ToInt32(dd[j]["F_MaxSendCount"]))
// {
// //发送次数超限报警
// sql.Remove(0, sql.Length);
// sql.Append("update T_Monitor_Task set F_Status=999 where F_Status<>999 and F_MonitorIndex=").Append(TaskIdx);//20110505
// dbo.ExceSQL(sql.ToString());
// }
// else
// {
// //DateTime.Now.AddMilliseconds
// if (dvmo[0]["F_StartTime"].ToString() != "-")
// {
// if (Convert.ToDateTime(dvmo[0]["F_StartTime"].ToString().Substring(0, 19), CultureInfo.CurrentCulture).AddMilliseconds(Convert.ToDouble(dd[j]["F_SendInterval"])) <= DateTime.Now)
// {
// if (dvmo[0]["F_AgvNo"] == DBNull.Value)
// {
// sql.Remove(0, sql.Length);
// sql.Append("update T_Base_Device set F_LockedState=0 where F_DeviceIndex=").Append(DeviceIdx);
// dbo.ExceSQL(sql.ToString());
// sql.Remove(0, sql.Length);
// sql.Append("update T_Monitor_Task set F_SendCount=").Append(scount).Append(",F_Status=0 where F_MonitorIndex=").Append(TaskIdx);
// dbo.ExceSQL(sql.ToString());
// }
// CommonClassLib.CCarryConvert.WriteDarkCasket("GetDeviceState", "超时重发", DeviceIdx.ToString(), "设备指令索引:" + TaskIdx.ToString() + "发送后,一直没有报告执行或者完成,重新发送命令!");
// }
// }
// }
// }
// #endregion
//}
#endregion
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf(ex.Message) < 0)
{
tsStatus.Text += ex.Message;
}
}
finally
{
timerObtainTask.Enabled = true;
}
}
private void timerDisassembleTask_Tick(object sender, EventArgs e)
{
timerDisassembleTask.Enabled = false;
try
//if (CStaticClass.Order == true)
{
string errtext = string.Empty;
if (CStaticClass.WcfControl.DisassembleTask(out errtext) == false)
{
if (tsStatus.Text.IndexOf(errtext) < 0)
{
tsStatus.Text += errtext;
}
}
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf(ex.Message ) < 0)
{
tsStatus.Text += ex.Message;
}
}
finally
{
timerDisassembleTask.Enabled = true;
}
}
private void timerSendOrder_Tick(object sender, EventArgs e)
{
timerSendOrder.Enabled = false;
try
//if (CStaticClass.Order == true)
{
string errtext = string.Empty;
if (CStaticClass.WcfControl.StartSendDeviceOrder(out errtext) == false)
{
if (tsStatus.Text.IndexOf(errtext) < 0)
{
tsStatus.Text += errtext;
}
}
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf(ex.Message) < 0)
{
tsStatus.Text += ex.Message;
}
}
finally
{
timerSendOrder.Enabled = true;
}
}
private void MISeeDarket_Click(object sender, EventArgs e)
{
FrmBrowseDarkCasket.FormInstance.Show();
}
private void MIDarketFileSet_Click(object sender, EventArgs e)
{
FrmDarkCasket.FormInstance.Show();
}
private void MIAutoTaskHistory_Click(object sender, EventArgs e)
{
FrmBrowseAotoTaskLog.FormInstance.Show();
}
private void MMExitSystem_Click(object sender, EventArgs e)
{
this.Close();
}
private void MISystemInit_Click(object sender, EventArgs e)
{
FrmSystemInit.FormInstance.Show();
}
private void toolStripMenuItem13_Click(object sender, EventArgs e)
{
MITurnOn_Click(sender, e);
}
private void toolStripMenuItem14_Click(object sender, EventArgs e)
{
MITurnOff_Click(sender, e);
}
private void toolStripMenuItem9_Click(object sender, EventArgs e)
{
this.Close();
}
private void toolStripMenuItem8_Click(object sender, EventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Maximized;
}
private void toolStripMenuItem10_Click(object sender, EventArgs e)
{
this.Visible = false;
}
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
this.TopMost = true;
this.Visible = true;
this.TopMost = false;
this.WindowState = FormWindowState.Maximized;
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
}
/// <summary>
/// 20120503向列表框增加显示内容
/// </summary>
/// <param name="txtinfo"></param>
/// <returns></returns>
bool AddList1Info(string txtinfo)
{
try
{
if (txtinfo.IndexOf("巡检客户端") >= 0) return true;
if (listBox1.Items.Count >= 70) listBox1.Items.Clear();
foreach (object li in listBox1.Items)
{
if (li.ToString().IndexOf(txtinfo) >= 0)
{
//listBox1.Items.Remove(li);
//listBox1.Items.Add(DateTime.Now.ToLongTimeString() + txtinfo);
return false;
}
}
listBox1.Items.Add(DateTime.Now.ToLongTimeString() + txtinfo);
return true;
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("巡检客户端AddList1Info:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "巡检客户端AddList1Info:" + ex.StackTrace + ex.Message;
}
return false;
}
}
private void button4_Click(object sender, EventArgs e)
{
try
{
this.listBox2.Items.Clear();
var list = WcfControlMonitorLib.SControlMonitor.ClientCallbackLists;
if (list == null || list.Count == 0)
return;
lock (list)
{
foreach (System.Collections.DictionaryEntry client in list)
{
listBox2.Items.Add(client.Value.ToString());
}
}
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("刷新客户端时:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "刷新客户端时:" + ex.StackTrace + ex.Message;
}
}
}
private void button3_Click(object sender, EventArgs e)
{
try
{
if (listBox2.SelectedItem == null) return;
var list = WcfControlMonitorLib.SControlMonitor.ClientCallbackLists;
foreach (System.Collections.DictionaryEntry client in list)
{
if (client.Value.ToString() == listBox2.SelectedItem.ToString())
{
WcfControlMonitorLib.SControlMonitor.ClientShowLists.Remove(client.Key);
WcfControlMonitorLib.SControlMonitor.ClientCallbackLists.Remove(client.Key);
button4_Click(sender, e);
return;
}
}
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("注销客户端时:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "注销客户端时:" + ex.StackTrace + ex.Message;
}
}
}
void ClickObtainTask()
{
if (MITurnOn.Checked == true)
{
if (this.Text != CStaticClass.SystemName + "【开始获取任务!】" + "【正在执行自动命令!】")
{
this.Text = CStaticClass.SystemName + "【开始获取任务!】" + "【正在执行自动命令!】";
}
}
else
{
if (this.Text != CStaticClass.SystemName + "【开始获取任务!】")
{
this.Text = CStaticClass.SystemName + "【开始获取任务!】";
}
}
MIStartRetrieveTask.Checked = true;
MIStartRetrieveTask.Enabled = false;
MIStopRetrieveTask.Checked = false;
MIStopRetrieveTask.Enabled = true;
}
void ClickStopObtainTask()
{
if (MITurnOn.Checked == true)
{
if (this.Text != CStaticClass.SystemName + "【正在执行自动命令!】")
{
this.Text = CStaticClass.SystemName + "【正在执行自动命令!】";
}
}
else
{
if (this.Text != CStaticClass.SystemName)
{
this.Text = CStaticClass.SystemName;
}
}
MIStartRetrieveTask.Checked = false;
MIStartRetrieveTask.Enabled = true;
MIStopRetrieveTask.Enabled = false;
MIStopRetrieveTask.Checked = true;
}
void ClickOrderTurnOn()
{
if (MIStartRetrieveTask.Checked == true)
{
if (this.Text != CStaticClass.SystemName + "【开始获取任务!】" + "【正在执行自动命令!】")
{
this.Text = CStaticClass.SystemName + "【开始获取任务!】" + "【正在执行自动命令!】";
}
}
else
{
if (this.Text != CStaticClass.SystemName + "【正在执行自动命令!】")
{
this.Text = CStaticClass.SystemName + "【正在执行自动命令!】";
}
}
MITurnOff.Enabled = true;
MITurnOn.Enabled = false;
MITurnOff.Checked = false;
MITurnOn.Checked = true;
}
void ClickOrderTurnOff()
{
if (MIStartRetrieveTask.Checked == true)
{
if (this.Text != CStaticClass.SystemName + "【开始获取任务!】")
{
this.Text = CStaticClass.SystemName + "【开始获取任务!】";
}
}
else
{
if (this.Text != CStaticClass.SystemName)
{
this.Text = CStaticClass.SystemName;
}
}
MITurnOff.Enabled = false;
MITurnOn.Enabled = true;
MITurnOn.Checked = false;
MITurnOff.Checked = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
DataView dv = new DataView();
try
{//20121203
#region 测试黑匣子记录
//for (int i = 0; i < 5000; i++)
//{
// CommonClassLib.CCarryConvert.WriteDarkCasket("测试记录", i.ToString(), "", "");
//}
#endregion
CStaticClass.WcfControl.Heartbeat(out mi);
if (mi.S7connectOnline.Count > 0)
{
if (mi.S7connectOnline["S7 connection_1"] == 0)
{
pbF1S7.Image = wcfControlMonitorClient.Properties.Resources.ProgressSuccess;
}
else
{
pbF1S7.Image = wcfControlMonitorClient.Properties.Resources.ProgressError;
}
}
else
{
pbF1S7.Image = wcfControlMonitorClient.Properties.Resources.ProgressError;
}
if (mi.Orderturnon == true)
{
ClickOrderTurnOn();
}
else
{
ClickOrderTurnOff();
}
if (mi.Obtaintask == true)
{
ClickObtainTask();
}
else
{
ClickStopObtainTask();
}
timersum++;//20120513
if (timersum > 60)//20120513
{
listBox1.Items.Clear();
timersum = 0;
dv = dbo.ExceSQL("SELECT T_Monitor_Task.F_MonitorIndex,T_Base_Device.F_DeviceIndex FROM T_Base_Device,T_Monitor_Task where T_Base_Device.F_DeviceIndex = T_Monitor_Task.F_DeviceIndex and (T_Base_Device.F_DeviceKindIndex = 1 OR T_Base_Device.F_DeviceKindIndex = 4) and F_Status>0 and F_StartTime<>'-' and (datediff(MINUTE,CONVERT(datetime,SUBSTRING( F_StartTime,1,19),120),GETDATE()) >5)").Tables[0].DefaultView;
for (int i = 0; i < dv.Count; i++)
{
CStaticClass.WcfControl.ActionError(Convert.ToInt32(dv[i][1]), Convert.ToInt32(dv[i][0]), 999);
CStaticClass.dbo.ExecuteSql(string.Format("update T_Base_Device set F_ErrorTaskNo=0 where F_ErrorTaskNo={0}", Convert.ToInt32(dv[i][0])));
}
}
//timerefesh++;//20150103增加断网恢复//20151120取消断网恢复
//if (timerefesh > 1)
//{//20150103增加断网恢复
// CStaticClass.WcfControl.RefreshMonitoringMode();
// timerefesh = 0;
//}
SendMessageToClient("巡检客户端");
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("巡检客户端时:"+ex.StackTrace+ex.Message) < 0)
{
tsStatus.Text += "巡检客户端时:" + ex.StackTrace + ex.Message;
}
}
finally
{
dv.Dispose();
}
}
private void timerTCPReConnect_Tick(object sender, EventArgs e)
{
timerTCPReConnect.Enabled = false;
try
{
string errtext = string.Empty;
if (CStaticClass.WcfControl.ReConnectAGVPC(out errtext) == false)
{
if (tsStatus.Text.IndexOf(errtext) < 0)
{
tsStatus.Text += errtext;
}
}
#region 20200519 增加AGV任务没有应答的重发
DealWithAGVNoHandCommand();
#endregion
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf(ex.Message) < 0)
{
tsStatus.Text += ex.Message;
}
}
finally
{
timerTCPReConnect.Enabled = true;
}
}
/// <summary>
/// 处理发送成功但是AGV控制台没有应答的任务(已发送状态 1)
/// </summary>
private void DealWithAGVNoHandCommand()
{
DataView dv = new DataView();
try
{
dv = dbo.ExceSQL("SELECT T_Monitor_Task.F_MonitorIndex,T_Monitor_Task.F_StartTime,T_Base_Device.F_DeviceIndex FROM T_Base_Device,T_Monitor_Task where T_Base_Device.F_DeviceIndex = T_Monitor_Task.F_DeviceIndex and (T_Base_Device.F_DeviceKindIndex = 6 ) and F_Status = 1 and F_StartTime<>'-' ").Tables[0].DefaultView;
for (int i = 0; i < dv.Count; i++)
{
DateTime appdt = new DateTime();
DateTime.TryParse(dv[i]["F_StartTime"].ToString().Substring(0, 19), out appdt);
if (appdt.AddSeconds(5) < DateTime.Now)
{
dbo.ExceSQL("update T_Monitor_Task set F_status = 0 where F_MonitorIndex = " + dv[i]["F_MonitorIndex"]);
CommonClassLib.CCarryConvert.WriteDarkCasket("timerTCPReConnect", "重发无应答AGV任务", dv[i]["F_DeviceIndex"].ToString(), "指令号:" + dv[i]["F_MonitorIndex"].ToString());
}
}
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf("重发AGV任务时:" + ex.StackTrace + ex.Message) < 0)
{
tsStatus.Text += "重发AGV任务时:" + ex.StackTrace + ex.Message;
}
}
finally
{
dv.Dispose();
}
return;
}
/// <summary>
/// 环形穿梭车、AGV数据库任务接口,获得任务状态定时器
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timerGetARgvState_Tick(object sender, EventArgs e)
{
timerGetARgvState.Enabled = false;
try
//if (CStaticClass.ObtainManageTask == true)
{
string errtext = string.Empty;
if (CStaticClass.WcfControl.GetARGVState(out errtext) == false)
{
if (tsStatus.Text.IndexOf(errtext) < 0)
{
tsStatus.Text += errtext;
}
}
EmptyPalletNewTemp();
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf(ex.Message) < 0)
{
tsStatus.Text += ex.Message;
}
}
finally
{
timerGetARgvState.Enabled = true;
}
}
//public void EmptyPallet()
//{
// List<string> ls = new List<string>();
// ls.Add("22202");
// ls.Add("22203");
// ls.Add("22233");
// ls.Add("22230");
// ls.Add("22237");
// ls.Add("12242");
// ls.Add("12246");
// ls.Add("12141");
// ls.Add("12259");
// ls.Add("12239");
// ls.Add("12250");
// ls.Add("12151");
// ls.Add("12135");
// ls.Add("12127");
// StringBuilder sql = new StringBuilder();
// //sql.Remove(0, sql.Length);
// for (int i = 0; i < ls.Count(); i++)
// {
// sql.Remove(0, sql.Length);
// sql.Append("SELECT F_WareHouse,F_ManageAskkind,F_DeviceIndex, F_Askkind, F_HaveFirstProject,F_BindingDevice,F_FirstProject,F_Remark,F_TempFirstProject FROM T_Base_PLC_Ask WHERE (F_DeviceIndex = ").Append(ls[i]).Append(")");
// var dvsp = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
// var values = 0;
// if (dvsp.Count > 0)
// {
// //1.得到需要判断的条件--检查输送机索引,总任务数量
// bool bok = false;
// int iMaxCount = Convert.ToInt32(dvsp[0]["F_Remark"]); // 可以缓存最大托盘数量: 有物开关 + 出库任务数量
// int istation = Convert.ToInt32(dvsp[0]["F_BindingDevice"]); // 申请站台
// string ConevyorToCheck = dvsp[0]["F_FirstProject"].ToString();// 需要检查有货的输送线组
// int iMaxTask = Convert.ToInt32(dvsp[0]["F_TempFirstProject"]); // 最大出库任务数量
// string ifask = dvsp[0]["F_HaveFirstProject"].ToString();//是否申请开关
// if (ifask == "0")
// {
// return;
// }
// if (ls[i] == "12135" || ls[i] == "12141" || ls[i] == "12259")
// {
// //values = ls[i] == "12259"?12135: 12128;
// //var devinfo = Model.CGetInfo.GetDeviceInfo(values);
// //if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
// //{
// // var dvsps = dbo.ExceSQL(string.Format($"select * from t_base_device_st where F_DeviceIndexs ='{ls[i]}' ")).Tables[0].DefaultView;
// // if (dvsps.Count > 0)
// // {
// // var dvspsd = dbo.ExceSQL(string.Format($"select * from [dbo].[T_Manage_Task] where FPALLETBARCODE'{dvsps[0]["F_BarCode"].ToString()}' ")).Tables[0].DefaultView; //20130510F_ManageAskkind
// // if (dvspsd.Count>0)
// // {
// // Thread.Sleep(1000);
// // automaticTask(values, ls[i]);
// // }
// // }
// //}
// }
// else {
// // 条件判断
// bok = CStaticClass.WcfControl.CheckEmptyOutOK(iMaxCount, istation, ConevyorToCheck, iMaxTask);
// if (bok)
// {
// //if (ls[i] == "22202" || ls[i] == "22203" || ls[i] == "12242" || ls[i] == "12246")
// //{
// //if (devidx == 22226)
// //{
// switch (ls[i])
// {
// case "22202":
// case "22203":
// case "12242":
// case "12246":
// values = (ls[i] == "22202" || ls[i] == "22203") ? 22226 : 12118;
// var dvbc = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{values}' and F_Status='0'")).Tables[0].DefaultView;
// if (dvbc.Count <= 0)
// {
// var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{values}' and FSTATUS=0 ")).Tables[0].DefaultView;
// if (dvbcsr.Count <= 0)
// {
// var devinfo = Model.CGetInfo.GetDeviceInfo(values);
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
// {
// if (devinfo.RunState == 5)
// {
// string errtexts = string.Empty;
// CStaticClass.WcfControl.WriteDBData(values, "DB1", "0", out errtexts);
// Thread.Sleep(1000);
// CStaticClass.WcfControl.WriteDBData(values, "DB1", "2", out errtexts);
// //automaticTask(ls[i]);
// automaticTask(values, ls[i]);
// }
// //}
// }
// }
// //}
// }
// break;
// case "12151":
// //22270-12158已执行子表
// // 12158有货空闲
// //生成12158-12151
// #region 新增在12151申请空托盘时12158有货时从12158上进行上托盘
// values = 12159;
// var devinfo1 = Model.CGetInfo.GetDeviceInfo(values);
// if (devinfo1.SplitByte_0 == 1 && devinfo1.RunState == 0)//12158有货空闲
// {
// //生成12158-12151
// var dvbcs1 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{values}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
// if (dvbcs1.Count <= 0)
// {
// var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{values}' and FSTATUS=0 ")).Tables[0].DefaultView;
// if (dvbcsr.Count <= 0)
// {
// automaticTask(values, ls[i]);
// Thread.Sleep(1000);
// }
// }
// else {
// int apptype = 2;// 双鹿要求申请类型0
// string warehouse = dvsp[0]["F_WareHouse"].ToString();
// string dtime = DateTime.Now.ToString("u");
// dtime.Remove(dtime.Length - 1, 1);
// sql.Remove(0, sql.Length);
// object[] ob = new object[9] { apptype, istation, "", 0, dtime, "", warehouse.ToString(), "", "1" };//CONTROL_APPLY_PARAMETER
// dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// //记录黑匣子
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理系统申请空托盘出库任务:", ls[i].ToString(), ",站台:" + istation.ToString());
// // 20210607 记录申请时间,加间隔校验,管理申请不能太快!
// dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_Time='{1}' WHERE (F_DeviceIndex = {0}) ", ls[i], dtime));
// }
// }
// else
// {
// //var dvbcs2 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='22270' and F_NumParam4='{values}' and (F_Status!=0 and F_Status!=1) ")).Tables[0].DefaultView;
// //if (!(dvbcs2.Count > 1))//22270-12158已执行子表
// //{
// int apptype = 2;// 双鹿要求申请类型0
// string warehouse = dvsp[0]["F_WareHouse"].ToString();
// string dtime = DateTime.Now.ToString("u");
// dtime.Remove(dtime.Length - 1, 1);
// sql.Remove(0, sql.Length);
// object[] ob = new object[9] { apptype, istation, "", 0, dtime, "", warehouse.ToString(), "", "1" };//CONTROL_APPLY_PARAMETER
// dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// //记录黑匣子
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理系统申请空托盘出库任务:", ls[i].ToString(), ",站台:" + istation.ToString());
// // 20210607 记录申请时间,加间隔校验,管理申请不能太快!
// dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_Time='{1}' WHERE (F_DeviceIndex = {0}) ", ls[i], dtime));
// //}
// }
// #endregion
// #region 旧 空托盘申请入库
// //int apptype = 2;// 双鹿要求申请类型0
// //string warehouse = dvsp[0]["F_WareHouse"].ToString();
// ////int dcode = Convert.ToInt32(dvsp[0]["F_BindingDevice"]);
// ////int BoxQuality = 1;// 0标记,1类型,2数量
// //string dtime = DateTime.Now.ToString("u");
// //dtime.Remove(dtime.Length - 1, 1);
// //sql.Remove(0, sql.Length);
// //object[] ob = new object[9] { apptype, istation, "", 0, dtime, "", warehouse.ToString(), "", "1" };//CONTROL_APPLY_PARAMETER
// //dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// //#region 旧代码注释
// //#endregion
// ////记录黑匣子
// //CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理系统申请空托盘出库任务:", ls[i].ToString(), ",站台:" + istation.ToString());
// //// 20210607 记录申请时间,加间隔校验,管理申请不能太快!
// //dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_Time='{1}' WHERE (F_DeviceIndex = {0}) ", ls[i], dtime));
// #endregion
// break;
// case "22237":
// case "22233":
// case "22230":
// values =12151;
// var dvbcs = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{values}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
// if (dvbcs.Count <= 0)
// {
// var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{values}' and FSTATUS=0 ")).Tables[0].DefaultView;
// if (dvbcsr.Count <= 0)
// {
// var devinfo = Model.CGetInfo.GetDeviceInfo(values);
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
// {
// if (devinfo.RunState == 0)
// {
// //string errtexts = string.Empty;
// //CStaticClass.WcfControl.WriteDBData(values, "DB1", "", out errtexts);
// Thread.Sleep(1000);
// //automaticTask(ls[i]);
// MDevice mDevice_12416 = CGetInfo.GetDeviceInfo(12416);
// if (mDevice_12416.RunState == 0)
// {
// automaticTask(values, ls[i]);
// }
// }
// //}
// }
// }
// //}
// }
// break;
// default:
// break;
// }
// //}
// //if (ls[i] == "22237" || ls[i] == "22233" || ls[i] == "22230")
// //{
// // //bool ifSQLServer = true;
// // //int appid = dboMan.GetManageTableIndex("IO_CONTROL_APPLY", ifSQLServer);//CONTROL_APPLY_ID
// // int apptype = 2;// 双鹿要求申请类型0
// // string warehouse = dvsp[0]["F_WareHouse"].ToString();
// // //int dcode = Convert.ToInt32(dvsp[0]["F_BindingDevice"]);
// // //int BoxQuality = 1;// 0标记,1类型,2数量
// // string dtime = DateTime.Now.ToString("u");
// // dtime.Remove(dtime.Length - 1, 1);
// // sql.Remove(0, sql.Length);
// // object[] ob = new object[9] { apptype, istation, "", 0, dtime, "", warehouse.ToString(), "", "1" };//CONTROL_APPLY_PARAMETER
// // dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// // #region 旧代码注释
// // #endregion
// // //记录黑匣子
// // CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理系统申请空托盘出库任务:", ls[i].ToString(), ",站台:" + istation.ToString());
// // // 20210607 记录申请时间,加间隔校验,管理申请不能太快!
// // dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_Time='{1}' WHERE (F_DeviceIndex = {0}) ", ls[i], dtime));
// //}
// }
// }
// }
// if (ls[i] == "12259"||ls[i] == "12239" || ls[i] == "12250")
// {
// var devinfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(ls[i]) );
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
// {
// if (devinfo.RunState == 5)
// {
// string errtexts = string.Empty;
// CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "0", out errtexts);
// Thread.Sleep(1000);
// CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "2", out errtexts);
// //automaticTask(ls[i]);
// //automaticTask(values, ls[i]);
// }
// //}
// //}
// }
// }
// if (ls[i] == "22237" || ls[i] == "12127"|| ls[i] == "12135")//ls[i] == "22237"||
// {
// if (CommonClassLib.AppSettings.GetValue("EmptyPallets").Equals("1"))
// {
// var devinfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(ls[i]));
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
// {
// string errtexts = string.Empty;
// CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "0", out errtexts);
// Thread.Sleep(1000);
// CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "2", out errtexts);
// }
// }
// }
// //if (ls[i] == "12135" || ls[i] == "12141" )
// //{
// // values = ls[i] == "12259" ? 12135 : 12128;
// // var devinfo = Model.CGetInfo.GetDeviceInfo(values);
// // if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
// // {
// // var dvsps = dbo.ExceSQL(string.Format($"select * from t_base_device_st where F_DeviceIndexs ='{ls[i]}' ")).Tables[0].DefaultView;
// // if (dvsps.Count > 0)
// // {
// // var dvspsd = dbo.ExceSQL(string.Format($"select * from [dbo].[T_Manage_Task] where FPALLETBARCODE'{dvsps[0]["F_BarCode"].ToString()}' ")).Tables[0].DefaultView; //20130510F_ManageAskkind
// // if (dvspsd.Count > 0)
// // {
// // Thread.Sleep(1000);
// // automaticTask(values, ls[i]);
// // }
// // }
// // }
// //}
// #region 向管理申请
// ////2.向管理申请
// //if (bok == true)
// //{
// // bool ifSQLServer = true;
// // if (CStaticClass.ManDBFactory == "OracleDBFactory")
// // {
// // ifSQLServer = false;
// // }
// // int appid = dboMan.GetManageTableIndex("IO_CONTROL_APPLY", ifSQLServer);//CONTROL_APPLY_ID
// // int apptype = 0;// 双鹿要求申请类型0
// // string warehouse = dvsp[0]["F_WareHouse"].ToString();
// // int dcode = Convert.ToInt32(dvsp[0]["F_BindingDevice"]);
// // int BoxQuality = 1;// 0标记,1类型,2数量
// // string dtime = DateTime.Now.ToString("u");
// // dtime.Remove(dtime.Length - 1, 1);
// // sql.Remove(0, sql.Length);
// // sql.Append("INSERT INTO IO_CONTROL_APPLY(CONTROL_APPLY_ID,CONTROL_APPLY_TYPE, WAREHOUSE_CODE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_REMARK,CONTROL_APPLY_PARLAPTOP-G9N81K1O)VALUES ").Append(
// // "(").Append(appid).Append(",").Append(apptype).Append(",'").Append(warehouse).Append("','").Append(dcode).Append("','',0,'").Append(dtime).Append("','',").Append(BoxQuality).Append(")");
// // // 插入记录
// // dboMan.ExceSQL(sql.ToString());
// // #region 旧代码注释
// // // int appid = dboMan.GetManageTableIndex("IO_CONTROL_APPLY", true);//CONTROL_APPLY_ID
// // //object[] ob = new object[8] { 2, istation, "-", 0, dtime, "", "1", 1 };
// // //dboMan.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_REMARK,WAREHOUSE_CODE,BOX_QUANTITY)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}',{7})", ob));
// // #endregion
// // //记录黑匣子
// // CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理系统申请空托盘出库任务:", devidx.ToString(), ",站台:" + istation.ToString());
// // // 20210607 记录申请时间,加间隔校验,管理申请不能太快!
// // dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_Time='{1}' WHERE (F_DeviceIndex = {0}) ", devidx, dtime));
// //}
// #endregion
// }
// #region 新增空托盘在12159工位申请回库
// var valuess = 12159;
// Thread.Sleep(2000);
// var dvbcs3 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='22270' and F_NumParam4='{valuess}' and F_Status!=0 ")).Tables[0].DefaultView;
// Model.MDevice device = CGetInfo.GetDeviceInfo(12162);
// if (dvbcs3.Count > 2 || (device.SplitByte_0 == 1 && device.RunState == 0))
// {
// var dvbcs1 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{valuess}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
// if (dvbcs1.Count <= 0)
// {
// var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{valuess}' and FSTATUS=0 ")).Tables[0].DefaultView;
// if (dvbcsr.Count <= 0)
// {
// var dvbc = dboM.ExceSQL(string.Format(" select * from IO_CONTROL where START_DEVICE_CODE='12159' and END_DEVICE_CODE='22245' and (CONTROL_STATUS = 0 or CONTROL_STATUS = 7 )")).Tables[0].DefaultView;
// if (dvbc.Count <= 0)
// {
// var devinfo = Model.CGetInfo.GetDeviceInfo(valuess);
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
// {
// string dtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// object[] ob = new object[9] { "3", valuess, "", 0, dtime, "", "1".ToString(), "", "1" };//CONTROL_APPLY_PARAMETER
// try
// {
// dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// //dboMan.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_REMARK,WAREHOUSE_CODE,CONTROL_APPLY_ID,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}',{7},'{8}','{9}')", ob));
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理条码申请任务:", valuess.ToString(), $" 站台:{valuess} **条码:");//20140218
// Thread.Sleep(2000);
// }
// catch (Exception ex)
// {
// }
// }
// }
// }
// }
// }
// #endregion
// //获取设备信息
// //Model.CGetInfo.GetDeviceInfo(123456);
//}
//public void EmptyPalletNew()
//{
// List<string> ls = new List<string>
// {
// "22202",
// "22203",
// "22233",
// "22230",
// "22237",
// "12242",
// "12246",
// "12141",
// "12259",
// "12239",
// "12250",
// "12149",
// "12151",
// "12135",
// "12127"
// };
// StringBuilder sql = new StringBuilder();
// for (int i = 0; i < ls.Count(); i++)
// {
// sql.Remove(0, sql.Length);
// sql.Append("SELECT F_WareHouse,F_ManageAskkind,F_DeviceIndex, F_Askkind, F_HaveFirstProject,F_BindingDevice,F_FirstProject,F_Remark,F_TempFirstProject FROM T_Base_PLC_Ask WHERE (F_DeviceIndex = ").Append(ls[i]).Append(")");
// var dvsp = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
// int values = 0;
// string end_device = "";
// if (dvsp.Count > 0)
// {
// //1.得到需要判断的条件--检查输送机索引,总任务数量
// bool bok = false;
// int iMaxCount = Convert.ToInt32(dvsp[0]["F_Remark"]); // 可以缓存最大托盘数量: 有物开关 + 出库任务数量
// int istation = Convert.ToInt32(dvsp[0]["F_BindingDevice"]); // 申请站台
// string ConevyorToCheck = dvsp[0]["F_FirstProject"].ToString();// 需要检查有货的输送线组
// int iMaxTask = Convert.ToInt32(dvsp[0]["F_TempFirstProject"]); // 最大出库任务数量
// string ifask = dvsp[0]["F_HaveFirstProject"].ToString();//是否申请开关
// if (ifask == "0")
// {
// return;
// }
// if (ls[i] != "12135" && ls[i] != "12141" && ls[i] != "12259")
// {
// sql.Clear();
// bok = CStaticClass.WcfControl.CheckEmptyOutOK(iMaxCount, istation, ConevyorToCheck, iMaxTask);
// if (bok)
// {
// switch (ls[i])
// {
// case "22202":
// case "22203":
// case "12242":
// case "12246":
// values = (ls[i] == "22202" || ls[i] == "22203") ? 22226 : 12118;
// var dvbc = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{values}' and F_Status='0'")).Tables[0].DefaultView;
// if (dvbc.Count <= 0)
// {
// var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{values}' and FSTATUS=0 ")).Tables[0].DefaultView;
// if (dvbcsr.Count <= 0)
// {
// var devinfo = CGetInfo.GetDeviceInfo(values);
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
// {
// if (devinfo.RunState == 5)
// {
// string errtexts = string.Empty;
// CStaticClass.WcfControl.WriteDBData(values, "DB1", "0", out errtexts);
// Thread.Sleep(1000);
// CStaticClass.WcfControl.WriteDBData(values, "DB1", "2", out errtexts);
// automaticTask(values, ls[i]);
// }
// }
// }
// }
// break;
// default:
// break;
// }
// }
// }
// if (ls[i] == "12151")
// {
// #region
// values = 12159;
// sql.Clear();
// sql.Append("select * from T_Manage_Task where FENDDEVICE in(22230, 22233, 22237, 12151, 12149)");
// int task_count_fact = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count;
// MDevice mDevice_12149 = CGetInfo.GetDeviceInfo(12149);
// MDevice mDevice_12151 = CGetInfo.GetDeviceInfo(12151);
// int task_count_need = 12;//终点是22230的任务4个,22233的任务2个,22237的任务2个,12149的任务1个,12151的任务4个,12149的缓存暂时没缓存上,先减少一个
// if (mDevice_12149.SplitByte_0 == 1 && mDevice_12149.RunState == 0)
// {
// task_count_fact += 1;
// }
// if (mDevice_12151.SplitByte_0 == 1 && mDevice_12151.RunState == 0)
// {
// task_count_fact += 1;
// }
// if (task_count_fact < task_count_need)
// {
// sql.Clear();
// sql.Append("select * from T_Manage_Task where FENDDEVICE = 12159");
// int task_count_12159 = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count;
// MDevice mDevice_22270 = CGetInfo.GetDeviceInfo(22270);
// if (mDevice_22270.SplitByte_0 == 1 && mDevice_22270.RunState == 0)
// {
// task_count_12159 -= 1;
// }
// int task_count_tmp = task_count_fact + task_count_12159;
// if (task_count_tmp < task_count_need)//所需要的空托盘数量和终点是12159的空托盘数量加一起也不够12个的话那就从库里出
// {
// MDevice devinfo_12159 = CGetInfo.GetDeviceInfo(12159);
// if (devinfo_12159.SplitByte_0 == 1 && devinfo_12159.RunState == 0)//12158有货空闲
// {
// var dvbcs1 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{values}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
// if (dvbcs1.Count <= 0)
// {
// var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{values}' and FSTATUS=0 ")).Tables[0].DefaultView;
// if (dvbcsr.Count <= 0)
// {
// automaticTask(values, ls[i]);
// Thread.Sleep(1000);
// }
// }
// }
// else
// {
// int apptype = 2;
// string warehouse = dvsp[0]["F_WareHouse"].ToString();
// string dtime = DateTime.Now.ToString("u");
// dtime.Remove(dtime.Length - 1, 1);
// sql.Remove(0, sql.Length);
// object[] ob = new object[9] { apptype, istation, "", 0, dtime, "", warehouse.ToString(), "", "1" };//CONTROL_APPLY_PARAMETER
// dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理系统申请空托盘出库任务:", ls[i].ToString(), ",站台:" + istation.ToString());
// dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_Time='{1}' WHERE (F_DeviceIndex = {0}) ", ls[i], dtime));
// }
// }
// }
// #endregion
// }
// if (ls[i] == "22230" || ls[i] == "22233" || ls[i] == "22237" || ls[i] == "12149")
// {
// if (ls[i] == "12149" || ls[i] == "22237")
// {
// values = 12151;
// end_device = "12149, 22237";
// }
// else
// {
// values = 12149;
// end_device = "22230, 22233";
// }
// MDevice mDevice_value = CGetInfo.GetDeviceInfo(values);
// if (mDevice_value.SplitByte_0 == 1 && mDevice_value.RunState == 0)
// {
// sql.Clear();
// sql.AppendFormat("select FENDDEVICE, count(1) as cou from T_Manage_Task where FSTARTDEVICE = {0} and FENDDEVICE in({1}) group by FENDDEVICE order by cou", values, end_device);
// DataView dataView = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
// if (dataView.Count == 0)
// {
// CheckAutomaticTask(values, ls[i]);
// }
// else if (dataView.Count == 1)
// {
// string device_temp = Convert.ToString(dataView[0]["FENDDEVICE"]);
// string device_end = "";
// if (device_temp == "12149")
// {
// device_end = "22237";
// }
// else if (device_temp == "22237")
// {
// MDevice mDevice_12149 = CGetInfo.GetDeviceInfo(12149);
// if (mDevice_12149.SplitByte_0 == 1 || mDevice_12149.RunState > 0)
// {
// int cou = Convert.ToInt32(dataView[0]["cou"]);
// if (cou < 2)
// {
// CheckAutomaticTask(values, device_temp);
// }
// else
// {
// continue;
// }
// }
// device_end = "12149";
// }
// else if (device_temp == "22230")
// {
// device_end = "22233";
// }
// else
// {
// device_end = "22230";
// }
// CheckAutomaticTask(values, device_end);
// }
// else
// {
// int device_temp = Convert.ToInt32(dataView[0]["FENDDEVICE"]);
// int cou = Convert.ToInt32(dataView[0]["cou"]);
// if (device_temp == 22233 || device_temp == 22237)
// {
// if (cou < 2)
// {
// CheckAutomaticTask(values, device_temp.ToString());
// }
// else
// {
// cou = Convert.ToInt32(dataView[1]["cou"]);
// if (cou < 4)
// {
// device_temp = Convert.ToInt32(dataView[1]["FENDDEVICE"]);
// CheckAutomaticTask(values, device_temp.ToString());
// }
// }
// }
// else
// {
// if (cou < 4)
// {
// CheckAutomaticTask(values, device_temp.ToString());
// }
// }
// }
// }
// }
// }
// if (ls[i] == "12259" || ls[i] == "12239" || ls[i] == "12250")
// {
// var devinfo = CGetInfo.GetDeviceInfo(Convert.ToInt32(ls[i]));
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
// {
// if (devinfo.RunState == 5)
// {
// string errtexts = string.Empty;
// CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "0", out errtexts);
// Thread.Sleep(1000);
// CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "2", out errtexts);
// }
// }
// }
// if (ls[i] == "22237" || ls[i] == "12127" || ls[i] == "12135")//ls[i] == "22237"||
// {
// if (CommonClassLib.AppSettings.GetValue("EmptyPallets").Equals("1"))
// {
// var devinfo = CGetInfo.GetDeviceInfo(Convert.ToInt32(ls[i]));
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
// {
// string errtexts = string.Empty;
// CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "0", out errtexts);
// Thread.Sleep(1000);
// CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "2", out errtexts);
// }
// }
// }
// }
// #region 新增空托盘在12159工位申请回库
// var valuess = 12159;
// Thread.Sleep(2000);
// var dvbcs3 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='22270' and F_NumParam4='{valuess}' and F_Status!=0 ")).Tables[0].DefaultView;
// MDevice device = CGetInfo.GetDeviceInfo(12162);
// if (dvbcs3.Count > 2 || (device.SplitByte_0 == 1 && device.RunState == 0))
// {
// var dvbcs1 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{valuess}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
// if (dvbcs1.Count <= 0)
// {
// var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{valuess}' and FSTATUS=0 ")).Tables[0].DefaultView;
// if (dvbcsr.Count <= 0)
// {
// var dvbc = dboM.ExceSQL(string.Format(" select * from IO_CONTROL where START_DEVICE_CODE='12159' and END_DEVICE_CODE='22245' and (CONTROL_STATUS = 0 or CONTROL_STATUS = 7 )")).Tables[0].DefaultView;
// if (dvbc.Count <= 0)
// {
// var devinfo = CGetInfo.GetDeviceInfo(valuess);
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
// {
// string dtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// object[] ob = new object[9] { "3", valuess, "", 0, dtime, "", "1".ToString(), "", "1" };
// try
// {
// dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理条码申请任务:", valuess.ToString(), $" 站台:{valuess} **条码:");//20140218
// Thread.Sleep(2000);
// }
// catch (Exception ex)
// {
// }
// }
// }
// }
// }
// }
// #endregion
//}
public void EmptyPalletNewTemp()
{
List<string> ls = new List<string>
{
"22202",
"22203",
"22233",
"22230",
"12242",
"12246",
"12141",
"12259",
"12239",
"12250",
"22237",
"12149",
"12151",
"12135",
"12127"
};
StringBuilder sql = new StringBuilder();
for (int i = 0; i < ls.Count(); i++)
{
sql.Remove(0, sql.Length);
sql.Append("SELECT F_WareHouse,F_ManageAskkind,F_DeviceIndex, F_Askkind, F_HaveFirstProject,F_BindingDevice,F_FirstProject,F_Remark,F_TempFirstProject FROM T_Base_PLC_Ask WHERE (F_DeviceIndex = ").Append(ls[i]).Append(")");
var dvsp = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
int values = 0;
string end_device = "";
if (dvsp.Count > 0)
{
//1.得到需要判断的条件--检查输送机索引,总任务数量
bool bok = false;
int iMaxCount = Convert.ToInt32(dvsp[0]["F_Remark"]); // 可以缓存最大托盘数量: 有物开关 + 出库任务数量
int istation = Convert.ToInt32(dvsp[0]["F_BindingDevice"]); // 申请站台
string ConevyorToCheck = dvsp[0]["F_FirstProject"].ToString();// 需要检查有货的输送线组
int iMaxTask = Convert.ToInt32(dvsp[0]["F_TempFirstProject"]); // 最大出库任务数量
string ifask = dvsp[0]["F_HaveFirstProject"].ToString();//是否申请开关
if (ifask == "0")
{
return;
}
if (ls[i] != "12135" && ls[i] != "12141" && ls[i] != "12259")
{
sql.Clear();
bok = CStaticClass.WcfControl.CheckEmptyOutOK(iMaxCount, istation, ConevyorToCheck, iMaxTask);
if (bok)
{
switch (ls[i])
{
case "22202":
case "22203":
case "12242":
//case "12246":
values = (ls[i] == "22202" || ls[i] == "22203") ? 22226 : 12118;
var dvbc = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{values}' and F_Status='0'")).Tables[0].DefaultView;
if (dvbc.Count <= 0)
{
var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{values}' and FSTATUS=0 ")).Tables[0].DefaultView;
if (dvbcsr.Count <= 0)
{
var devinfo = CGetInfo.GetDeviceInfo(values);
if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
{
if (devinfo.RunState == 5)
{
string errtexts = string.Empty;
CStaticClass.WcfControl.WriteDBData(values, "DB1", "0", out errtexts);
Thread.Sleep(1000);
CStaticClass.WcfControl.WriteDBData(values, "DB1", "2", out errtexts);
automaticTask(values, ls[i]);
}
}
}
}
break;
default:
break;
}
}
}
if (ls[i] == "12246")
{
values = 12118;
sql.Clear();
sql.AppendFormat("select * from T_Manage_Task where FENDDEVICE = {0}", ls[i]);
int count = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count;
if (count < 3)
{
var dvbc = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{values}' and F_Status='0'")).Tables[0].DefaultView;
if (dvbc.Count <= 0)
{
var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{values}' and FSTATUS=0 ")).Tables[0].DefaultView;
if (dvbcsr.Count <= 0)
{
var devinfo = CGetInfo.GetDeviceInfo(values);
if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
{
if (devinfo.RunState == 5)
{
string errtexts = string.Empty;
CStaticClass.WcfControl.WriteDBData(values, "DB1", "0", out errtexts);
Thread.Sleep(1000);
CStaticClass.WcfControl.WriteDBData(values, "DB1", "2", out errtexts);
automaticTask(values, ls[i]);
}
}
}
}
}
}
if (ls[i] == "12151")
{
#region
values = 12159;
sql.Clear();
sql.Append("select * from T_Manage_Task where FENDDEVICE in(22230, 22233, 22237, 12151, 12149)");
int task_count_fact = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count;
MDevice mDevice_12149 = CGetInfo.GetDeviceInfo(12149);
MDevice mDevice_12151 = CGetInfo.GetDeviceInfo(12151);
int task_count_need = 13;//终点是22230的任务4个,22233的任务2个,22237的任务2个,12149的任务1个,12151的任务4个,12149的缓存暂时没缓存上,先减少一个
if (mDevice_12149.SplitByte_0 == 1 && mDevice_12149.RunState == 0)
{
task_count_fact += 1;
}
if (mDevice_12151.SplitByte_0 == 1 && mDevice_12151.RunState == 0)
{
task_count_fact += 1;
}
if (task_count_fact < task_count_need)
{
sql.Clear();
sql.Append("select * from T_Manage_Task where FENDDEVICE = 12159");
int task_count_12159 = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count;
MDevice mDevice_22270 = CGetInfo.GetDeviceInfo(22270);
if (mDevice_22270.SplitByte_0 == 1 && mDevice_22270.RunState == 0)
{
task_count_12159 -= 1;
}
int task_count_tmp = task_count_fact + task_count_12159;
if (task_count_tmp < task_count_need)//所需要的空托盘数量和终点是12159的空托盘数量加一起也不够12个的话那就从库里出
{
MDevice devinfo_12159 = CGetInfo.GetDeviceInfo(12159);
if (devinfo_12159.SplitByte_0 == 1 && devinfo_12159.RunState == 0)//12158有货空闲
{
var dvbcs1 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{values}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
if (dvbcs1.Count <= 0)
{
var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{values}' and FSTATUS=0 ")).Tables[0].DefaultView;
if (dvbcsr.Count <= 0)
{
CheckAutomaticTask(values, ls[i]);
Thread.Sleep(1000);
}
}
}
else
{
//if (task_count_tmp < 10)
//{
// int apptype = 2;
// string warehouse = dvsp[0]["F_WareHouse"].ToString();
// string dtime = DateTime.Now.ToString("u");
// dtime.Remove(dtime.Length - 1, 1);
// sql.Remove(0, sql.Length);
// object[] ob = new object[9] { apptype, istation, "", 0, dtime, "", warehouse.ToString(), "", "1" };//CONTROL_APPLY_PARAMETER
// dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理系统申请空托盘出库任务:", ls[i].ToString(), ",站台:" + istation.ToString());
// dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_Time='{1}' WHERE (F_DeviceIndex = {0}) ", ls[i], dtime));
//}
int tmpCount = 10;
if (task_count_12159==0)
{
tmpCount = 12;
}
if (task_count_tmp < tmpCount)
{
int apptype = 2;
string warehouse = dvsp[0]["F_WareHouse"].ToString();
string dtime = DateTime.Now.ToString("u");
dtime.Remove(dtime.Length - 1, 1);
sql.Remove(0, sql.Length);
var dvbc = dboM.ExceSQL(string.Format("SELECT DEVICE_CODE,STOCK_BARCODE FROM IO_CONTROL_APPLY WHERE APPLY_TASK_STATUS<2 and DEVICE_CODE='{0}' ", istation)).Tables[0].DefaultView;
if (dvbc.Count <= 0)
{
DataView dataView = dboM.ExceSQL("select * from IO_CONTROL where END_DEVICE_CODE = '12151' and (CONTROL_STATUS = 0 or CONTROL_STATUS = 7)").Tables[0].DefaultView;
if (dataView != null && dataView.Count == 0)
{
object[] ob = new object[9] { apptype, istation, "", 0, dtime, "", warehouse.ToString(), "", "1" };//CONTROL_APPLY_PARAMETER
dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理系统申请空托盘出库任务:", ls[i].ToString(), ",站台:" + istation.ToString());
dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_Time='{1}' WHERE (F_DeviceIndex = {0}) ", ls[i], dtime));
}
}
}
}
}
}
#endregion
}
if (ls[i] == "22230" || ls[i] == "22233" || ls[i] == "22237" || ls[i] == "12149")
{
if (ls[i] == "12149" || ls[i] == "22237")
{
values = 12151;
end_device = "12149, 22237";
}
else
{
values = 12149;
end_device = "22230, 22233";
}
MDevice mDevice_value = CGetInfo.GetDeviceInfo(values);
if (mDevice_value.SplitByte_0 == 1 && mDevice_value.RunState == 0)
{
sql.Clear();
sql.AppendFormat("select FENDDEVICE, count(1) as cou from T_Manage_Task where FSTARTDEVICE = {0} and FENDDEVICE in({1}) group by FENDDEVICE order by cou", values, end_device);
DataView dataView = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
if (dataView.Count == 0)
{
CheckAutomaticTask(values, ls[i]);
}
else if (dataView.Count == 1)
{
string device_temp = Convert.ToString(dataView[0]["FENDDEVICE"]);
string device_end = "";
if (device_temp == "12149")
{
device_end = "22237";
}
else if (device_temp == "22237")
{
MDevice mDevice_12149 = CGetInfo.GetDeviceInfo(12149);
if (mDevice_12149.SplitByte_0 == 1 || mDevice_12149.RunState > 0)
{
int cou = Convert.ToInt32(dataView[0]["cou"]);
if (cou < 2)
{
CheckAutomaticTask(values, device_temp);
}
else
{
continue;
}
}
else
{
device_end = "12149";
}
}
else if (device_temp == "22230")
{
device_end = "22233";
}
else
{
device_end = "22230";
}
CheckAutomaticTask(values, device_end);
}
else
{
int device_temp = Convert.ToInt32(dataView[0]["FENDDEVICE"]);
int cou = Convert.ToInt32(dataView[0]["cou"]);
if (device_temp == 22233 || device_temp == 22237)
{
if (cou < 2)
{
CheckAutomaticTask(values, device_temp.ToString());
}
else
{
cou = Convert.ToInt32(dataView[1]["cou"]);
if (cou < 4)
{
device_temp = Convert.ToInt32(dataView[1]["FENDDEVICE"]);
CheckAutomaticTask(values, device_temp.ToString());
}
}
}
else
{
if (cou < 4)
{
CheckAutomaticTask(values, device_temp.ToString());
}
}
}
}
}
}
if (ls[i] == "12259" || ls[i] == "12239" || ls[i] == "12250")
{
var devinfo = CGetInfo.GetDeviceInfo(Convert.ToInt32(ls[i]));
if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
{
if (devinfo.RunState == 5)
{
string errtexts = string.Empty;
CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "0", out errtexts);
Thread.Sleep(1000);
CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "2", out errtexts);
}
}
}
if (ls[i] == "22237" || ls[i] == "12127" || ls[i] == "12135")//ls[i] == "22237"||
{
if (CommonClassLib.AppSettings.GetValue("EmptyPallets").Equals("1"))
{
var devinfo = CGetInfo.GetDeviceInfo(Convert.ToInt32(ls[i]));
if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 5)
{
string errtexts = string.Empty;
CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "0", out errtexts);
Thread.Sleep(1000);
CStaticClass.WcfControl.WriteDBData(Convert.ToInt32(ls[i]), "DB1", "2", out errtexts);
}
}
}
}
#region 新增空托盘在12159工位申请回库
//var valuess = 12159;
//Thread.Sleep(2000);
//var dvbcs3 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='22270' and F_NumParam4='{valuess}' and F_Status!=0 ")).Tables[0].DefaultView;
//MDevice device = CGetInfo.GetDeviceInfo(12162);
//if (dvbcs3.Count > 4 || (device.SplitByte_0 == 1 && device.RunState == 0))
//{
// var dvbcs1 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{valuess}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
// if (dvbcs1.Count <= 0)
// {
// var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{valuess}' and FSTATUS=0 ")).Tables[0].DefaultView;
// if (dvbcsr.Count <= 0)
// {
// var dvbc = dboM.ExceSQL(string.Format(" select * from IO_CONTROL where START_DEVICE_CODE='12159' and END_DEVICE_CODE='22245' and (CONTROL_STATUS = 0 or CONTROL_STATUS = 7 )")).Tables[0].DefaultView;
// if (dvbc.Count <= 0)
// {
// var devinfo = CGetInfo.GetDeviceInfo(valuess);
// if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
// {
// string dtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// object[] ob = new object[9] { "3", valuess, "", 0, dtime, "", "1".ToString(), "", "1" };
// try
// {
// dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob));
// dbo.ExecuteSql(string.Format("update T_Base_Device set F_HaveGoods = 0, F_DeviceNameGerman = '' where F_DeviceIndex = {0}", valuess));
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理条码申请任务:", valuess.ToString(), $" 站台:{valuess} **条码:");//20140218
// }
// catch (Exception ex)
// {
// }
// }
// }
// }
// }
//}
#endregion
#region 新增空托盘在12159工位申请回库
var valuess = 12159;
Thread.Sleep(2000);
var dvbcs3 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='22270' and F_NumParam4='{valuess}' and F_Status!=0 ")).Tables[0].DefaultView;
//MDevice device = CGetInfo.GetDeviceInfo(12162);
MDevice device12160 = CGetInfo.GetDeviceInfo(12160);
int counts = 4;
string sDivice = "12159,12160,12161,12162";
for (int i = 0; i < sDivice.Split(',').Length; i++)
{
MDevice device = CGetInfo.GetDeviceInfo(Convert.ToInt32( sDivice.Split(',')[i]));
if (device.SplitByte_0==1&&device.RunState==0)
{
counts--;
}
}
if ((dvbcs3.Count > 4 && (device12160.SplitByte_0 == 1 && device12160.RunState == 0))|| counts==0)
{
var dvbcs1 = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{valuess}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
if (dvbcs1.Count <= 0)
{
var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{valuess}' and FSTATUS=0 ")).Tables[0].DefaultView;
if (dvbcsr.Count <= 0)
{
var dvbc = dboM.ExceSQL(string.Format(" select * from IO_CONTROL where START_DEVICE_CODE='12159' and END_DEVICE_CODE='22245' and (CONTROL_STATUS = 0 or CONTROL_STATUS = 7 )")).Tables[0].DefaultView;
if (dvbc.Count <= 0)
{
DataView dataView = dbo.ExceSQL(string.Format("select * from T_Base_Device where F_DeviceIndex = 12159")).Tables[0].DefaultView;
if (dataView != null && dataView.Count > 0 && Convert.ToInt32(dataView[0]["F_HaveGoods"]) == 1)
{
var devinfo = CGetInfo.GetDeviceInfo(valuess);
if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
{
string dtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
object[] ob = new object[9] { "3", valuess, "", 0, dtime, "", "1".ToString(), "", "1" };
try
{
if (dboM.ExecuteSql(string.Format("INSERT INTO IO_CONTROL_APPLY( CONTROL_APPLY_TYPE,DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_PARAMETER,WAREHOUSE_CODE,CONTROL_APPLY_PARA01,CONTROL_APPLY_PARA02)VALUES ({0},'{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}')", ob)) > 0)
{
dbo.ExecuteSql(string.Format("update T_Base_Device set F_HaveGoods = 0, F_DeviceNameGerman = '' where F_DeviceIndex = {0}", valuess));
CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "向管理条码申请任务:", valuess.ToString(), $" 站台:{valuess} **条码:");//20140218
}
}
catch (Exception ex)
{
}
}
}
}
}
}
}
#endregion
}
public void automaticTask(int stVal, string endVal)
{
try
{
DateTime dateTime = DateTime.Now;
string sql = string.Format("select * from T_Base_Device where F_DeviceIndex = {0}", stVal);
string plate_no = Convert.ToString(dbo.ExceSQL(sql).Tables[0].DefaultView[0]["F_DeviceNameGerman"]);
if (string.IsNullOrWhiteSpace(plate_no))
{
plate_no = DateTime.Now.ToString("yyyyMMddHHmmss");
}
string dtime = dateTime.ToString("yyyy-MM-dd HH:mm:ss");
CCommonFunction ccf = new CCommonFunction();
int AutoManageIdx = ccf.GetTempManageIdx();
//var dcode = 22226;
//var iDevice = "22202";
//var dvbc = dbo.ExceSQL(string.Format("select fid from T_Manage_Task where FENDDEVICE = '{0}' and fstartdevice='{1}' AND FCONTROLTASKTYPE = 4 ", ls[i], "22226")).Tables[0].DefaultView;
//if (dvbc.Count <= iMaxTask)
//{
//插入临时调度任务T_Manage_Task(监控下的调度任务):
string Sql = "insert into T_Manage_Task(FID,FPALLETBARCODE,FCONTROLTASKTYPE,F_ManageTaskKindIndex,FSTARTWAREHOUSE,FSTARTDEVICE,FSTARTCELL," +
"FENDWAREHOUSE,FENDDEVICE,FENDCELL,FLANEWAY,FSTACK,FUseAwayFork,FBEGTIME) " +
"values(" + AutoManageIdx + ",'" + plate_no + "','4',2,'1','" + stVal + "','-','1','"
+ endVal + "','-', '-' ,'','-','" + dtime + "')";//20101028
if (dbo.ExecuteSql(Sql) > 0)
{
Sql = string.Format("update T_Base_Device set F_HaveGoods = 0, F_DeviceNameGerman = '' where F_DeviceIndex = {0}", stVal);
dbo.ExecuteSql(Sql);
CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "生成自动任务成功", stVal.ToString(), $"生成{stVal}到{endVal} 任务成功!");
}
}
catch (Exception ex)
{
CommonClassLib.CCarryConvert.WriteDarkCasket("监控", "测试", "数据", "错误信息" + ex.Message);
}
}
public void CheckAutomaticTask(int stVal, string endVal)
{
var dvbcs = dbo.ExceSQL(string.Format($"select * from T_Monitor_Task where F_NumParam1='{stVal}' and (F_Status=0 or F_Status=1)")).Tables[0].DefaultView;
if (dvbcs.Count <= 0)
{
var dvbcsr = dbo.ExceSQL(string.Format($"select * from T_Manage_Task where FSTARTDEVICE='{stVal}' and FSTATUS=0 ")).Tables[0].DefaultView;
if (dvbcsr.Count <= 0)
{
var dv = dbo.ExceSQL(string.Format("select * from T_Base_Device where F_DeviceIndex = {0}", stVal)).Tables[0].DefaultView;
if (dv.Count > 0)
{
if (stVal == 12118 || stVal == 22226)
{
var devinfo = CGetInfo.GetDeviceInfo(stVal);
if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
{
if (devinfo.RunState == 0)
{
Thread.Sleep(1000);
automaticTask(stVal, endVal);
}
}
}
else
{
CommonClassLib.CCarryConvert.WriteDarkCasket("监控", "测试", "数据", "设备号" + stVal + "是否有货" + Convert.ToInt32(dv[0]["F_HaveGoods"]));
if (Convert.ToInt32(dv[0]["F_HaveGoods"]) == 1)
{
var devinfo = CGetInfo.GetDeviceInfo(stVal);
if (devinfo.SplitByte_0 == 1 && devinfo.RunState == 0)
{
if (devinfo.RunState == 0)
{
Thread.Sleep(1000);
automaticTask(stVal, endVal);
}
}
}
}
}
}
}
}
//public void automaticTask(string sDeviceIndex)
//{
// //string errtexts = string.Empty;
// //CStaticClass.WcfControl.WriteDBData(22226, "DB1", "", out errtexts);
// string dtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// CCommonFunction ccf = new CCommonFunction();
// int AutoManageIdx = ccf.GetTempManageIdx();
// //var dcode = 22226;
// //var iDevice = "22202";
// //var dvbc = dbo.ExceSQL(string.Format("select fid from T_Manage_Task where FENDDEVICE = '{0}' and fstartdevice='{1}' AND FCONTROLTASKTYPE = 4 ", ls[i], "22226")).Tables[0].DefaultView;
// //if (dvbc.Count <= iMaxTask)
// //{
// //插入临时调度任务T_Manage_Task(监控下的调度任务):
// string Sql = "insert into T_Manage_Task(FID,FPALLETBARCODE,FCONTROLTASKTYPE,F_ManageTaskKindIndex,FSTARTWAREHOUSE,FSTARTDEVICE,FSTARTCELL," +
// "FENDWAREHOUSE,FENDDEVICE,FENDCELL,FLANEWAY,FSTACK,FUseAwayFork,FBEGTIME) " +
// "values(" + AutoManageIdx + ",'" + "PP" + 22226.ToString() + "','4',2,'1','" + 22226 + "','-','1','"
// + sDeviceIndex + "','-', '-' ,'','-','" + dtime + "')";//20101028
// if (dbo.ExecuteSql(Sql) > 0)
// {
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "生成自动任务成功", 22226.ToString(), $"生成{22226}到{sDeviceIndex} 任务成功!");
// }
//}
/// <summary>
/// 20200927 双鹿电池控制点灯定时器,从管理软件表读数据,写给PLC DB2 600-900 300byte 控制300个灯;1亮,0灭
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timerLighting_Tick(object sender, EventArgs e)
{
timerLighting.Enabled = false;
try
//if (CStaticClass.Order == true)
{
string errtext = string.Empty;
if (CStaticClass.WcfControl.DealwithLight(out errtext) == false)
{
if (tsStatus.Text.IndexOf(errtext) < 0)
{
tsStatus.Text += errtext;
}
}
}
catch (Exception ex)
{
if (tsStatus.Text.IndexOf(ex.Message) < 0)
{
tsStatus.Text += ex.Message;
}
}
finally
{
timerLighting.Enabled = true;
}
}
private void button2_Click(object sender, EventArgs e)
{
//GlobalModel.targetDevice = comboBox1.Text;
label4.Text = comboBox1.Text;
var result = dbo.ExecuteSql(string.Format("update WH_LANEWAY set LANEWAY_CODE = '{0}' where WAREHOUSE_CODE = '1'", label4.Text));
}
}
}