diff --git a/yuhong_plc/zzz.Api/Controllers/BigScreenController.cs b/yuhong_plc/zzz.Api/Controllers/BigScreenController.cs
new file mode 100644
index 0000000..af7ac20
--- /dev/null
+++ b/yuhong_plc/zzz.Api/Controllers/BigScreenController.cs
@@ -0,0 +1,463 @@
+using Microsoft.AspNetCore.Mvc;
+using StackExchange.Profiling;
+using zzz.Common.Helper;
+using zzz.Model;
+using zzz.Model.Entity;
+using zzz.Repository;
+using zzz.Services.ERP.Dtos;
+using zzz.Tasks;
+
+namespace zzz.Api.Controllers
+{
+ ///
+ /// 余宏大屏数据
+ ///
+ [ApiController]
+ [Route("api/[controller]/[action]")]
+ public class BigScreenController : BaseApiController
+ {
+ private readonly ILogger _logger;
+ private readonly IBaseRepository _planOrderRep;
+ private readonly IBaseRepository _salesout_delivery_orderRep;
+ private readonly IBaseRepository _eqmtAddRep;
+ private readonly IBaseRepository _eqmtBaseRep;
+ private readonly IBaseRepository _eqmtPubRep;
+ ///
+ /// 余宏大屏数据
+ ///
+ ///
+ ///
+ ///
+ public BigScreenController(
+ IBaseRepository planOrderRep,
+ IBaseRepository salesout_delivery_orderRep,
+ IBaseRepository eqmtAddRep,
+ IBaseRepository eqmtBaseRep,
+ IBaseRepository eqmtPubRep,
+ ILogger logger
+ )
+ {
+ _planOrderRep = planOrderRep;
+ _salesout_delivery_orderRep = salesout_delivery_orderRep;
+ _eqmtAddRep = eqmtAddRep;
+ _eqmtBaseRep = eqmtBaseRep;
+ _eqmtPubRep = eqmtPubRep;
+ _logger = logger;
+ }
+
+
+ ///
+ /// 工单列表数据
+ ///
+ ///
+ [HttpGet]
+ public async Task>> getPlanOrderList()
+ {
+ //var orderList = await _planOrderRep.QueryAsync(x => x.FSTATUS != "结案" && x.FSTART_DATE.Length > 0);
+
+ var orderList = Task.FromResult(await _planOrderRep.QueryAsync(x => x.FSTATUS != "结案" && x.FSTART_DATE.Length > 0)).Result;
+
+ var ret = orderList.OrderByDescending(x => x.FBILL_NO).Take(50).AsEnumerable().MapToList();
+
+ foreach (var item in ret)
+ {
+ item.FBILL_NO = " " + item.FBILL_NO;
+ }
+ return Success(ret.ToList());
+ }
+
+ ///
+ /// 工单详情
+ ///
+ ///
+ [HttpGet]
+ public async Task> getPlanOrderDetail(long fentryId)
+ {
+ var orderInfo = await _planOrderRep.FirstOrDefaultAsync(x=>x.FENTRY_ID == fentryId);
+
+ var ret = orderInfo.MapTo();
+
+ return Success(ret);
+ }
+
+ ///
+ /// 动态月订单信息数据
+ ///
+ ///
+ [HttpGet]
+ public async Task> getMonthData()
+ {
+ var ret = new MonthDataOutput() {
+ ProductQty = new ProductQtyDto(),
+ EqmtRate = new LineRateDto(),
+ ProductOKRate = new List(),
+ };
+
+ var exceptDate = new DateTime(1900, 01, 01);
+ var monthFirstDat = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
+
+ //设备列表
+ //var eqmtList = await _eqmtBaseRep.QueryAsync();
+
+ //生产工单
+ var MoList = await _planOrderRep.QueryAsync(
+ x => x.FPLAN_FINISH_DATE.StartsWith(DateTime.Now.ToString("yyyy-MM"))
+ ); //本月数据
+
+ //生产计划达成率
+ var moTotalCnt = MoList.Where(x => x.FPLAN_FINISH_DATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date).Count();
+ if (moTotalCnt > 0)
+ {
+ var completeList = new List() { "结案", "完工" };
+ var completeCnt = MoList.Where(x => x.FPLAN_FINISH_DATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date && completeList.Contains(x.FSTATUS)).Count();
+ ret.MoCompleteRate = Math.Round(completeCnt.ObjToDecimal() / moTotalCnt.ObjToDecimal(), 4) * 100;
+ }
+
+ //订单交付率
+ var SoList = await _salesout_delivery_orderRep.QueryAsync(
+ x => x.FDATE.StartsWith(DateTime.Now.ToString("yyyy-MM"))
+ ); //本月数据
+ var soCount = SoList.Where(x => x.FDATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date).Count();
+ if (soCount>0)
+ {
+ var soCompleteCnt = SoList.Where(x => x.FDATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date && x.FREAL_QTY > 0).Count();
+ ret.PoCompleteRate = Math.Round(soCompleteCnt.ObjToDecimal() / soCount.ObjToDecimal(), 4) * 100;
+ }
+
+ //月产量 _eqmtAddRep
+ var productType = (await _eqmtBaseRep.QueryAsync()).Select(x => x.product).Distinct();
+ ret.ProductQty.xAxis.type = "category";
+ ret.ProductQty.xAxis.data = new List();
+ for (int i = 6; i >= 0 ; i--)
+ {
+ ret.ProductQty.xAxis.data.Add(DateTime.Now.Date.AddDays(-i).ToString("MM-dd"));
+ }
+ var addList = await _eqmtAddRep.QueryAsync(x => x.add_datetime >= DateTime.Now.Date.AddDays(-6).Date);
+ //var addList = await _eqmtAddRep.QueryAsync();
+
+
+ foreach (var t in productType)
+ {
+ seriesDto s = new seriesDto();
+ s.name = t;
+ s.type = "bar";
+ s.data = new List();
+
+ for (int i = 6; i >= 0; i--)
+ {
+ var day = DateTime.Now.Date.AddDays(-i).Date;
+ var sumQty = addList.Where(x => x.add_datetime.Value.Date == day && x.product == t).Sum(x => x.add_qty_ok);
+ s.data.Add(sumQty);
+ }
+
+ ret.ProductQty.series.Add(s);
+ }
+ /*
+ //设备利用率
+ ret.EqmtRate.xAxis.data = (await _eqmtBaseRep.QueryAsync()).Select(x => x.line_name).ToList();
+ var pubList = await _eqmtPubRep.QueryAsync(x => x.gmt_create >= monthFirstDat);
+
+ seriesDto01 newSeries = new seriesDto01();
+
+ foreach (var item in eqmtList)
+ {
+ var totalTime = pubList.Where(x => x.eqmt_id == item.eqmt_id).Sum(x => x.intraday_eqmt_run_time);
+ var workTime = pubList.Where(x => x.eqmt_id == item.eqmt_id).Sum(x => x.intraday_eqmt_work_time);
+ if (totalTime > 0)
+ {
+ newSeries.data.Add(Math.Round((decimal)workTime / totalTime, 4)*100);
+ }
+ else
+ {
+ newSeries.data.Add(0);
+ }
+ }
+ ret.EqmtRate.series.Add(newSeries);
+
+ //合格率
+ var addListMonth = await _eqmtAddRep.QueryAsync(x => x.add_datetime >= monthFirstDat);
+
+ foreach (var item in productType)
+ {
+ ProductOkRateDto newOK = new ProductOkRateDto();
+
+ newOK.ProductName = item;
+ var okQty = addListMonth.Where(x => x.product == item).Sum(x => x.add_qty_ok);
+ var ngQty = addListMonth.Where(x => x.product == item).Sum(x => x.add_qty_ng);
+ if (okQty > 0 || ngQty>0)
+ {
+ newOK.OKRate = Math.Round((decimal)okQty / (okQty + ngQty), 4) * 100;
+ }
+ ret.ProductOKRate.Add(newOK);
+ }
+ */
+ return Success(ret);
+ }
+
+ ///
+ /// 动态月订单信息数据
+ ///
+ ///
+ [HttpGet]
+ public async Task> getMonthData1()
+ {
+ var ret = new MonthDataOutput()
+ {
+ ProductQty = new ProductQtyDto(),
+ EqmtRate = new LineRateDto(),
+ ProductOKRate = new List(),
+ };
+
+ var exceptDate = new DateTime(1900, 01, 01);
+ var monthFirstDat = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
+
+ //设备列表
+ var eqmtList = await _eqmtBaseRep.QueryAsync();
+ /*
+ //生产工单
+ var MoList = await _planOrderRep.QueryAsync(
+ x => x.FPLAN_FINISH_DATE.StartsWith(DateTime.Now.ToString("yyyy-MM"))
+ ); //本月数据
+
+ //生产计划达成率
+ var moTotalCnt = MoList.Where(x => x.FPLAN_FINISH_DATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date).Count();
+ if (moTotalCnt > 0)
+ {
+ var completeList = new List() { "结案", "完工" };
+ var completeCnt = MoList.Where(x => x.FPLAN_FINISH_DATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date && completeList.Contains(x.FSTATUS)).Count();
+ ret.MoCompleteRate = Math.Round(completeCnt.ObjToDecimal() / moTotalCnt.ObjToDecimal(), 4) * 100;
+ }
+
+ //订单交付率
+ var SoList = await _salesout_delivery_orderRep.QueryAsync(
+ x => x.FDATE.StartsWith(DateTime.Now.ToString("yyyy-MM"))
+ ); //本月数据
+ var soCount = SoList.Where(x => x.FDATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date).Count();
+ if (soCount > 0)
+ {
+ var soCompleteCnt = SoList.Where(x => x.FDATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date && x.FREAL_QTY > 0).Count();
+ ret.PoCompleteRate = Math.Round(soCompleteCnt.ObjToDecimal() / soCount.ObjToDecimal(), 4) * 100;
+ }
+
+ //月产量 _eqmtAddRep
+ var productType = (await _eqmtBaseRep.QueryAsync()).Select(x => x.product).Distinct();
+ ret.ProductQty.xAxis.type = "category";
+ ret.ProductQty.xAxis.data = new List();
+ for (int i = 6; i >= 0; i--)
+ {
+ ret.ProductQty.xAxis.data.Add(DateTime.Now.Date.AddDays(-i).ToString("MM-dd"));
+ }
+ var addList = await _eqmtAddRep.QueryAsync(x => x.add_datetime >= DateTime.Now.Date.AddDays(-6).Date);
+ //var addList = await _eqmtAddRep.QueryAsync();
+
+
+ foreach (var t in productType)
+ {
+ seriesDto s = new seriesDto();
+ s.name = t;
+ s.type = "bar";
+ s.data = new List();
+
+ for (int i = 6; i >= 0; i--)
+ {
+ var day = DateTime.Now.Date.AddDays(-i).Date;
+ var sumQty = addList.Where(x => x.add_datetime.Value.Date == day && x.product == t).Sum(x => x.add_qty_ok);
+ s.data.Add(sumQty);
+ }
+
+ ret.ProductQty.series.Add(s);
+ }
+ */
+ //设备利用率
+ ret.EqmtRate.xAxis.data = (await _eqmtBaseRep.QueryAsync()).Select(x => x.line_name).ToList();
+ var pubList = await _eqmtPubRep.QueryAsync(x => x.gmt_create >= monthFirstDat);
+
+ seriesDto01 newSeries = new seriesDto01();
+
+ foreach (var item in eqmtList)
+ {
+ var totalTime = pubList.Where(x => x.eqmt_id == item.eqmt_id).Sum(x => x.intraday_eqmt_run_time);
+ var workTime = pubList.Where(x => x.eqmt_id == item.eqmt_id).Sum(x => x.intraday_eqmt_work_time);
+ if (totalTime > 0)
+ {
+ newSeries.data.Add(Math.Round((decimal)workTime / totalTime, 4) * 100);
+ }
+ else
+ {
+ newSeries.data.Add(0);
+ }
+ }
+ ret.EqmtRate.series.Add(newSeries);
+ /*
+ //合格率
+ var addListMonth = await _eqmtAddRep.QueryAsync(x => x.add_datetime >= monthFirstDat);
+
+ foreach (var item in productType)
+ {
+ ProductOkRateDto newOK = new ProductOkRateDto();
+
+ newOK.ProductName = item;
+ var okQty = addListMonth.Where(x => x.product == item).Sum(x => x.add_qty_ok);
+ var ngQty = addListMonth.Where(x => x.product == item).Sum(x => x.add_qty_ng);
+ if (okQty > 0 || ngQty > 0)
+ {
+ newOK.OKRate = Math.Round((decimal)okQty / (okQty + ngQty), 4) * 100;
+ }
+ ret.ProductOKRate.Add(newOK);
+ }
+ */
+ return Success(ret);
+ }
+
+ ///
+ /// 动态月订单信息数据
+ ///
+ ///
+ [HttpGet]
+ public async Task> getMonthData2()
+ {
+ var ret = new MonthDataOutput()
+ {
+ ProductQty = new ProductQtyDto(),
+ EqmtRate = new LineRateDto(),
+ ProductOKRate = new List(),
+ };
+
+ var exceptDate = new DateTime(1900, 01, 01);
+ var monthFirstDat = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
+ /*
+ //设备列表
+ var eqmtList = await _eqmtBaseRep.QueryAsync();
+
+ //生产工单
+ var MoList = await _planOrderRep.QueryAsync(
+ x => x.FPLAN_FINISH_DATE.StartsWith(DateTime.Now.ToString("yyyy-MM"))
+ ); //本月数据
+
+ //生产计划达成率
+ var moTotalCnt = MoList.Where(x => x.FPLAN_FINISH_DATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date).Count();
+ if (moTotalCnt > 0)
+ {
+ var completeList = new List() { "结案", "完工" };
+ var completeCnt = MoList.Where(x => x.FPLAN_FINISH_DATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date && completeList.Contains(x.FSTATUS)).Count();
+ ret.MoCompleteRate = Math.Round(completeCnt.ObjToDecimal() / moTotalCnt.ObjToDecimal(), 4) * 100;
+ }
+
+ //订单交付率
+ var SoList = await _salesout_delivery_orderRep.QueryAsync(
+ x => x.FDATE.StartsWith(DateTime.Now.ToString("yyyy-MM"))
+ ); //本月数据
+ var soCount = SoList.Where(x => x.FDATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date).Count();
+ if (soCount > 0)
+ {
+ var soCompleteCnt = SoList.Where(x => x.FDATE.ObjToDate(exceptDate).Date <= DateTime.Now.Date && x.FREAL_QTY > 0).Count();
+ ret.PoCompleteRate = Math.Round(soCompleteCnt.ObjToDecimal() / soCount.ObjToDecimal(), 4) * 100;
+ }
+
+ //月产量 _eqmtAddRep
+ var productType = (await _eqmtBaseRep.QueryAsync()).Select(x => x.product).Distinct();
+ ret.ProductQty.xAxis.type = "category";
+ ret.ProductQty.xAxis.data = new List();
+ for (int i = 6; i >= 0; i--)
+ {
+ ret.ProductQty.xAxis.data.Add(DateTime.Now.Date.AddDays(-i).ToString("MM-dd"));
+ }
+ var addList = await _eqmtAddRep.QueryAsync(x => x.add_datetime >= DateTime.Now.Date.AddDays(-6).Date);
+ //var addList = await _eqmtAddRep.QueryAsync();
+
+
+ foreach (var t in productType)
+ {
+ seriesDto s = new seriesDto();
+ s.name = t;
+ s.type = "bar";
+ s.data = new List();
+
+ for (int i = 6; i >= 0; i--)
+ {
+ var day = DateTime.Now.Date.AddDays(-i).Date;
+ var sumQty = addList.Where(x => x.add_datetime.Value.Date == day && x.product == t).Sum(x => x.add_qty_ok);
+ s.data.Add(sumQty);
+ }
+
+ ret.ProductQty.series.Add(s);
+ }
+
+ //设备利用率
+ ret.EqmtRate.xAxis.data = (await _eqmtBaseRep.QueryAsync()).Select(x => x.line_name).ToList();
+ var pubList = await _eqmtPubRep.QueryAsync(x => x.gmt_create >= monthFirstDat);
+
+ seriesDto01 newSeries = new seriesDto01();
+
+ foreach (var item in eqmtList)
+ {
+ var totalTime = pubList.Where(x => x.eqmt_id == item.eqmt_id).Sum(x => x.intraday_eqmt_run_time);
+ var workTime = pubList.Where(x => x.eqmt_id == item.eqmt_id).Sum(x => x.intraday_eqmt_work_time);
+ if (totalTime > 0)
+ {
+ newSeries.data.Add(Math.Round((decimal)workTime / totalTime, 4) * 100);
+ }
+ else
+ {
+ newSeries.data.Add(0);
+ }
+ }
+ ret.EqmtRate.series.Add(newSeries);
+ */
+
+ var productType = (await _eqmtBaseRep.QueryAsync()).Select(x => x.product).Distinct();
+ //合格率
+ var addListMonth = await _eqmtAddRep.QueryAsync(x => x.add_datetime >= monthFirstDat);
+
+ foreach (var item in productType)
+ {
+ ProductOkRateDto newOK = new ProductOkRateDto();
+
+ newOK.ProductName = item;
+ var okQty = addListMonth.Where(x => x.product == item).Sum(x => x.add_qty_ok);
+ var ngQty = addListMonth.Where(x => x.product == item).Sum(x => x.add_qty_ng);
+ if (okQty > 0 || ngQty > 0)
+ {
+ newOK.OKRate = Math.Round((decimal)okQty / (okQty + ngQty), 4) * 100;
+ }
+ ret.ProductOKRate.Add(newOK);
+ }
+
+ return Success(ret);
+ }
+
+ ///
+ /// 设备信息
+ ///
+ ///
+ [HttpGet]
+ public async Task>> getEqmtDetailList()
+ {
+ List ret = new List();
+ //设备列表
+ var eqmtList = await _eqmtBaseRep.QueryAsync();
+
+ var pubList = await _eqmtPubRep.QueryAsync(x => x.gmt_create >= DateTime.Now.Date);
+
+ foreach (var item in eqmtList)
+ {
+ EqmtInfoOutput newOne = new EqmtInfoOutput();
+
+ var lastInfo = pubList.Where(x => x.eqmt_id == item.eqmt_id).OrderByDescending(x => x.gmt_create).FirstOrDefault();
+ if (lastInfo != null)
+ {
+ newOne = lastInfo.MapTo();
+ }
+ else
+ {
+
+ }
+ newOne.eqmt_name = eqmtList.Where(x => x.eqmt_id == item.eqmt_id).FirstOrDefault()?.line_name;
+ ret.Add(newOne);
+ }
+
+
+ return Success(ret);
+ }
+ }
+}
diff --git a/yuhong_plc/zzz.Api/appsettings.json b/yuhong_plc/zzz.Api/appsettings.json
index 414ab6a..4e422cb 100644
--- a/yuhong_plc/zzz.Api/appsettings.json
+++ b/yuhong_plc/zzz.Api/appsettings.json
@@ -6,8 +6,8 @@
"Sqlite": "Data Source=./Magic.db",
"SqlServer": "Server=BLACK; Database=zzzTest01; User=sa; Password=123456zls!;MultipleActiveResultSets=True;",
//"MySql": "Data Source=150.158.169.212;Database=cjyx;User ID=base;Password=123456;pooling=true;port=3306;sslmode=none;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;",
- "MySql": "Data Source=222.71.165.187;Database=cjyx;User ID=root;Password=qawsed,.123;pooling=true;port=3309;sslmode=none;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;"
- //"MySql": "Data Source=101.34.35.69;Database=cjyx_wm;User ID=base;Password=123456;pooling=true;port=3306;sslmode=none;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;"
+ //"MySql": "Data Source=222.71.165.187;Database=cjyx;User ID=root;Password=qawsed,.123;pooling=true;port=3309;sslmode=none;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;"
+ "MySql": "Data Source=118.195.155.9;Database=yh-sc;User ID=yuhong;Password=bPFH6ZCe6srNATJz;pooling=true;port=3306;sslmode=none;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;"
},
//�Զ��������ݿ�
"SeedDBEnabled": false,
diff --git a/yuhong_plc/zzz.Services/ReadPLC/ReadPLCDataService.cs b/yuhong_plc/zzz.Services/ReadPLC/ReadPLCDataService.cs
index 0c592f2..3ecdc12 100644
--- a/yuhong_plc/zzz.Services/ReadPLC/ReadPLCDataService.cs
+++ b/yuhong_plc/zzz.Services/ReadPLC/ReadPLCDataService.cs
@@ -1865,11 +1865,8 @@ namespace zzz.Services.ReadPLC
{
eqmt7.d2000 = _melsecMcNet.ReadInt16("D2000").Content; // 产品型号
- // eqmt7.w10 = _melsecMcNet.ReadInt16("W10").Content; // 生产速度
eqmt7.w10 = _melsecMcNet.ReadInt32("W10").Content/10; // 生产速度
- // var d1 = _melsecMcNet.ReadInt32("D2990").Content; // 生产速度
-
eqmt7.d9500 = _melsecMcNet.ReadInt32("D9500").Content; // 总生产产量
eqmt7.d9502 = _melsecMcNet.ReadInt32("D9502").Content; // 总成品量
eqmt7.d9554 = _melsecMcNet.ReadInt32("D9554").Content; // 总能耗
@@ -1878,98 +1875,15 @@ namespace zzz.Services.ReadPLC
eqmt7.d9508 = _melsecMcNet.ReadInt32("D9508").Content; // 班废品
eqmt7.d9510 = _melsecMcNet.ReadInt32("D9510").Content; // 班能耗
eqmt7.d9522 = _melsecMcNet.ReadInt32("D9522").Content; // 视觉废品
+ eqmt7.d9524 = _melsecMcNet.ReadInt32("D9524").Content/10; //班合格率
+ Console.WriteLine(_melsecMcNet.ReadFloat("D9524").Content);
- eqmt7.d9524 = _melsecMcNet.ReadFloat("D9524").Content.ObjToDecimal(0); //班合格率
eqmt7.d9526 = _melsecMcNet.ReadFloat("D9526").Content.ObjToDecimal(0); //班开机率
eqmt7.d9528 = _melsecMcNet.ReadFloat("D9528").Content.ObjToDecimal(0); //班有效率
eqmt7.d9530 = _melsecMcNet.ReadInt32("D9530").Content; //班OEE
- //异常停机数据
- #region 异常停机数据
- /*
- var except01 = new List();
-
- var M160_M190 = _melsecMcNet.ReadBool("M160", 31);
- for (int i = 0; i < 31; i++)
- {
- if (M160_M190.Content[i])
- {
- except01.Add($"M{160 + i}");
- }
- }
-
- var M70 = _melsecMcNet.ReadBool("M70");
- if (M70.Content) except01.Add($"M70");
-
- var M700_M745 = _melsecMcNet.ReadBool("M700", 46);
- for (int i = 0; i < 46; i++)
- {
- if (M700_M745.Content[i])
- {
- except01.Add($"M{700 + i}");
- }
- }
-
- var M108_M121 = _melsecMcNet.ReadBool("M108", 14);
- for (int i = 0; i < 14; i++)
- {
- if (M108_M121.Content[i])
- {
- except01.Add($"M{108 + i}");
- }
- }
-
- var M50 = _melsecMcNet.ReadBool("M50");
- if (M50.Content) except01.Add($"M50");
-
- var M380_M394 = _melsecMcNet.ReadBool("M380", 15);
- for (int i = 0; i < 15; i++)
- {
- if (M380_M394.Content[i])
- {
- except01.Add($"M{380 + i}");
- }
- }
-
- var B00010_B0002F = _melsecMcNet.ReadBool("B00010", 32);
- for (int i = 0; i < 32; i++)
- {
- if (B00010_B0002F.Content[i])
- {
- except01.Add($"B000{(16 + i).ToString("x2").ToUpper()}");
- }
- }
-
- var B00510_B0052F = _melsecMcNet.ReadBool("B00510", 32);
- for (int i = 0; i < 32; i++)
- {
- if (B00510_B0052F.Content[i])
- {
- except01.Add($"B005{(16 + i).ToString("x2").ToUpper()}");
- }
- }
-
- var B00A10_B00A2F = _melsecMcNet.ReadBool("B00A10", 32);
- for (int i = 0; i < 32; i++)
- {
- if (B00A10_B00A2F.Content[i])
- {
- except01.Add($"B00A{(16 + i).ToString("x2").ToUpper()}");
- }
- }
-
- var B01810_B01819 = _melsecMcNet.ReadBool("B01810", 10);
- for (int i = 0; i < 10; i++)
- {
- if (B01810_B01819.Content[i])
- {
- except01.Add($"B018{(16 + i).ToString("x2").ToUpper()}");
- }
- }*/
- #endregion
-
//异常不停机数据
#region 异常不停机数据
/*
@@ -2138,107 +2052,37 @@ namespace zzz.Services.ReadPLC
if (connSuccess)
{
-
- eqmt2.d2000 = _melsecMcNet.ReadInt16("D2000").Content; // 产品型号
- eqmt2.w10 = _melsecMcNet.ReadInt16("W10").Content/10; // 生产速度
- eqmt2.d9500 = _melsecMcNet.ReadInt32("D9500").Content; // 总生产产量
- eqmt2.d9502 = _melsecMcNet.ReadInt32("D9502").Content; // 总成品量
- eqmt2.d9554 = _melsecMcNet.ReadInt32("D9554").Content; // 总能耗
- eqmt2.d9504 = _melsecMcNet.ReadInt32("D9504").Content; // 班产量
- eqmt2.d9506 = _melsecMcNet.ReadInt32("D9506").Content; // 班成品
- eqmt2.d9508 = _melsecMcNet.ReadInt32("D9508").Content; // 班废品
- eqmt2.d9510 = _melsecMcNet.ReadInt32("D9510").Content; // 班能耗
- eqmt2.d9522 = _melsecMcNet.ReadInt32("D9522").Content; // 视觉废品
-
- eqmt2.d9524 = _melsecMcNet.ReadFloat("D9524").Content.ObjToDecimal(0); //班合格率
- eqmt2.d9526 = _melsecMcNet.ReadFloat("D9526").Content.ObjToDecimal(0); //班开机率
- eqmt2.d9528 = _melsecMcNet.ReadFloat("D9528").Content.ObjToDecimal(0); //班有效率
+ //eqmt2.d2000 = _melsecMcNet.ReadInt16("D2000").Content; // 产品型号
+ //eqmt2.w10 = _melsecMcNet.ReadInt16("W10").Content/10; // 生产速度
+ //eqmt2.d9500 = _melsecMcNet.ReadInt32("D9500").Content; // 总生产产量
+ //eqmt2.d9502 = _melsecMcNet.ReadInt32("D9502").Content; // 总成品量
+ //eqmt2.d9554 = _melsecMcNet.ReadInt32("D9554").Content; // 总能耗
+ //eqmt2.d9504 = _melsecMcNet.ReadInt32("D9504").Content; // 班产量
+ //eqmt2.d9506 = _melsecMcNet.ReadInt32("D9506").Content; // 班成品
+ //eqmt2.d9508 = _melsecMcNet.ReadInt32("D9508").Content; // 班废品
+ //eqmt2.d9510 = _melsecMcNet.ReadInt32("D9510").Content; // 班能耗
+ //eqmt2.d9522 = _melsecMcNet.ReadInt32("D9522").Content; // 视觉废品
+
+ //eqmt2.d9524 = _melsecMcNet.ReadFloat("D9524").Content.ObjToDecimal(0); //班合格率
+ //eqmt2.d9526 = _melsecMcNet.ReadFloat("D9526").Content.ObjToDecimal(0); //班开机率
+ //eqmt2.d9528 = _melsecMcNet.ReadFloat("D9528").Content.ObjToDecimal(0); //班有效率
+ //eqmt2.d9530 = _melsecMcNet.ReadInt32("D9530").Content; //班OEE
+
+ eqmt2.d2000 = _melsecMcNet.ReadInt16("D7558").Content; // 产品型号
+ eqmt2.w10 = _melsecMcNet.ReadInt16("W10").Content / 10; // 生产速度
+
+ eqmt2.d9500 = _melsecMcNet.ReadInt32("D7500").Content; // 总生产产量
+ eqmt2.d9502 = _melsecMcNet.ReadInt32("D7502").Content; // 总成品量
+ eqmt2.d9504 = _melsecMcNet.ReadInt32("D7550").Content; // 班产量
+ eqmt2.d9554 = _melsecMcNet.ReadInt32("D7954").Content; // 总能耗
+ eqmt2.d9506 = _melsecMcNet.ReadInt32("D7552").Content; // 班成品
+ eqmt2.d9508 = _melsecMcNet.ReadInt32("D7554").Content; // 班废品
+ eqmt2.d9524 = Math.Round((decimal) eqmt2.d9506/eqmt2.d9504, 2) * 100; //班合格率
+
+ eqmt2.d9526 = _melsecMcNet.ReadFloat("D9526").Content.ObjToDecimal(0); //班开机率
+ eqmt2.d9528 = _melsecMcNet.ReadFloat("D9528").Content.ObjToDecimal(0); //班有效率
eqmt2.d9530 = _melsecMcNet.ReadInt32("D9530").Content; //班OEE
-
-
- //异常停机数据
- #region 异常停机数据
- /*
- var except01 = new List();
-
- var M160_M190 = _melsecMcNet.ReadBool("M160", 31);
- for (int i = 0; i < 31; i++)
- {
- if (M160_M190.Content[i])
- {
- except01.Add($"M{160 + i}");
- }
- }
-
- var M70 = _melsecMcNet.ReadBool("M70");
- if (M70.Content) except01.Add($"M70");
-
- var M700_M745 = _melsecMcNet.ReadBool("M700", 46);
- for (int i = 0; i < 46; i++)
- {
- if (M700_M745.Content[i])
- {
- except01.Add($"M{700 + i}");
- }
- }
-
- var M108_M121 = _melsecMcNet.ReadBool("M108", 14);
- for (int i = 0; i < 14; i++)
- {
- if (M108_M121.Content[i])
- {
- except01.Add($"M{108 + i}");
- }
- }
-
- var M50 = _melsecMcNet.ReadBool("M50");
- if (M50.Content) except01.Add($"M50");
-
- var M380_M394 = _melsecMcNet.ReadBool("M380", 15);
- for (int i = 0; i < 15; i++)
- {
- if (M380_M394.Content[i])
- {
- except01.Add($"M{380 + i}");
- }
- }
-
- var B00010_B0002F = _melsecMcNet.ReadBool("B00010", 32);
- for (int i = 0; i < 32; i++)
- {
- if (B00010_B0002F.Content[i])
- {
- except01.Add($"B000{(16 + i).ToString("x2").ToUpper()}");
- }
- }
-
- var B00510_B0052F = _melsecMcNet.ReadBool("B00510", 32);
- for (int i = 0; i < 32; i++)
- {
- if (B00510_B0052F.Content[i])
- {
- except01.Add($"B005{(16 + i).ToString("x2").ToUpper()}");
- }
- }
-
- var B00A10_B00A2F = _melsecMcNet.ReadBool("B00A10", 32);
- for (int i = 0; i < 32; i++)
- {
- if (B00A10_B00A2F.Content[i])
- {
- except01.Add($"B00A{(16 + i).ToString("x2").ToUpper()}");
- }
- }
-
- var B01810_B01819 = _melsecMcNet.ReadBool("B01810", 10);
- for (int i = 0; i < 10; i++)
- {
- if (B01810_B01819.Content[i])
- {
- except01.Add($"B018{(16 + i).ToString("x2").ToUpper()}");
- }
- }*/
#endregion
//异常不停机数据
@@ -2657,7 +2501,5 @@ namespace zzz.Services.ReadPLC
}
}
- #endregion
-
}
}
diff --git a/yuhong_plc/zzz.model/Entity/Equipment/Eqmt7.cs b/yuhong_plc/zzz.model/Entity/Equipment/Eqmt7.cs
index 1ea6413..134f128 100644
--- a/yuhong_plc/zzz.model/Entity/Equipment/Eqmt7.cs
+++ b/yuhong_plc/zzz.model/Entity/Equipment/Eqmt7.cs
@@ -55,7 +55,8 @@ namespace zzz.Model.Entity
public int d9510 { get; set; }
public int d9522 { get; set; }
- public decimal d9524 { get; set; }
+ public int d9524 { get; set; }
+
public decimal d9526 { get; set; }
public decimal d9528 { get; set; }
public decimal d9530 { get; set; }