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()); } } /// /// 拧紧 /// /// /// /// /// /// /// 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()); } } /// /// 底涂读 /// /// /// /// /// /// /// 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()); } } /// /// 视觉检测 /// /// /// /// /// /// /// 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 } } /// /// 创建服务 /// /// private bool CreateServer() { try { opcServer = new OPCServer(); } catch { return false; } return true; } /// /// 连接到服务器 /// /// /// /// private bool ConnectServer(string strHostIP, string strHostName) { try { opcServer.Connect(strHostName, strHostIP); } catch { return false; } return true; } /// /// 设置组的属性 /// /// /// 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()); } } } }