一厂MES,含注塑,喷涂,冲孔
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.

947 lines
34 KiB

3 months ago
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using MESClassLibrary;
using MESClassLibrary.BLL.BasicInfo;
using MESClassLibrary.BLL.Log;
using MESClassLibrary.BLL.TruckBox;
using MESClassLibrary.DAL;
using MESClassLibrary.EFModel;
using OPCAutomation;
namespace InjectionPC
{
public partial class FrmTighten : Form
{
public FrmTighten()
{
InitializeComponent();
}
#region 变量
private string strHostIP;
private string strHostName;
private OPCServer opcServer;
private OPCGroups opcGroups;
private OPCGroup opcGroup1;
private OPCItems opcItems1;
private OPCItem[] opcItemm1;
private OPCGroup opcGroup2;
private OPCItems opcItems2;
private OPCItem[] opcItemm2;
private OPCGroup opcGroup3;
private OPCItems opcItems3;
private OPCItem[] opcItemm3;
private OPCGroup opcGroup4;
private OPCItems opcItems4;
private OPCItem[] opcItemm4;
private OPCGroup opcGroup5;
private OPCItems opcItems5;
private OPCItem[] opcItemm5;
private OPCGroup opcGroup6;
private OPCItems opcItems6;
private OPCItem[] opcItemm6;
private OPCGroup opcGroup7;
private OPCItems opcItems7;
private OPCItem[] opcItemm7;
private string[] ItemIDs;
object ItemValues;
object Qualities;
object TimeStamps;
public bool Connected = false;
#endregion
string barCode = "";
private long times = 0;
private void FrmTighten_Load(object sender, EventArgs e)
{
try
{
Control.CheckForIllegalCrossThreadCalls = false;
InitList();
GetClass();
GetOpenCount();
#region 连接PLC
if (CreateServer())
{
if (ConnectServer(strHostIP, "Kepware.KEPServerEX.V6"))
{
Connected = true;
#region 创建组
opcGroups = opcServer.OPCGroups;
opcGroup1 = opcGroups.Add("Read2"); //打螺钉
SetGroupProperty(opcGroup1, 100);
opcGroup2 = opcGroups.Add("Write2");
SetGroupProperty(opcGroup2, 100);
opcGroup3 = opcGroups.Add("Write3"); //开门
SetGroupProperty(opcGroup3, 100);
opcGroup4 = opcGroups.Add("Read4"); //底涂
SetGroupProperty(opcGroup4, 100);
opcGroup5 = opcGroups.Add("Write4");
SetGroupProperty(opcGroup5, 100);
opcGroup6 = opcGroups.Add("Read5"); //视觉
SetGroupProperty(opcGroup6, 100);
opcGroup7 = opcGroups.Add("Write5");
SetGroupProperty(opcGroup6, 100);
#endregion
#region 创建项
opcItems1 = opcGroup1.OPCItems;
opcItems1.DefaultIsActive = true;
AddressBLL bll = new AddressBLL();
DataTable dt1 = CommonTools.ListToDataTable(bll.SearchInfo("2", 0));
if (dt1 != null && dt1.Rows.Count > 0)
{
opcItemm1 = new OPCItem[dt1.Rows.Count];
for (int i = 0; i < dt1.Rows.Count; i++)
{
opcItemm1[i] = opcItems1.AddItem(dt1.Rows[i]["Address"].ToString(), i);
}
}
Thread.Sleep(200);
opcItems2 = opcGroup2.OPCItems;
opcItems2.DefaultIsActive = true;
DataTable dt2 = CommonTools.ListToDataTable(bll.SearchInfo("2", 1));
if (dt2 != null && dt2.Rows.Count > 0)
{
opcItemm2 = new OPCItem[dt2.Rows.Count];
for (int i = 0; i < dt2.Rows.Count; i++)
{
opcItemm2[i] = opcItems2.AddItem(dt2.Rows[i]["Address"].ToString(), i);
}
}
opcItems3 = opcGroup3.OPCItems;
opcItems3.DefaultIsActive = true;
DataTable dt3 = CommonTools.ListToDataTable(bll.SearchInfo("3", 1));
if (dt3 != null && dt3.Rows.Count > 0)
{
opcItemm3 = new OPCItem[dt3.Rows.Count];
for (int i = 0; i < dt3.Rows.Count; i++)
{
opcItemm3[i] = opcItems3.AddItem(dt3.Rows[i]["Address"].ToString(), i);
}
}
opcItems4 = opcGroup4.OPCItems;
opcItems4.DefaultIsActive = true;
DataTable dt4 = CommonTools.ListToDataTable(bll.SearchInfo("4", 0));
if (dt4 != null && dt4.Rows.Count > 0)
{
opcItemm4 = new OPCItem[dt4.Rows.Count];
for (int i = 0; i < dt4.Rows.Count; i++)
{
opcItemm4[i] = opcItems4.AddItem(dt4.Rows[i]["Address"].ToString(), i);
}
}
opcItems5 = opcGroup5.OPCItems;
opcItems5.DefaultIsActive = true;
DataTable dt5 = CommonTools.ListToDataTable(bll.SearchInfo("4", 1));
if (dt5 != null && dt5.Rows.Count > 0)
{
opcItemm5 = new OPCItem[dt5.Rows.Count];
for (int i = 0; i < dt5.Rows.Count; i++)
{
opcItemm5[i] = opcItems5.AddItem(dt5.Rows[i]["Address"].ToString(), i);
}
}
opcItems6 = opcGroup6.OPCItems;
opcItems6.DefaultIsActive = true;
DataTable dt6 = CommonTools.ListToDataTable(bll.SearchInfo("5", 0));
if (dt6 != null && dt6.Rows.Count > 0)
{
opcItemm6 = new OPCItem[dt6.Rows.Count];
for (int i = 0; i < dt6.Rows.Count; i++)
{
opcItemm6[i] = opcItems6.AddItem(dt6.Rows[i]["Address"].ToString(), i);
}
}
opcItems7 = opcGroup7.OPCItems;
opcItems7.DefaultIsActive = true;
DataTable dt7 = CommonTools.ListToDataTable(bll.SearchInfo("5", 1));
if (dt7 != null && dt7.Rows.Count > 0)
{
opcItemm7 = new OPCItem[dt7.Rows.Count];
for (int i = 0; i < dt7.Rows.Count; i++)
{
opcItemm7[i] = opcItems7.AddItem(dt7.Rows[i]["Address"].ToString(), i);
}
}
if (ReadSingleValueFromOPC(opcItemm4,0).ToString().ToLower()=="true" || ReadSingleValueFromOPC(opcItemm4,1).ToString().ToLower()=="true")
{
timer1.Start();
}
opcGroup1.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(opcGroup1_DataChange);
opcGroup4.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(opcGroup4_DataChange);
opcGroup5.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(opcGroup5_DataChange);
opcGroup6.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(opcGroup6_DataChange);
#endregion
}
else
{
MessageBox.Show("连接到OPC服务器失败!", "提示", MessageBoxButtons.OK);
Connected = false;
LogHelper.WriteLog("连接到OPC服务器失败!");
}
}
else
{
MessageBox.Show("创建OPC服务失败!", "提示", MessageBoxButtons.OK);
Connected = false;
LogHelper.WriteLog("创建OPC服务失败!");
}
#endregion
times = 0;
Thread t = new Thread(new ThreadStart(TimeGo));
t.Start();
Thread t2 = new Thread(new ThreadStart(TimeGo2));
t2.Start();
//Thread t3 = new Thread(new ThreadStart(TimeGo3));
//t3.Start();
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
}
}
/// <summary>
/// 拧紧
/// </summary>
/// <param name="TransactionID"></param>
/// <param name="NumItems"></param>
/// <param name="ClientHandles"></param>
/// <param name="ItemValues"></param>
/// <param name="Qualities"></param>
/// <param name="TimeStamps"></param>
void opcGroup1_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps)
{
try
{
InspectionBLL bll = new InspectionBLL();
TightenBLL tbll = new TightenBLL();
tb_TightenInfo tmd=new tb_TightenInfo();
tb_Inspection_tx md = new tb_Inspection_tx();
int isOk = 0, isOk1 = 0, isOk2 = 0, isOk3 = 0, isOk4 = 0, isOk5 = 0, isOk6 = 0, isOk7 = 0;
double torque1 = 0, torque2 = 0, torque3 = 0, torque4 = 0, torque5 = 0, torque6 = 0, torque7 = 0;
double angle1 = 0, angle2 = 0, angle3 = 0, angle4 = 0, angle5 = 0, angle6 = 0, angle7 = 0;
for (int i = 1; i <= NumItems; i++)
{
int handle = Convert.ToInt32(ClientHandles.GetValue(i).ToString().Trim());
string value = ItemValues.GetValue(i).ToString();
string address = opcItemm1[(Convert.ToInt32(ClientHandles.GetValue(i)))].ItemID;
#region 拧紧工位条码信息
if (handle == 0)
{
if (!string.IsNullOrWhiteSpace(value))
{
var list = bll.SearchInfoByBarCode(value);
if (list.Count > 0)
{
foreach (var x in list)
{
if (x.IsOK == 1)
{
opcItemm2[0].Write(2); //合格
barCode = value;
}
else
{
opcItemm2[0].Write(3); //不合格
}
}
}
}
}
#endregion
#region 拧紧完成
if (handle == 1)
{
if (value == "1" || value.ToLower() == "true")
{
isOk = ReadSingleValueFromOPC(opcItemm1, 2).ToString()== "1" ? 1 : 0;
isOk1 = ReadSingleValueFromOPC(opcItemm1, 3).ToString() == "1" ? 1 : 0;
isOk2 = ReadSingleValueFromOPC(opcItemm1, 4).ToString() == "1" ? 1 : 0;
isOk3 = ReadSingleValueFromOPC(opcItemm1, 5).ToString() == "1" ? 1 : 0;
isOk4 = ReadSingleValueFromOPC(opcItemm1, 6).ToString() == "1" ? 1 : 0;
isOk5 = ReadSingleValueFromOPC(opcItemm1, 7).ToString() == "1" ? 1 : 0;
isOk6 = ReadSingleValueFromOPC(opcItemm1, 8).ToString() == "1" ? 1 : 0;
isOk7 = ReadSingleValueFromOPC(opcItemm1, 9).ToString() == "1" ? 1 : 0;
torque1 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 10));
torque2 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 11));
torque3 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 12));
torque4 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 13));
torque5 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 14));
torque6 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 15));
torque7 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 16));
angle1 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 17));
angle2 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 18));
angle3 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 19));
angle4 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 20));
angle5 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 21));
angle6 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 22));
angle7 = Convert.ToDouble(ReadSingleValueFromOPC(opcItemm1, 23));
Thread.Sleep(1000);
opcItemm2[1].Write(2); //=2是MES读取完成
//Thread.Sleep(2000);
//string x = "1";
//if (Convert.ToBoolean(ReadSingleValueFromOPC(opcItemm2, 1)).ToString().ToLower() == x.ToLower())
//{
//MessageBox.Show(ReadSingleValueFromOPC(opcItemm2, 1).ToString());
//}
//else
//{
// MessageBox.Show("写入失败");
//}
#region 存储数据
tmd.BarCode = barCode;
tmd.IsOK = isOk;
tmd.IsOK1 = isOk1;
tmd.IsOK2 = isOk2;
tmd.IsOK3 = isOk3;
tmd.IsOK4 = isOk4;
tmd.IsOK5 = isOk5;
tmd.IsOK6 = isOk6;
tmd.IsOK7 = isOk7;
tmd.Torque1 = torque1;
tmd.Torque2 = torque2;
tmd.Torque3 = torque3;
tmd.Torque4 = torque4;
tmd.Torque5 = torque5;
tmd.Torque6 = torque6;
tmd.Torque7 = torque7;
tmd.Angle1 = angle1;
tmd.Angle2 = angle2;
tmd.Angle3 = angle3;
tmd.Angle4 = angle4;
tmd.Angle5 = angle5;
tmd.Angle6 = angle6;
tmd.Angle7 = angle7;
tbll.AddInfo(tmd);
md.BarCode = barCode;
md.IsOK = isOk;
md.Station = 3;
bll.AddInfo(md);
#endregion
}
}
#endregion
}
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
}
}
/// <summary>
/// 底涂读
/// </summary>
/// <param name="TransactionID"></param>
/// <param name="NumItems"></param>
/// <param name="ClientHandles"></param>
/// <param name="ItemValues"></param>
/// <param name="Qualities"></param>
/// <param name="TimeStamps"></param>
void opcGroup4_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues,
ref Array Qualities, ref Array TimeStamps)
{
try
{
for (int i = 1; i <= NumItems; i++)
{
int handle = Convert.ToInt32(ClientHandles.GetValue(i).ToString().Trim());
string value = ItemValues.GetValue(i).ToString();
string address = opcItemm4[(Convert.ToInt32(ClientHandles.GetValue(i)))].ItemID;
AddressBLL bll=new AddressBLL();
bll.UpdateValue(address, value);
if (handle == 0 || handle == 1)
{
if (value.ToLower() == "true")
{
timer1.Start();
}
else
{
timer1.Stop();
}
}
if (handle == 2 || handle == 3)
{
if (value.ToLower() == "true")
{
if (handle == 2)
{
bll.UpdateValue("BBMPT1.ZP.WriteDone1", "False");
}
else
{
bll.UpdateValue("BBMPT1.ZP.WriteDone2", "False");
}
}
}
}
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
}
}
void opcGroup5_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues,
ref Array Qualities, ref Array TimeStamps)
{
try
{
for (int i = 1; i <= NumItems; i++)
{
int handle = Convert.ToInt32(ClientHandles.GetValue(i).ToString().Trim());
string value = ItemValues.GetValue(i).ToString();
//string address = opcItemm1[(Convert.ToInt32(ClientHandles.GetValue(i)))].ItemID;
if (handle == 4 || handle == 5)
{
if (value.ToLower() == "true")
{
timer1.Start();
}
}
}
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
}
}
/// <summary>
/// 视觉检测
/// </summary>
/// <param name="TransactionID"></param>
/// <param name="NumItems"></param>
/// <param name="ClientHandles"></param>
/// <param name="ItemValues"></param>
/// <param name="Qualities"></param>
/// <param name="TimeStamps"></param>
void opcGroup6_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps)
{
InspectionBLL bll = new InspectionBLL();
tb_Inspection_tx md = new tb_Inspection_tx();
string code = "";
int isOk = 0;
for (int i = 1; i <= NumItems; i++)
{
int handle = Convert.ToInt32(ClientHandles.GetValue(i).ToString().Trim());
string value = ItemValues.GetValue(i).ToString();
#region 视觉检测结果
if (handle == 1)
{
if (value == "1") //OK
{
code = ReadSingleValueFromOPC(opcItemm6, 0).ToString();
isOk = 1;
Thread.Sleep(1000);
opcItemm7[0].Write(1);
}
if (value == "2") //NG
{
code = ReadSingleValueFromOPC(opcItemm6, 0).ToString();
isOk = 0;
Thread.Sleep(1000);
opcItemm7[0].Write(1);
}
if (!string.IsNullOrWhiteSpace(code))
{
#region 存质检结果
md.BarCode = code;
md.IsOK = isOk;
md.Station = 5;
bll.AddInfo(md);
#endregion
}
}
#endregion
}
}
/// <summary>
/// 创建服务
/// </summary>
/// <returns></returns>
private bool CreateServer()
{
try
{
opcServer = new OPCServer();
}
catch
{
return false;
}
return true;
}
/// <summary>
/// 连接到服务器
/// </summary>
/// <param name="strHostIP"></param>
/// <param name="strHostName"></param>
/// <returns></returns>
private bool ConnectServer(string strHostIP, string strHostName)
{
try
{
opcServer.Connect(strHostName, strHostIP);
}
catch
{
return false;
}
return true;
}
/// <summary>
/// 设置组的属性
/// </summary>
/// <param name="opcGroup"></param>
/// <param name="updateRate"></param>
private void SetGroupProperty(OPCGroup opcGroup, int updateRate)
{
opcGroup.IsActive = true;
opcGroup.DeadBand = 0;
opcGroup.UpdateRate = updateRate;
opcGroup.IsSubscribed = true;
}
public object ReadSingleValueFromOPC(OPCItem[] item, int i)
{
object ItemValues;
object Qualities;
object TimeStamps;
item[i].Read(1, out ItemValues, out Qualities, out TimeStamps);
if ((ItemValues != null) && (Qualities.ToString() != "Good"))
{
return ItemValues.ToString();
}
else
{
return false;
}
}
private void TimeGo()
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Enabled = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick);
}
private void TimeGo2()
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 60000;
timer.Enabled = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer2_Tick);
}
private void TimeGo3()
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Enabled = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer3_Tick);
}
private void timer_Tick(object sender, EventArgs e)
{
label2.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
try
{
times++;
if (times % 2 == 0)
{
opcItemm2[2].Write(0);
opcItemm7[1].Write(0);
}
else
{
opcItemm2[2].Write(1);
opcItemm7[1].Write(1);
}
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod());
}
Thread.Sleep(500);
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.KeyCode == Keys.Enter)
{
BarCodeBLL bll=new BarCodeBLL();
InspectionBLL ibll = new InspectionBLL();
ScanRecordBLL sbll = new ScanRecordBLL();
tb_ScanRecord_OpenDoor md=new tb_ScanRecord_OpenDoor();
tb_Inspection_tx imd = new tb_Inspection_tx();
#region 校验有效性
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("条码不能为空!", "提示", MessageBoxButtons.OK);
textBox1.Focus();
textBox1.SelectAll();
return;
}
if (!bll.IsExist(textBox1.Text.Trim()))
{
MessageBox.Show("条码有误!", "提示", MessageBoxButtons.OK);
textBox1.Focus();
textBox1.SelectAll();
return;
}
#endregion
md.BarCode = textBox1.Text.Trim();
md.ScanTime=DateTime.Now;
#region 判断质检是否合格
var list=ibll.SearchInfoByBarCode(textBox1.Text.Trim());
if (list.Count > 0)
{
foreach (var x in list)
{
if (x.IsOK == 0)
{
opcItemm3[1].Write(1); //NG
md.IsOk = 0;
}
else
{
opcItemm3[0].Write(1); //OK
md.IsOk = 1;
}
}
}
#endregion
sbll.AddInfo(md);
#region 存质检结果
imd.BarCode = textBox1.Text.Trim();
imd.IsOK = md.IsOk;
imd.Station = 4;
ibll.AddInfo(imd);
#endregion
InitList();
GetOpenCount();
textBox1.SelectAll();
textBox1.Focus();
}
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
}
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
AddressBLL bll=new AddressBLL();
DataTable dt = CommonTools.ListToDataTable(bll.GetDoneValue());
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i == 0 && dt.Rows[0]["RealValue"].ToString().ToLower()=="true")
{
#region 1#罐子
opcItemm5[0].Write(bll.GetTimeValue(54)); //失效时间
opcItemm5[1].Write(bll.GetTimeValue(55)); //保质期
opcItemm5[4].Write(1);
#endregion
}
if (i == 1 && dt.Rows[1]["RealValue"].ToString().ToLower() == "true")
{
#region 2#罐子
opcItemm5[2].Write(bll.GetTimeValue(56)); //失效时间
opcItemm5[3].Write(bll.GetTimeValue(57)); //保质期
opcItemm5[5].Write(1);
#endregion
}
}
}
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod());
}
}
private void label2_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
private void InitList()
{
try
{
ScanRecordBLL bll =new ScanRecordBLL();
string t1="", t2="";
if (DateTime.Now.Hour >= 8 && DateTime.Now.Hour <20)
{
t1 = DateTime.Now.ToString("yyyy-MM-dd") + " 08:00:00";
t2 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
else if (DateTime.Now.Hour >= 20 && DateTime.Now.Hour <= 23)
{
t1 = DateTime.Now.ToString("yyyy-MM-dd") + " 20:00:00";
t2 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
else
{
t1 = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 20:00:00";
t2 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
glacialList1.Items.Clear();
DataTable dt = bll.SearchInfo(t1, t2);
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
glacialList1.Items.Add(i.ToString());
glacialList1.Items[i].SubItems[0].Text = dt.Rows[i]["BarCode"].ToString();
glacialList1.Items[i].SubItems[1].Text = dt.Rows[i]["ProductName"].ToString();
glacialList1.Items[i].SubItems[2].Text = dt.Rows[i]["IsOk"].ToString() == "1" ? "通过" : "未通过";
glacialList1.Items[i].SubItems[3].Text = dt.Rows[i]["ScanTime"].ToString();
}
}
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
}
}
private DateTime GetDateTime()
{
string sql = "";
DateTime time;
DataTable dt;
try
{
sql = @"select convert(char(23),getdate(),121) as time";
dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
time = DateTime.ParseExact(dt.Rows[0]["time"].ToString(), "yyyy-MM-dd HH:mm:ss.fff",
System.Globalization.CultureInfo.CurrentCulture);
}
else
{
time = DateTime.Now;
}
return time;
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod());
return DateTime.Now;
}
}
private void GetClass()
{
try
{
DateTime aa = GetDateTime();
if (GetDateTime().Hour >= 8 && GetDateTime().Hour < 20)
{
Program.Shift = "白班";
}
else
{
Program.Shift = "夜班";
}
comboBox1.Text = Program.Shift;
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod());
}
}
private void GetOpenCount()
{
try
{
ScanRecordBLL bll = new ScanRecordBLL();
string startTime = "", endTime = "";
if (comboBox1.Text == "白班")
{
startTime = DateTime.Now.ToString("yyyy-MM-dd") + " 08:00:00";
endTime = DateTime.Now.ToString("yyyy-MM-dd") + " 20:00:00";
}
else
{
if (DateTime.Now.Hour <= 7)
{
startTime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 20:00:00";
endTime = DateTime.Now.ToString("yyyy-MM-dd") + " 08:00:00";
}
else
{
startTime = DateTime.Now.ToString("yyyy-MM-dd") + " 20:00:00";
endTime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + " 08:00:00";
}
}
label6.Text = bll.ScanCount(startTime, endTime);
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod());
}
}
private void timer2_Tick(object sender, EventArgs e)
{
GetClass();
GetOpenCount();
}
private void timer3_Tick(object sender, EventArgs e)
{
try
{
times++;
if (times % 2 == 0)
{
opcItemm2[2].Write(0);
opcItemm7[1].Write(0);
}
else
{
opcItemm2[2].Write(1);
opcItemm7[1].Write(1);
}
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
}
}
}
}