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.
1299 lines
52 KiB
1299 lines
52 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using DBFactory;
|
|
using System.Net.Sockets;
|
|
using System.Threading;
|
|
using ICommLayer;
|
|
using CommLayerFactory;
|
|
using Microsoft.VisualBasic;
|
|
namespace ControlSystem
|
|
{
|
|
/// <summary>
|
|
/// Creator:Richard.liu
|
|
/// µ÷¶È³ÌÐòÖ÷´°¿Ú
|
|
/// </summary>
|
|
public partial class FrmControlMonitor : Form
|
|
{
|
|
|
|
private Object thisLock = new Object();
|
|
Model.MDevice device = null;//20110331
|
|
StringBuilder sql = new StringBuilder();
|
|
char[] dd = new char[1] { '.' };//20101124
|
|
string[] DS;//20101124
|
|
FrmDeviceStatus _deviceStatus = new FrmDeviceStatus();
|
|
FrmWorkstationStatus _worstation = new FrmWorkstationStatus();
|
|
#region ·½·¨
|
|
public void FlashPanit(string obj, bool visible)
|
|
{
|
|
this.Controls[obj].Visible = visible;
|
|
}
|
|
public void FlashPanit(string obj, Image backgroundImage)
|
|
{
|
|
this.Controls[obj].BackgroundImage = backgroundImage;
|
|
}
|
|
public void FlashPanit(string obj, ImageLayout backgroundImageLayout)
|
|
{
|
|
this.Controls[obj].BackgroundImageLayout = backgroundImageLayout;
|
|
}
|
|
|
|
public void FlashPanit(string obj, int top, int left)
|
|
{
|
|
this.Controls[obj].Top = top;
|
|
this.Controls[obj].Left = left;
|
|
}
|
|
|
|
public void FlashPanit(string obj, string text, bool append)
|
|
{
|
|
if (append == true)
|
|
{
|
|
this.Controls[obj].Text += text;
|
|
}
|
|
else
|
|
{
|
|
this.Controls[obj].Text = text;
|
|
}
|
|
}
|
|
public string GetObjectText(string obj)
|
|
{
|
|
return this.Controls[obj].Text;
|
|
}
|
|
public void MonitorRefresh(object dataSource)
|
|
{
|
|
|
|
|
|
|
|
if (dataSource!=this.dgvMonitor.DataSource)
|
|
{
|
|
this.dgvMonitor.DataSource = dataSource;
|
|
}
|
|
|
|
//20100108
|
|
dataSource = null;
|
|
}
|
|
public void MonitorRefresh()
|
|
{//20110222
|
|
if (CStaticClass.RealRefresh == true)
|
|
{
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select * from V_Monitor_Task where ").Append(CStaticClass.Monstatus).Append(" order by É豸ָÁîË÷Òý asc ");
|
|
|
|
this.dgvMonitor.DataSource = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
}
|
|
|
|
}
|
|
public void ManagerRefresh(object dataSource)
|
|
{
|
|
if (this.dgvManager.DataSource != dataSource)
|
|
{
|
|
this.dgvManager.DataSource = dataSource;
|
|
}
|
|
//20100108
|
|
dataSource = null;
|
|
}
|
|
public void ManagerRefresh()
|
|
{//20110222
|
|
|
|
if (CStaticClass.RealRefresh == true)
|
|
{
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select * from V_Manage_Task where ").Append(CStaticClass.Manstatus);
|
|
this.dgvManager.DataSource = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
private static FrmControlMonitor _formInstance;
|
|
public static FrmControlMonitor FormInstance
|
|
{
|
|
get
|
|
{
|
|
if (_formInstance == null)
|
|
{
|
|
_formInstance = new FrmControlMonitor();
|
|
|
|
}
|
|
return _formInstance;
|
|
}
|
|
set { _formInstance = value; }
|
|
}
|
|
//IGetDeviceState gds;
|
|
CGetState gs = new CGetState();
|
|
CControl cc = new CControl();
|
|
CListenPLCAsk cplc = new CListenPLCAsk();
|
|
CCommonFunction ccf = new CCommonFunction();
|
|
DBOperator dbo = CStaticClass.dbo;
|
|
DBOperator dbo1 = CStaticClass.dbo1;
|
|
DBOperator dboM =CStaticClass.dboM;
|
|
|
|
public FrmControlMonitor()
|
|
{
|
|
InitializeComponent();
|
|
_formInstance = this;
|
|
//201100608
|
|
CListenAGVState.DataChange+=new CDataSourceChangeEventHandler(CListenAGVState_DataChange);
|
|
CListenAGVState.UpdateDB+=new CUpdateDBEventHandler(CListenAGVState_UpdateDB);
|
|
DataView dv;
|
|
System.IO.Ports.SerialPort sp;
|
|
try
|
|
{
|
|
//20100609
|
|
#region ´®¿Ú³õʼ»¯
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("SELECT F_DeviceIndex, F_CommSettings, F_SerialPort FROM T_Base_Device where F_SerialPort>0");
|
|
dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
for (int i = 0; i < dv.Count; i++)
|
|
{
|
|
sp=new System.IO.Ports.SerialPort("COM"+dv[i]["F_SerialPort"].ToString());
|
|
sp.BaudRate = 9600;
|
|
sp.Parity = System.IO.Ports.Parity.None;
|
|
sp.DataBits = 8;
|
|
sp.StopBits = System.IO.Ports.StopBits.One;
|
|
CStaticClass.serialports.Add(Convert.ToInt32( dv[i]["F_DeviceIndex"]),sp);
|
|
}
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
tsStatus.Text = "´®¿Ú³õʼ»¯Ê±£º" + ex.Message;
|
|
}
|
|
finally
|
|
{
|
|
dv=null;
|
|
sp=null;
|
|
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 20110405ÏàÓ¦CListenAGVÏ̵߳ÄÊý¾Ý·´À¡Ê¼þ
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
void CListenAGVState_DataChange(object sender, CDataChangeEventArgs e)
|
|
{
|
|
|
|
try
|
|
{
|
|
if (e.ManDataSource == null)
|
|
{
|
|
dgvManager.Invoke(new MethodInvoker(delegate()
|
|
{
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select * from V_Manage_Task where ").Append(CStaticClass.Manstatus);
|
|
this.dgvManager.DataSource = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
}));
|
|
|
|
}
|
|
else
|
|
{
|
|
dgvManager.Invoke(new MethodInvoker(delegate() { dgvManager.DataSource = e.ManDataSource; }));
|
|
}
|
|
if (e.MonDataSource == null)
|
|
{
|
|
dgvMonitor.Invoke(new MethodInvoker(delegate() {
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select * from V_Monitor_Task where ").Append(CStaticClass.Monstatus).Append(" order by É豸ָÁîË÷Òý asc ");
|
|
|
|
this.dgvMonitor.DataSource = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
}));
|
|
}
|
|
else
|
|
{
|
|
dgvMonitor.Invoke(new MethodInvoker(delegate() { dgvMonitor.DataSource = e.MonDataSource; }));
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (tsStatus.Text.IndexOf("´¦Àí¸½¼ÓÏ̷߳´À¡Êý¾Ý¸üÐÂʱ£º" + ex.Message) < 0)
|
|
{
|
|
tsStatus.Text += "´¦Àí¸½¼ÓÏ̷߳´À¡Êý¾Ý¸üÐÂʱ£º" + ex.Message;
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 20110608ÏàÓ¦CListenAGVÏ̵߳ÄÊý¾Ý¿â¸üÐÂʼþ
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
void CListenAGVState_UpdateDB(object sender, CUpdateDBChangeEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
this.Invoke(new MethodInvoker(delegate()
|
|
{
|
|
if (e.Taskindex > 0)
|
|
{
|
|
gs.ActionComplete(e.Deviceindex, e.Taskindex, e.Taskstate);
|
|
}
|
|
else
|
|
{
|
|
dbo1 = e.Dbo;
|
|
dbo1.ExecuteSql(e.ExeSQL.ToString());
|
|
}
|
|
}));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (tsStatus.Text.IndexOf("´¦Àí¸½¼ÓÏ̸߳üÐÂÊý¾Ý¿âʱ£º" + ex.Message) < 0)
|
|
{
|
|
tsStatus.Text += "´¦Àí¸½¼ÓÏ̸߳üÐÂÊý¾Ý¿âʱ£º" + ex.Message;
|
|
}
|
|
}
|
|
}
|
|
private void FrmControlMonitor_Load(object sender, EventArgs e)
|
|
{
|
|
if (this.rbmanAll.Checked == true)
|
|
{
|
|
CStaticClass.Manstatus = " F_Status<>-1 ";
|
|
}
|
|
if (this.rbmanRun.Checked == true)
|
|
{
|
|
CStaticClass.Manstatus = " F_Status=1 ";
|
|
}
|
|
if (this.rbmanWait.Checked == true)
|
|
{
|
|
CStaticClass.Manstatus = " F_Status=0 ";
|
|
}
|
|
|
|
//ÏÔʾÉ豸ָÁî
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select * from V_Monitor_Task where " ).Append( CStaticClass.Monstatus ).Append( " order by É豸ָÁîË÷Òý asc ");
|
|
this.dgvMonitor.DataSource = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
//ÏÔʾµ÷¶ÈÈÎÎñ
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select * from V_Manage_Task where " ).Append( CStaticClass.Manstatus);
|
|
this.dgvManager.DataSource = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
|
|
this.tabPage1.AutoScrollMinSize = new Size(1072, 312);
|
|
|
|
#region Ìí¼ÓÊäËÍ»ú¡¢´©Ë󳵺ͶѶâ»úµÄµ¥»÷ʼþ
|
|
|
|
foreach (Control ctrl in this.plAccessorial1.Controls)
|
|
{
|
|
if (ctrl.GetType().ToString() == "System.Windows.Forms.Button")
|
|
{
|
|
ctrl.Click += new EventHandler(ctrl_Click);
|
|
}
|
|
|
|
if ((ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox")&&(ctrl.Enabled==true))
|
|
{
|
|
ctrl.Click += new EventHandler(ctrl_ClickPic);
|
|
}
|
|
}
|
|
foreach (Control ctrl in this.plAccessorial2.Controls)
|
|
{
|
|
if (ctrl.GetType().ToString() == "System.Windows.Forms.Button")
|
|
{
|
|
ctrl.Click += new EventHandler(ctrl_Click);
|
|
}
|
|
|
|
if ((ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox") && (ctrl.Enabled == true))
|
|
{
|
|
ctrl.Click += new EventHandler(ctrl_ClickPic);
|
|
}
|
|
if (ctrl.GetType().ToString() == "System.Windows.Forms.GroupBox")
|
|
{
|
|
foreach (Control ct in ctrl.Controls)
|
|
{
|
|
|
|
if (ct.GetType().ToString() == "System.Windows.Forms.TextBox")
|
|
{
|
|
ct.Click += new EventHandler(ctrl_ClickTxt);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
|
private void ctrl_Click(object sender, EventArgs e)
|
|
{
|
|
Button btn = (Button)sender;
|
|
_deviceStatus.DeviceIndex = Convert.ToInt32(btn.Tag);
|
|
_deviceStatus.ShowDialog();
|
|
}
|
|
private void ctrl_ClickTxt(object sender, EventArgs e)
|
|
{
|
|
TextBox txt = (TextBox)sender;
|
|
_worstation.DeviceIndex = Convert.ToInt32(txt.Tag);
|
|
_worstation.ShowDialog();
|
|
}
|
|
private void ctrl_ClickPic(object sender, EventArgs e)
|
|
{
|
|
PictureBox btn = (PictureBox)sender;
|
|
_deviceStatus.DeviceIndex = Convert.ToInt32(btn.Tag );
|
|
_deviceStatus.ShowDialog();
|
|
}
|
|
private void timer1_Tick(object sender, EventArgs e)
|
|
{
|
|
|
|
|
|
if (CStaticClass.Order == true)
|
|
{
|
|
|
|
|
|
gs.GetDeviceState();
|
|
if (tsStatus.Text.Length > 300)
|
|
tsStatus.Text = "";
|
|
}
|
|
|
|
}
|
|
|
|
private void TSMrefresh_Click(object sender, EventArgs e)
|
|
{
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select * from V_Manage_Task where " ).Append( CStaticClass.Manstatus);
|
|
CStaticClass.RealRefresh = true;
|
|
this.dgvManager.DataSource = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
}
|
|
private void TSMMonitorRefresh_Click(object sender, EventArgs e)
|
|
{
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select * from V_Monitor_Task where " ).Append( CStaticClass.Monstatus ).Append( " order by É豸ָÁîË÷Òý asc ");
|
|
CStaticClass.RealRefresh = true;
|
|
this.dgvMonitor.DataSource = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
}
|
|
private void rbmanAll_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton rb = (RadioButton)sender;
|
|
if (rb.Checked == true)
|
|
{
|
|
CStaticClass.Manstatus = " F_Status<>-1 ";
|
|
}
|
|
TSMrefresh_Click(sender, e);
|
|
}
|
|
|
|
private void rbmanRun_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton rb = (RadioButton)sender;
|
|
if (rb.Checked == true)
|
|
{
|
|
CStaticClass.Manstatus = " F_Status=1 ";
|
|
}
|
|
TSMrefresh_Click(sender, e);
|
|
}
|
|
|
|
private void rbmanWait_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton rb = (RadioButton)sender;
|
|
if (rb.Checked == true)
|
|
{
|
|
CStaticClass.Manstatus = " F_Status=0 ";
|
|
}
|
|
TSMrefresh_Click(sender, e);
|
|
}
|
|
|
|
private void rbmonAll_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton rb = (RadioButton)sender;
|
|
if (rb.Checked == true)
|
|
{
|
|
CStaticClass.Monstatus = " F_Status<>-1 ";
|
|
}
|
|
TSMMonitorRefresh_Click(sender, e);
|
|
}
|
|
|
|
private void rbmonRun_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton rb = (RadioButton)sender;
|
|
if (rb.Checked == true)
|
|
{
|
|
CStaticClass.Monstatus = " (F_Status>=1) ";
|
|
}
|
|
TSMMonitorRefresh_Click(sender, e);
|
|
}
|
|
|
|
private void rbmonWait_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton rb = (RadioButton)sender;
|
|
if (rb.Checked == true)
|
|
{
|
|
CStaticClass.Monstatus = " F_Status=0 ";
|
|
}
|
|
TSMMonitorRefresh_Click(sender, e);
|
|
}
|
|
|
|
|
|
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
CStaticClass.Monstatus = " F_Status<>-1 ";
|
|
|
|
TSMMonitorRefresh_Click(sender, e);
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (this.textBox1.Text.Trim().Length == 0) return;
|
|
if (this.comboBox1.Text == "ÍÐÅÌÌõÂë")
|
|
{
|
|
CStaticClass.Monstatus = " ¸½¼ÓÐÅÏ¢='" + this.textBox1.Text.Trim() + "' ";
|
|
}
|
|
if (this.comboBox1.Text == "µ÷¶ÈÈÎÎñË÷Òý")
|
|
{
|
|
CStaticClass.Monstatus = " µ÷¶ÈÈÎÎñË÷Òý='" + this.textBox1.Text.Trim() + "' ";
|
|
}
|
|
if (this.comboBox1.Text == "É豸ָÁîË÷Òý")
|
|
{
|
|
CStaticClass.Monstatus = " É豸ָÁîË÷Òý='" + this.textBox1.Text.Trim() + "' ";
|
|
}
|
|
TSMMonitorRefresh_Click(sender, e);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
|
|
private void dgvMonitor_DataSourceChanged(object sender, EventArgs e)
|
|
{
|
|
dgvMonitor.Columns["F_Status"].Visible = false;
|
|
}
|
|
|
|
private void dgvManager_DataSourceChanged(object sender, EventArgs e)
|
|
{
|
|
dgvManager.Columns["F_Status"].Visible = false;
|
|
}
|
|
|
|
|
|
|
|
private void timer2_Tick(object sender, EventArgs e)
|
|
{
|
|
//DataTable dt; string ss1;
|
|
|
|
try
|
|
{
|
|
|
|
if ((CStaticClass.RealRefresh == true) && (CStaticClass.Order == true))
|
|
{
|
|
|
|
//if ((CStaticClass.gcCount % 10) == 0)
|
|
//{
|
|
// #region ¹ÊÕÏÐÅÏ¢ÏÔʾ
|
|
|
|
// ss1 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|
// string sql = "SELECT µ÷¶ÈÈÎÎñË÷Òý,É豸Ë÷Òý, É豸Ãû³Æ, ¹ÊÕÏÃû³Æ, ·¢Éúʱ¼ä FROM V_Device_Error_log where ·¢Éúʱ¼ä like '" + DateTime.Today.ToString("yyyy-MM-dd") + "%' order by ·¢Éúʱ¼ä asc";
|
|
// //20091128
|
|
// dt = dbo1.ExceSQL(sql).Tables[0];
|
|
// if (dt.Rows.Count > 0)
|
|
// {
|
|
// this.listView1.Items.Clear();
|
|
// for (int i = 0; i < dt.Rows.Count; i++)
|
|
// {
|
|
// ListViewItem lvi = new ListViewItem();
|
|
// lvi.Text = dt.Rows[i]["µ÷¶ÈÈÎÎñË÷Òý"].ToString();
|
|
// lvi.SubItems.Add(dt.Rows[i]["É豸Ë÷Òý"].ToString());
|
|
// lvi.SubItems.Add(dt.Rows[i]["É豸Ãû³Æ"].ToString());
|
|
// lvi.SubItems.Add(dt.Rows[i]["¹ÊÕÏÃû³Æ"].ToString());
|
|
// lvi.SubItems.Add(dt.Rows[i]["·¢Éúʱ¼ä"].ToString());
|
|
// listView1.Items.Add(lvi);
|
|
// //20091128
|
|
// lvi = null;
|
|
// }
|
|
// }
|
|
|
|
// #endregion
|
|
//}
|
|
|
|
//ÏÔʾÉ豸ָÁî20110222
|
|
//sql.Remove(0, sql.Length);
|
|
//sql.Append("select * from V_Monitor_Task where " ).Append( CStaticClass.Monstatus ).Append( " order by É豸ָÁîË÷Òý asc ");
|
|
//FrmControlMonitor.FormInstance.MonitorRefresh(dbo1.ExceSQL(sql.ToString()).Tables[0].DefaultView);
|
|
////ÏÔʾµ÷¶ÈÈÎÎñ
|
|
//sql.Remove(0, sql.Length);
|
|
//sql.Append("select * from V_Manage_Task where " ).Append( CStaticClass.Manstatus);
|
|
//FrmControlMonitor.FormInstance.ManagerRefresh(
|
|
// dbo1.ExceSQL(sql.ToString()).Tables[0].DefaultView);
|
|
|
|
}
|
|
|
|
//»ñÈ¡µ÷¶ÈÈÎÎñ
|
|
if (CStaticClass.ObtainManageTask == true)
|
|
{
|
|
|
|
if (CObtainTask.GetManagerTask() == 0)
|
|
{
|
|
this.tsStatus.ForeColor = Color.Red;
|
|
if (this.tsStatus.Text.IndexOf(CObtainTask.CObtainTaskError) < 0)
|
|
{
|
|
this.tsStatus.Text += CObtainTask.CObtainTaskError;
|
|
}
|
|
}
|
|
if (CObtainTask.CObtainTaskError.Length > 0)
|
|
{
|
|
if (this.tsStatus.Text.IndexOf(CObtainTask.CObtainTaskError) < 0)
|
|
{
|
|
this.tsStatus.ForeColor = Color.Red;
|
|
this.tsStatus.Text += CObtainTask.CObtainTaskError;
|
|
}
|
|
}
|
|
CObtainTask.CObtainTaskError = "";
|
|
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (tsStatus.Text.IndexOf("»ñÈ¡µ÷¶ÈÈÎÎñʱ£º" + ex.Message) < 0)
|
|
{
|
|
tsStatus.Text += "»ñÈ¡µ÷¶ÈÈÎÎñʱ£º" + ex.Message;
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
//dt = null;
|
|
}
|
|
|
|
}
|
|
|
|
private void timer3_Tick(object sender, EventArgs e)
|
|
{
|
|
if (CStaticClass.Order == true)
|
|
{
|
|
|
|
|
|
//Æô¶¯²ð·Ö½ø³ÌMyTaskIntoSteps();
|
|
CDisassembleTask.MyTaskIntoSteps();
|
|
if (CDisassembleTask .DisassembleTaskError!= "")
|
|
{
|
|
if (tsStatus.Text.IndexOf(CDisassembleTask.DisassembleTaskError) < 0)
|
|
{
|
|
tsStatus.ForeColor = Color.Red;
|
|
tsStatus.Text += CDisassembleTask.DisassembleTaskError;
|
|
}
|
|
CDisassembleTask.DisassembleTaskError = "";
|
|
}
|
|
cplc.DealwithPLCAsk();
|
|
if (cplc.ListenPLCAskError != "")
|
|
{
|
|
if (tsStatus.Text.IndexOf(cplc.ListenPLCAskError) < 0)
|
|
{
|
|
tsStatus.ForeColor = Color.Red;
|
|
tsStatus.Text += cplc.ListenPLCAskError;
|
|
}
|
|
}
|
|
cplc.ListenPLCAskError = "";
|
|
if (CListenAGVState.TcpServerError != "")
|
|
{
|
|
if (tsStatus.Text.IndexOf(CListenAGVState.TcpServerError) < 0)
|
|
{
|
|
tsStatus.ForeColor = Color.Red;
|
|
tsStatus.Text += CListenAGVState.TcpServerError;
|
|
}
|
|
}
|
|
CListenAGVState.TcpServerError = "";
|
|
}
|
|
|
|
}
|
|
|
|
private void timer4_Tick(object sender, EventArgs e)
|
|
{
|
|
if (CStaticClass.Order == true)
|
|
{
|
|
#region ¶ÁÈ¡ËùÓÐPLCÊý¾Ý
|
|
//string ss1 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|
CStaticClass.GetAllReturns();
|
|
//string ss11 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
private void timer5_Tick(object sender, EventArgs e)
|
|
{
|
|
if (CStaticClass.Order == true)
|
|
{
|
|
//string ss1 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
|
|
cc.StartOrder();
|
|
if (cc.CControlError != "")
|
|
{
|
|
if (tsStatus.Text.IndexOf(cc.CControlError) < 0)
|
|
{
|
|
tsStatus.ForeColor = Color.Red;
|
|
tsStatus.Text += cc.CControlError;
|
|
}
|
|
}
|
|
cc.CControlError = "";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void timerFlash_Tick(object sender, EventArgs e)
|
|
{
|
|
//20100108
|
|
DataView dvh;
|
|
//Model.MDevice device = null;
|
|
try
|
|
{
|
|
if (CStaticClass.Order == true)
|
|
{
|
|
Panel pp = plAccessorial1;
|
|
PictureBox stack1 = bt11001;
|
|
PictureBox stack2 = bt11002;
|
|
TextBox tw11 = t11001;
|
|
TextBox tw21 = t11002;
|
|
PictureBox stack3 = bt11003;
|
|
PictureBox stack4 = bt11004;
|
|
TextBox tw31 = t11003;
|
|
TextBox tw41 = t11004;
|
|
switch(tabControl1.SelectedIndex )
|
|
{
|
|
|
|
case 0:
|
|
pp = plAccessorial1;
|
|
tw11 = t11001;
|
|
tw21 = t11002;
|
|
stack1 = bt11001;
|
|
stack2 = bt11002;
|
|
tw31 = t11003;
|
|
tw41 = t11004;
|
|
stack3 = bt11003;
|
|
stack4 = bt11004;
|
|
|
|
break;
|
|
case 1:
|
|
pp = plAccessorial2;
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
#region ÿ²ãÂ¥¼àÊÓ»Ãæ
|
|
|
|
foreach (Control ctrl in pp.Controls)
|
|
{
|
|
if (((ctrl.GetType().ToString() == "System.Windows.Forms.Button") ||
|
|
(ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox")) &&
|
|
(ctrl.Enabled == true))
|
|
{
|
|
|
|
device = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(ctrl.Tag));
|
|
if (device == null)
|
|
{//20100108
|
|
if (tsStatus.Text.IndexOf("É豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!") < 0)
|
|
{
|
|
tsStatus.ForeColor = Color.Red;
|
|
this.tsStatus.Text += "É豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!";
|
|
}
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
#region ÉèÖÃÉ豸״̬
|
|
switch (device.RunState)
|
|
{
|
|
//¿ÕÏÐ
|
|
case 0:
|
|
if (device.DeviceKind == 1 || device.DeviceKind == 4)
|
|
{
|
|
ctrl.BackColor = Color.MediumOrchid;
|
|
}
|
|
else
|
|
{
|
|
if (device.DeviceKind != 18)
|
|
{
|
|
ctrl.BackColor = SystemColors.InactiveCaptionText;
|
|
}
|
|
}
|
|
break;
|
|
//ÔËÐÐ
|
|
case 1:
|
|
ctrl.BackColor = Color.Lime;
|
|
break;
|
|
//¹ÊÕÏ
|
|
case 2:
|
|
ctrl.BackColor = Color.Red;
|
|
break;
|
|
//ÀëÏß
|
|
case 3:
|
|
ctrl.BackColor = Color.LightYellow;
|
|
break;
|
|
//Í£ÓÃ
|
|
case 4:
|
|
ctrl.BackColor = Color.Maroon;
|
|
break;
|
|
//20090920¶¯×÷Íê³É
|
|
case 5:
|
|
if (device.DeviceKind == 1 || device.DeviceKind == 4)
|
|
{
|
|
ctrl.BackColor = Color.MediumSlateBlue;//MediumOrchid;
|
|
}
|
|
else
|
|
{
|
|
if (device.DeviceKind != 18)
|
|
{
|
|
ctrl.BackColor = Color.Gray;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
#endregion
|
|
|
|
#region ÒÆ¶¯Éè±¸×ø±ê¸üÐÂ
|
|
//¶Ñ¶â»ú
|
|
if (device.DeviceKind == 1)
|
|
{
|
|
switch (device.DeviceIndex)
|
|
{
|
|
|
|
case 11001:
|
|
stack1.Location = new Point((int)(233+18.02 * (device.XCoor - 1)), stack1.Location.Y);
|
|
tw11.Location = new Point(stack1.Location.X + 6, tw11.Location.Y);
|
|
|
|
break;
|
|
case 11002:
|
|
stack2.Location = new Point((int)(233+18.02 * (device.XCoor - 1)), stack2.Location.Y);
|
|
tw21.Location = new Point(stack2.Location.X + 6, tw21.Location.Y);
|
|
|
|
break;
|
|
case 11003:
|
|
stack3.Location = new Point((int)(233 + 18.02 * (device.XCoor - 1)), stack3.Location.Y);
|
|
tw31.Location = new Point(stack3.Location.X + 6, tw31.Location.Y);
|
|
|
|
break;
|
|
case 11004:
|
|
stack4.Location = new Point((int)(233 + 18.02 * (device.XCoor - 1)), stack4.Location.Y);
|
|
tw41.Location = new Point(stack4.Location.X + 6, tw41.Location.Y);
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
else if ((ctrl.GetType().ToString() == "System.Windows.Forms.TextBox") || ((ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox") && (ctrl.Name.Substring(0, 1) == "t")))
|
|
{
|
|
#region »õÎï̽²â20101118
|
|
DS = ctrl.Tag.ToString().Split(dd);
|
|
int devicebyte = 0; int devbit = 0;
|
|
int.TryParse(DS[0], out devicebyte);
|
|
int.TryParse(DS[1], out devbit);
|
|
|
|
ctrl.Visible = CStaticClass.GetDevicePhotoelectric(devicebyte,devbit) == 1 ? true : false;
|
|
#endregion
|
|
}
|
|
#region Âß¼ÓÐÎïÏÔʾ
|
|
|
|
|
|
else if (ctrl.GetType().ToString() == "System.Windows.Forms.RadioButton")
|
|
{
|
|
//20100108DataView dvh;
|
|
dvh = dbo.ExceSQL("SELECT F_DeviceIndex FROM T_Base_Device WHERE (F_DeviceIndex = " + ctrl.Tag + ") AND (F_HaveGoods = 1)").Tables[0].DefaultView;
|
|
if (dvh.Count > 0)
|
|
{
|
|
ctrl.Visible = true;
|
|
ctrl.BackColor = Color.Blue;
|
|
}
|
|
else
|
|
{
|
|
ctrl.Visible = false;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{//20100108
|
|
if (tsStatus.Text.IndexOf("ˢнçÃæ¶¯»Ê±£º" + ex.Message) < 0)
|
|
{
|
|
tsStatus.ForeColor = Color.Red;
|
|
this.tsStatus.Text += "ˢнçÃæ¶¯»Ê±£º" + ex.Message;
|
|
}
|
|
}
|
|
finally
|
|
{//20100108
|
|
dvh = null;
|
|
device = null;
|
|
}
|
|
}
|
|
|
|
private void tabPage1_Paint(object sender, PaintEventArgs e)
|
|
{
|
|
Graphics g = e.Graphics;
|
|
g.TranslateTransform(this.tabPage1.AutoScrollPosition.X, this.tabPage1.AutoScrollPosition.Y);
|
|
//20100108
|
|
g.Dispose();
|
|
}
|
|
|
|
private void dgvMonitor_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
|
|
{
|
|
foreach (DataGridViewRow DGVRow in this.dgvMonitor.Rows)
|
|
{
|
|
if (DGVRow != null)
|
|
{
|
|
if (Convert.ToInt32(DGVRow.Cells["f_status"].Value) >= 30)
|
|
{
|
|
DGVRow.DefaultCellStyle.BackColor = Color.Red;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void timerCamera_Tick(object sender, EventArgs e)
|
|
{
|
|
|
|
//20100108¿ØÖÆÉãÏñÍ·½â³ýµ±Ç°ÇøÓò±¨¾¯
|
|
//ÉãÏñÍ·É豸ÀàÐÍ29£»Ã¿¸öÉ豸µÄF_LocalPort´ú±íÉãÏñÍ·É豸Ë÷Òý£»F_RemotePort´ú±íÉãÏñÍ·»®·ÖµÄÇøÓòÖµ£¨1--12£©
|
|
//¼ì²éF_LocalPort´ú±íÉãÏñÍ·É豸Ë÷ÒýµÄÇøÓòF_RemotePortÄÚµÄËùÓÐÉ豸¶¼Ã»Óб¨¾¯¾ÍÖÃF_LockedState=0
|
|
if (CStaticClass.Order == false) return;
|
|
DataView dv;
|
|
DataView dv1;
|
|
DataView dvs;
|
|
try
|
|
{
|
|
|
|
dv = dbo.ExceSQL("select F_DeviceIndex,F_LockedState from T_Base_Device where F_DeviceKindIndex=29 and F_LockedState>0").Tables[0].DefaultView;
|
|
for (int i = 0; i < dv.Count; i++)
|
|
{
|
|
if (dv[i]["F_LockedState"] != DBNull.Value)
|
|
{//ÓÐÉ豸Ë÷ÒýËø×¡ÉãÏñÍ·
|
|
dv1 = dbo.ExceSQL("SELECT F_RemotePort FROM T_Base_Device WHERE F_DeviceIndex=" + dv[i]["F_LockedState"] + "").Tables[0].DefaultView;
|
|
if (dv1.Count > 0)
|
|
{
|
|
//¼ì²éF_LocalPortÉãÏñÍ·É豸Ë÷ÒýµÄF_RemotePortÇøÓòÄÚµÄËùÓÐÉ豸¶¼Ã»Óб¨¾¯¾ÍÖÃF_LockedState=0
|
|
dvs = dbo.ExceSQL("SELECT SUM(F_ErrorCode) AS errs FROM T_Base_Device WHERE (F_LocalPort = " + dv[i]["F_DeviceIndex"] + " and F_RemotePort=" + dv1[0]["F_RemotePort"] + ") ").Tables[0].DefaultView;
|
|
|
|
if (dvs[0]["errs"] != DBNull.Value)
|
|
{
|
|
if (Convert.ToInt32(dvs[0]["errs"]) <= 0)
|
|
{
|
|
#region ¿ØÖÆÉãÏñÍ·½â³ýµ±Ç°ÇøÓò±¨¾¯
|
|
|
|
dbo.ExceSQL("update T_Base_Device set F_LockedState=0 where F_DeviceIndex=" + dv[i]["F_DeviceIndex"] + " and F_LockedState>0");
|
|
#endregion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (tsStatus.Text.IndexOf(ex.Message) < 0)
|
|
{
|
|
tsStatus.Text += ex.Message;
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
dv = null;
|
|
dvs = null;
|
|
dv1 = null;
|
|
}
|
|
}
|
|
|
|
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string df = "";
|
|
|
|
switch (this.comboBox1.Text)
|
|
{
|
|
case "ÍÐÅÌÌõÂë":
|
|
df = "¸½¼ÓÐÅÏ¢";
|
|
break;
|
|
case "µ÷¶ÈÈÎÎñË÷Òý":
|
|
df = "µ÷¶ÈÈÎÎñË÷Òý";
|
|
break;
|
|
case "É豸ָÁîË÷Òý":
|
|
df = "É豸ָÁîË÷Òý";
|
|
break;
|
|
|
|
|
|
default:
|
|
return;
|
|
}
|
|
//20100208
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("select distinct " + df + " from V_Monitor_Task ");
|
|
|
|
DataView dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
this.textBox1.DataSource = null;
|
|
this.textBox1.DisplayMember = df;
|
|
this.textBox1.ValueMember = df;
|
|
this.textBox1.DataSource = dv;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void timerListenSerialPort_Tick(object sender, EventArgs e)
|
|
{//20100609¼àÌý״̬ÊÇ´óÓÚ0µÄ´®¿ÚÉ豸
|
|
DataView dv,dvlane;
|
|
int devindex = 0, byteRead = 0;
|
|
byte[] GetBytes;
|
|
int TaskIdx = 0;
|
|
int mti =0;
|
|
int mtikind=0;
|
|
try
|
|
{
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("SELECT T_Base_Device.F_DeviceIndex,T_Monitor_Task.F_MonitorIndex FROM T_Base_Device,T_Monitor_Task where (T_Base_Device.F_DeviceIndex = T_Monitor_Task.F_DeviceIndex) and (T_Monitor_Task.F_Status > 0) AND (T_Base_Device.F_SerialPort > 0)");
|
|
dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
|
|
for (int i = 0; i < dv.Count; i++)
|
|
{
|
|
|
|
devindex = Convert.ToInt32(dv[i]["F_DeviceIndex"]);
|
|
if (CStaticClass.serialports[devindex].IsOpen == false)
|
|
{
|
|
CStaticClass.serialports[devindex].Open();
|
|
}
|
|
byteRead = CStaticClass.serialports[devindex].BytesToRead;
|
|
if (byteRead >= 8)
|
|
{
|
|
GetBytes = new byte[byteRead];
|
|
CStaticClass.serialports[devindex].Read(GetBytes, 0, byteRead);
|
|
if ((byteRead == 8) && (GetBytes[1] == 240) && (GetBytes[6] == 170))//PLCÖ´ÐÐPCÃüÁîµÄÓ¦´ðÖ¡£¬PCÈÏΪÈÎÎñ¿ªÊ¼ÔËÐÐ
|
|
{
|
|
TaskIdx =Convert.ToInt32( (GetBytes[3] * Math.Pow(2, 8) + GetBytes[4]));
|
|
mti = ccf.GetManageTaskIndexfromMonitor(TaskIdx);
|
|
mtikind = ccf.GetManageTaskKindIndexFromMonitor(TaskIdx);
|
|
#region Ð޸ĵ÷¶ÈÈÎÎñ״̬
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("update T_Monitor_Task set F_Status=2 where F_Status=1 and F_MonitorIndex=" + TaskIdx);
|
|
dbo.ExceSQL(sql.ToString());
|
|
#endregion
|
|
|
|
#region ¸ù¾ÝÈÎÎñºÅºÍ̽ÎïÇé¿öÅжÏÈÎÎñÖ´ÐеÄλÖûØÐ´±¾µØ¹ÜÀí±í
|
|
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("update T_Manage_Task set FCurrentLocation=" ).Append(
|
|
devindex ).Append( " where F_ManageTaskKindIndex=" ).Append( mtikind ).Append( " and FID=" ).Append( mti ).Append( "");
|
|
dbo.ExceSQL(sql.ToString());
|
|
//µ÷¶ÈÈÎÎñ±íÒ²¼Ç¼µ±Ç°Î»Öã¬Ö÷ÒªÊǸøÊäËÍ»úÁ´ÓÃ
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("update T_Monitor_Task set F_CurrentLocation=" ).Append(
|
|
devindex ).Append( " where F_MonitorIndex=" ).Append( TaskIdx);
|
|
dbo.ExceSQL(sql.ToString());
|
|
//É豸Âß¼ÓÐÎï
|
|
|
|
//20090918¸ø¶Ñ¶â»úËÍ»õµÄÊäËÍ»úÂß¼ÓÐÎï½âËøF_HaveGoods=0
|
|
//20100108
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("SELECT F_LaneGateDeviceIndex FROM T_Base_Lane_Gate where F_LaneGateDeviceIndex=" ).Append( devindex);
|
|
dvlane = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
if (dvlane.Count > 0)
|
|
{
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("update T_Base_Device set F_HaveGoods=0 where F_DeviceIndex=" ).Append( devindex);
|
|
dbo.ExceSQL(sql.ToString());
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
else if ((byteRead == 16)&& (GetBytes[1] != 240) && (GetBytes[6] != 170))//PLCÖ÷¶¯Éϱ¨ÐÅÏ¢Ö¡£ºÍê³É¡¢¹ÊÕÏ£»PCÐèÒª·¢ËÍÓ¦´ðÖ¡
|
|
{
|
|
TaskIdx = Convert.ToInt32((GetBytes[2] * Math.Pow(2, 8) + GetBytes[3]));
|
|
mti = ccf.GetManageTaskIndexfromMonitor(TaskIdx);
|
|
mtikind = ccf.GetManageTaskKindIndexFromMonitor(TaskIdx);
|
|
if (GetBytes[4] == 1)//Íê³É
|
|
{
|
|
gs.ActionComplete(devindex, TaskIdx, 0);
|
|
}
|
|
else if (GetBytes[4]>=30)//¹ÊÕÏ
|
|
{
|
|
gs.ActionError(devindex, TaskIdx, GetBytes[4]);
|
|
}
|
|
byte [] _Senddata=new byte[8];
|
|
_Senddata[0] = 8;
|
|
_Senddata[1] = 240;
|
|
_Senddata[2] = GetBytes[1];
|
|
_Senddata[3] = Convert.ToByte(TaskIdx >> 8);
|
|
_Senddata[4] = Convert.ToByte(TaskIdx & 255);
|
|
_Senddata[5] = 0;//Convert.ToByte(devindex);
|
|
_Senddata[6] = 170;
|
|
byte SXor = _Senddata[0];
|
|
for (int k = 1; k <= 6; k++)
|
|
{
|
|
SXor = Convert.ToByte(Convert.ToInt16(SXor) ^ Convert.ToInt16(_Senddata[k]));
|
|
}
|
|
_Senddata[7] = SXor;
|
|
CStaticClass.serialports[devindex].Write(_Senddata, 0, 8);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (tsStatus.Text.IndexOf("¼àÌý´®¿ÚÉ豸" + devindex.ToString() + "ʱ£º" + ex.Message) < 0)
|
|
{
|
|
tsStatus.Text += "¼àÌý´®¿ÚÉ豸" + devindex.ToString() + "ʱ£º" + ex.Message;
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
dv = null;
|
|
GetBytes = null;
|
|
}
|
|
}
|
|
|
|
private void tsStatus_TextChanged(object sender, EventArgs e)
|
|
{
|
|
if (OPCClient.CCommonOPCClient.OpcError != null)//20101011
|
|
{
|
|
if (OPCClient.CCommonOPCClient.OpcError.IndexOf("ͬ²½Êý¾Ýʱ£ºOPC ServerûÁ¬½Óµ½PLC£¬²¢ÇÒ³¬¹ýÖØ¸´Á¬½Ó´ÎÊý!ÇëÏȹرÕÃüÁ¹Ø£¬¼ì²éͨѶÏß·£¬È·ÈϺóÖØÐ´ò¿ªÃüÁ¹Ø£¡") >= 0)
|
|
{
|
|
if (tsStatus.Text.IndexOf("ͬ²½Êý¾Ýʱ£ºOPC ServerûÁ¬½Óµ½PLC£¬²¢ÇÒ³¬¹ýÖØ¸´Á¬½Ó´ÎÊý!ÇëÏȹرÕÃüÁ¹Ø£¬¼ì²éͨѶÏß·£¬È·ÈϺóÖØÐ´ò¿ªÃüÁ¹Ø£¡") >= 0)
|
|
{
|
|
|
|
FrmMain.FormInstance.Voice.Speak("ͬ²½Êý¾Ýʱ£ºOPC ServerûÁ¬½Óµ½PLC£¬²¢ÇÒ³¬¹ýÖØ¸´Á¬½Ó´ÎÊý!ÇëÏȹرÕÃüÁ¹Ø£¬¼ì²éͨѶÏß·£¬È·ÈϺóÖØÐ´ò¿ªÃüÁ¹Ø£¡", DotNetSAPI.SpeechVoiceSpeakFlags.SVSFlagsAsync);
|
|
//tsStatus.Text = "";
|
|
}
|
|
}
|
|
}
|
|
if (SocketsTCPIP.CClientTCPIP.TcpError != null)//20101011
|
|
{
|
|
if (SocketsTCPIP.CClientTCPIP.TcpError.IndexOf("SocketsTCPIP:Á¬½ÓÔ¶³ÌÖ÷»úʱ£¬·¢ÉúÈý´ÎÁ¬½Óʧ°Ü´íÎó£¡Çë¼ì²éÔ¶³ÌÖ÷»úÊÇ·ñÕý³£ÔËÐÐ!ÖØÐ´ò¿ªÃüÁ¹Ø¡£") >= 0)
|
|
{
|
|
if (tsStatus.Text.IndexOf("SocketsTCPIP:Á¬½ÓÔ¶³ÌÖ÷»úʱ£¬·¢ÉúÈý´ÎÁ¬½Óʧ°Ü´íÎó£¡Çë¼ì²éÔ¶³ÌÖ÷»úÊÇ·ñÕý³£ÔËÐÐ!ÖØÐ´ò¿ªÃüÁ¹Ø¡£") >= 0)
|
|
{
|
|
|
|
FrmMain.FormInstance.Voice.Speak("SocketsTCPIP:Á¬½ÓÔ¶³ÌÖ÷»úʱ£¬·¢ÉúÈý´ÎÁ¬½Óʧ°Ü´íÎó£¡Çë¼ì²éÔ¶³ÌÖ÷»úÊÇ·ñÕý³£ÔËÐÐ!ÖØÐ´ò¿ªÃüÁ¹Ø¡£", DotNetSAPI.SpeechVoiceSpeakFlags.SVSFlagsAsync);
|
|
//tsStatus.Text = "";
|
|
}
|
|
}
|
|
}
|
|
if (CParsePLCData.CParsePLCError != null)//20101011
|
|
{
|
|
if (CParsePLCData.CParsePLCError.IndexOf("·¢Éú¹ÊÕÏ£ºÓлõÎÞµ÷¶ÈÈÎÎñ£¬ÇëÄú¼ì²éÈ·ÈÏ£¡") >= 0)
|
|
{
|
|
if (tsStatus.Text.IndexOf("·¢Éú¹ÊÕÏ£ºÓлõÎÞµ÷¶ÈÈÎÎñ£¬ÇëÄú¼ì²éÈ·ÈÏ£¡") >= 0)
|
|
{
|
|
|
|
FrmMain.FormInstance.Voice.Speak("×éÏäÇøÈë¿âÊäËÍ»ú·¢Éú¹ÊÕÏ£ºÓлõÎÞµ÷¶ÈÈÎÎñ£¬ÇëÄú¼ì²éÈ·ÈÏ£¡", DotNetSAPI.SpeechVoiceSpeakFlags.SVSFlagsAsync);
|
|
//tsStatus.Text = "";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void FrmControlMonitor_Resize(object sender, EventArgs e)
|
|
{
|
|
if (this.WindowState == FormWindowState.Maximized)
|
|
{
|
|
this.FormBorderStyle = FormBorderStyle.None;
|
|
}
|
|
else
|
|
{
|
|
this.FormBorderStyle = FormBorderStyle.Sizable;
|
|
}
|
|
}
|
|
|
|
private void ReApplyTask_Click(object sender, EventArgs e)
|
|
{//20110331
|
|
try
|
|
{
|
|
LinkLabel bt = (LinkLabel)sender;
|
|
int devBind = Convert.ToInt32(bt.Tag);
|
|
device = Model.CGetInfo.GetDeviceInfo(devBind);//20110331
|
|
if (CStaticClass.GetDevicePhotoelectric(device.SendOutDetect) != 1) return;//20110331
|
|
DataView dv = dbo.ExceSQL(string.Format("SELECT F_DeviceIndex, F_BarCode FROM T_Base_PLC_Ask WHERE (F_BarCode<>'-') and (F_BindingDevice = {0})", devBind)).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
cplc.clientApp.ManageStockCreateApplyAsync(dv[0]["F_BarCode"].ToString(), dv[0]["F_DeviceIndex"].ToString());
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
tsStatus.Text = "ÖØÐÂÉêÇëÈÎÎñʱ£º" + ex.Message;
|
|
}
|
|
}
|
|
|
|
private void HandleCompelte_Click(object sender, EventArgs e)
|
|
{//20110412
|
|
try
|
|
{
|
|
LinkLabel bt = (LinkLabel)sender;
|
|
int deviceindex = Convert.ToInt32(bt.Tag);
|
|
string barcode = string.Empty;
|
|
if (CStaticClass.GetDevicePhotoelectric(deviceindex.ToString() + ".0") != 1) return;//20110331µþÅÌ»úÎÞÎï
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("SELECT T_Base_PLC_Ask.F_DeviceIndex,T_Base_PLC_Ask.F_BindingDevice, F_Askkind,F_TaskIndex,F_BarCode,F_Remark").Append(
|
|
",F_FirstProject,F_BoxBarcode,F_TempFirstProject FROM T_Base_Device,T_Base_PLC_Ask").Append(
|
|
" where T_Base_Device.F_DeviceIndex=T_Base_PLC_Ask.F_DeviceIndex and F_BarCode<>'-' and T_Base_PLC_Ask.F_DeviceIndex=").Append(deviceindex).Append(
|
|
" order by T_Base_Device.F_DeviceIndex desc");
|
|
DataView dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
barcode = dv[0]["F_BarCode"].ToString();
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("SELECT T_Base_PLC_Ask.F_DeviceIndex,T_Base_PLC_Ask.F_BindingDevice, F_Askkind,F_TaskIndex,F_BarCode,F_Remark").Append(
|
|
",F_FirstProject,F_BoxBarcode,F_TempFirstProject FROM T_Base_Device,T_Base_PLC_Ask").Append(
|
|
" where T_Base_Device.F_DeviceIndex=T_Base_PLC_Ask.F_DeviceIndex and T_Base_PLC_Ask.F_Remark=").Append(deviceindex).Append(
|
|
" order by T_Base_Device.F_DeviceIndex desc");
|
|
dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
int i = 0;
|
|
//20110505һ¥µþÅÌ»úÏ´ïÃüÁîµ½µþÅÌ»ú14001
|
|
int dcode = Convert.ToInt32(dv[i]["F_BindingDevice"]);
|
|
int dpjcode = 0;
|
|
if (deviceindex == 14001)
|
|
{
|
|
dpjcode = 14001;
|
|
}
|
|
else
|
|
{
|
|
dpjcode = Convert.ToInt32(dv[i]["F_BoxBarcode"]);
|
|
}
|
|
StringBuilder dtime = new StringBuilder(DateTime.Now.ToString("u"));
|
|
dtime.Remove(dtime.Length - 1, 1);
|
|
int hidx = ccf.GetTempManageIdx();
|
|
int hmindx = ccf.GetMonitorIndex(hidx, 2);
|
|
string ah = string.Format("D-{0}.0;D{1}.0;I{0};I{1}", dv[i]["F_Remark"].ToString(), dv[i]["F_BoxBarcode"].ToString());
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("insert into T_Monitor_Task(F_MonitorTaskLevel,F_RouteID,F_ManageTaskIndex,F_ManageTaskKindIndex,F_MonitorIndex,").
|
|
Append("F_DeviceIndex,F_DeviceCommandIndex,F_UseAwayFork,F_AheadDetect,F_RunningLock,F_TxtParam) ").
|
|
Append("values(2,").Append(GetRouteIDsub(Convert.ToInt32(dv[i]["F_BoxBarcode"]))).Append(",").Append(hidx).Append(",2,").Append(hmindx).Append(",").Append(dpjcode).
|
|
Append(",8,'-','").Append(ah).Append("','").Append(dcode.ToString()).Append("','").Append(barcode).Append("')");
|
|
dbo.ExecuteSql(sql.ToString());
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("update T_Base_device set F_LockedState=").Append(hmindx).Append(
|
|
" where F_DeviceIndex=").Append(dcode);
|
|
dbo.ExecuteSql(sql.ToString());
|
|
sql.Remove(0, sql.Length);
|
|
sql.Append("insert into T_Manage_Task(FID,FPALLETBARCODE,FCONTROLTASKTYPE,F_ManageTaskKindIndex,FSTARTWAREHOUSE,FSTARTDEVICE,FSTARTCELL,").
|
|
Append("FENDWAREHOUSE,FENDDEVICE,FENDCELL,FLANEWAY,FSTACK,FUseAwayFork,FBEGTIME,FIntoStepOK) ").
|
|
Append("values(").Append(hidx).Append(",'").Append(barcode).Append("',1,2,'").Append(ccf.GetWarehouseIndex()).Append("','").Append(Convert.ToInt32(dv[i]["F_BoxBarcode"])).Append("','-','").Append(ccf.GetWarehouseIndex()).Append("','"
|
|
).Append(dv[i]["F_TempFirstProject"]).Append("','-',0,0,'-','").Append(dtime).Append("','1')");
|
|
dbo.ExecuteSql(sql.ToString());
|
|
cplc.client.ManageStockCreateCompleteAsync(dv[i]["F_BoxBarcode"].ToString(),barcode);
|
|
}
|
|
dbo.ExecuteSql(string.Format("UPDATE T_Base_PLC_Ask SET F_BarCode = '-' WHERE (F_DeviceIndex = {0})", deviceindex));
|
|
CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "È˹¤Ç¿ÖƵþÅÌÍê³É", deviceindex.ToString(), barcode);
|
|
FrmControlMonitor.FormInstance.MonitorRefresh();//20110222
|
|
FrmControlMonitor.FormInstance.ManagerRefresh();//20110222
|
|
}
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
tsStatus.Text = "Ç¿ÖÆµþÅÌÍê³Éʱ£º" + ex.Message;
|
|
}
|
|
}
|
|
int GetRouteIDsub(int device)
|
|
{//20110412
|
|
DataView dv = dbo.ExceSQL("SELECT F_RouteIDSub, F_DeviceIndex, F_RouteID FROM T_Base_Route_Device where F_DeviceIndex=" + device + "").Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
return Convert.ToInt32(dv[0]["F_RouteIDSub"]);
|
|
}
|
|
else
|
|
{
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
private void linkLabel3_Click(object sender, EventArgs e)
|
|
{
|
|
if (CStaticClass.GetDevicePhotoelectric(12030, 0) == 1)
|
|
{
|
|
if (MessageBox.Show("ÄúÈ·ÈÏ12030ûɨµ½ÌõÂ룬ÐèÒªÈ˹¤¼ì²éÂð£¿", "²Ù×÷Ìáʾ£º", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
string dtime = DateTime.Now.ToString("u");//20101028
|
|
dtime = dtime.Substring(0, dtime.Length - 1);//20101028
|
|
int AutoManageIdx = ccf.GetTempManageIdx();
|
|
string Sql = "insert into T_Manage_Task(FID,FPALLETBARCODE,FCONTROLTASKTYPE,F_ManageTaskKindIndex,FSTARTWAREHOUSE,FSTARTDEVICE,FSTARTCELL," +
|
|
"FENDWAREHOUSE,FENDDEVICE,FENDCELL,FLANEWAY,FSTACK,FUseAwayFork,FBEGTIME) " +
|
|
"values(" + AutoManageIdx + ",'0000000000','3',2,'" + ccf.GetWarehouseIndex() + "','12030','-','" + ccf.GetWarehouseIndex() + "','12032','-',0,0,'-','" + dtime + "')";//20101028
|
|
dbo.ExceSQL(Sql);
|
|
FrmControlMonitor.FormInstance.ManagerRefresh();//20110222
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|