2210718沈阳地铁2号线南延线wcs代码
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

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
}
}
}
}