<%@ WebHandler Language="C#" Class="plc_led_data_old" %> using System; using System.Web; using System.Collections.Generic; using Curtain.Net.Sockets; using DK.XuWei.WebMes; using Curtain.DataAccess; using Curtain.Log; using System.Data; /// /// 对接LED看板,用于成检显示产品属性信息 /// xuwei /// 2023-08-08 /// public class plc_led_data_old : IHttpHandler { public struct LedData { public int goodscode; public int goodsspecification; public int goodstype; public string barcode; } public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; List ledData = new List(); int scanFlag = 0; //写入PLC //SiemensS7.Open("172.19.26.241", 102); ////移位标识 //int moveFlag = Convert.ToInt16(SiemensS7.Read("1.2")); //context.Response.Write(SiemensS7.Read("1.2")); //context.Response.Write(moveFlag); //Logger.Info("moveFlag: " + moveFlag +" ;barcode: " + context.Request["barcode"]); //if (context.Application["led_data"] is object) //{ // ledData = (List)context.Application["led_data"]; //} ////条码转换生产数据 //if (moveFlag == 1 && ledData.Count > 0) //{ // ledData.RemoveAt(0); // //写业务数据 // if (ledData.Count > 0) // { // for (int i = 0; i < ledData.Count; i++) // { // if (i == 0) // { // SiemensS7.Write("1.6", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.8", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.10", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.14", ledData[i].barcode); // } // //context.Response.Write(SiemensS7.Read("1.14",11)); // if (i == 1) // { // SiemensS7.Write("1.26", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.28", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.30", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.34", ledData[i].barcode); // } // if (i == 2) // { // SiemensS7.Write("1.46", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.48", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.50", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.54", ledData[i].barcode); // } // if (i == 3) // { // SiemensS7.Write("1.66", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.68", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.70", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.74", ledData[i].barcode); // } // if (i == 4) // { // SiemensS7.Write("1.86", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.88", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.90", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.94", ledData[i].barcode); // } // } // } // else // { // //写业务数据 // SiemensS7.Write("1.6", Convert.ToInt16(0)); // SiemensS7.Write("1.8", Convert.ToInt16(0)); // SiemensS7.Write("1.10", Convert.ToInt16(0)); // SiemensS7.Write("1.14", "00000000000"); // SiemensS7.Write("1.26", Convert.ToInt16(0)); // SiemensS7.Write("1.28", Convert.ToInt16(0)); // SiemensS7.Write("1.30", Convert.ToInt16(0)); // SiemensS7.Write("1.34", "00000000000"); // SiemensS7.Write("1.46", Convert.ToInt16(0)); // SiemensS7.Write("1.48", Convert.ToInt16(0)); // SiemensS7.Write("1.50", Convert.ToInt16(0)); // SiemensS7.Write("1.54", "00000000000"); // SiemensS7.Write("1.66", Convert.ToInt16(0)); // SiemensS7.Write("1.68", Convert.ToInt16(0)); // SiemensS7.Write("1.70", Convert.ToInt16(0)); // SiemensS7.Write("1.74", "00000000000"); // SiemensS7.Write("1.86", Convert.ToInt16(0)); // SiemensS7.Write("1.88", Convert.ToInt16(0)); // SiemensS7.Write("1.90", Convert.ToInt16(0)); // SiemensS7.Write("1.94", "00000000000"); // } // //写标识位-扫描结果 // SiemensS7.Write("1.0", Convert.ToInt16(0)); // SiemensS7.Write("1.2", Convert.ToInt16(0)); // SiemensS7.Write("1.4", Convert.ToInt16(1)); // context.Application["led_data"] = ledData; //} //else if (moveFlag == 2) //{ // ledData = new List(); // //写业务数据 // SiemensS7.Write("1.6", Convert.ToInt16(0)); // SiemensS7.Write("1.8", Convert.ToInt16(0)); // SiemensS7.Write("1.10", Convert.ToInt16(0)); // SiemensS7.Write("1.14", "00000000000"); // SiemensS7.Write("1.26", Convert.ToInt16(0)); // SiemensS7.Write("1.28", Convert.ToInt16(0)); // SiemensS7.Write("1.30", Convert.ToInt16(0)); // SiemensS7.Write("1.34", "00000000000"); // SiemensS7.Write("1.46", Convert.ToInt16(0)); // SiemensS7.Write("1.48", Convert.ToInt16(0)); // SiemensS7.Write("1.50", Convert.ToInt16(0)); // SiemensS7.Write("1.54", "00000000000"); // SiemensS7.Write("1.66", Convert.ToInt16(0)); // SiemensS7.Write("1.68", Convert.ToInt16(0)); // SiemensS7.Write("1.70", Convert.ToInt16(0)); // SiemensS7.Write("1.74", "00000000000"); // SiemensS7.Write("1.86", Convert.ToInt16(0)); // SiemensS7.Write("1.88", Convert.ToInt16(0)); // SiemensS7.Write("1.90", Convert.ToInt16(0)); // SiemensS7.Write("1.94", "00000000000"); // //写标识位-扫描结果 // SiemensS7.Write("1.0", Convert.ToInt16(0)); // SiemensS7.Write("1.2", Convert.ToInt16(0)); // SiemensS7.Write("1.4", Convert.ToInt16(1)); // context.Application["led_data"] = ledData; //} //else if (moveFlag == 0) //{ // if (context.Request["barcode"] is object) // { // using (IDataAccess conn = DataAccess.Create()) // { // DataTable infoDt = conn.ExecuteDatatable(@" // SELECT lgi.ledgoodsid // ,CASE // WHEN instr(g.goodsspecification, '305') = 1 THEN 1 // WHEN instr(g.goodsspecification, '400') = 1 THEN 2 // WHEN instr(g.goodsspecification, '地排') = 1 THEN 3 // WHEN instr(g.goodsspecification, '横排') = 1 THEN 4 // END AS goodsspecification // ,CASE // WHEN instr(gt.goodstypename, '连体') = 1 THEN 1 // WHEN instr(gt.goodstypename, '智能') = 1 THEN 2 // END AS goodstypename // ,gdd.barcode // FROM tp_pm_groutingdailydetail gdd // LEFT JOIN tp_mst_goods g // ON gdd.goodsid = g.goodsid // LEFT JOIN tp_mst_goodstype gt // ON gt.goodstypeid = g.goodstypeid // LEFT JOIN tp_mst_ledgoodsinfo lgi // ON lgi.goodscode = g.goodscode // WHERE gdd.barcode = @barcode@ // ", // new CDAParameter("barcode", context.Request["barcode"]) // ); // if (infoDt != null && infoDt.Rows.Count > 0 && infoDt.Rows[0] != null) // { // if (ledData.Count < 5) // { // //for (int i = 0; i < ledData.Count; i++) // //{ // // if (ledData[i].barcode == infoDt.Rows[0]["barcode"].ToString()) // // { // // scanFlag = 1; // // } // //} // if (scanFlag == 0) // { // ledData.Add(new LedData() // { // goodscode = Convert.ToInt32(infoDt.Rows[0]["ledgoodsid"]), // goodsspecification = Convert.ToInt32(infoDt.Rows[0]["goodsspecification"]), // goodstype = Convert.ToInt32(infoDt.Rows[0]["goodstypename"]), // barcode = infoDt.Rows[0]["barcode"].ToString() // }); // } // } // else // { // scanFlag = 1; // } // } // } // context.Application["led_data"] = ledData; // if (scanFlag == 0) { // //写业务数据 // for (int i = 0; i < ledData.Count; i++) // { // if (i == 0) // { // SiemensS7.Write("1.6", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.8", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.10", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.14", ledData[i].barcode); // } // //context.Response.Write(SiemensS7.Read("1.14",11)); // if (i == 1) // { // SiemensS7.Write("1.26", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.28", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.30", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.34", ledData[i].barcode); // } // if (i == 2) // { // SiemensS7.Write("1.46", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.48", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.50", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.54", ledData[i].barcode); // } // if (i == 3) // { // SiemensS7.Write("1.66", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.68", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.70", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.74", ledData[i].barcode); // } // if (i == 4) // { // SiemensS7.Write("1.86", Convert.ToInt16(ledData[i].goodscode)); // SiemensS7.Write("1.88", Convert.ToInt16(ledData[i].goodsspecification)); // SiemensS7.Write("1.90", Convert.ToInt16(ledData[i].goodstype)); // SiemensS7.Write("1.94", ledData[i].barcode); // } // } // //写标识位-扫描结果 // SiemensS7.Write("1.0", Convert.ToInt16(1)); // SiemensS7.Write("1.2", Convert.ToInt16(0)); // SiemensS7.Write("1.4", Convert.ToInt16(0)); // } // else if (scanFlag == 1) // { // //写标识位-扫描结果 // SiemensS7.Write("1.0", Convert.ToInt16(2)); // SiemensS7.Write("1.2", Convert.ToInt16(0)); // } // } // else // { // //写标识位-扫描结果 // SiemensS7.Write("1.0", Convert.ToInt16(2)); // } //} //context.Response.Write(new JsonResult(ledData).ToJson()); //SiemensS7.Close(); } public bool IsReusable { get { return false; } } }