数采bug修复

master
LI-CCONG\李聪聪 9 months ago
parent e60bec47dc
commit 652776e79e

@ -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
{
/// <summary>
/// 余宏大屏数据
/// </summary>
[ApiController]
[Route("api/[controller]/[action]")]
public class BigScreenController : BaseApiController
{
private readonly ILogger<ApiActiveController> _logger;
private readonly IBaseRepository<plan_order> _planOrderRep;
private readonly IBaseRepository<salesout_delivery_order> _salesout_delivery_orderRep;
private readonly IBaseRepository<EqmtCollectAddData> _eqmtAddRep;
private readonly IBaseRepository<EqmtBase> _eqmtBaseRep;
private readonly IBaseRepository<EqmtPubData> _eqmtPubRep;
/// <summary>
/// 余宏大屏数据
/// </summary>
/// <param name="planOrderRep"></param>
/// <param name="salesout_delivery_orderRep"></param>
/// <param name="logger"></param>
public BigScreenController(
IBaseRepository<plan_order> planOrderRep,
IBaseRepository<salesout_delivery_order> salesout_delivery_orderRep,
IBaseRepository<EqmtCollectAddData> eqmtAddRep,
IBaseRepository<EqmtBase> eqmtBaseRep,
IBaseRepository<EqmtPubData> eqmtPubRep,
ILogger<ApiActiveController> logger
)
{
_planOrderRep = planOrderRep;
_salesout_delivery_orderRep = salesout_delivery_orderRep;
_eqmtAddRep = eqmtAddRep;
_eqmtBaseRep = eqmtBaseRep;
_eqmtPubRep = eqmtPubRep;
_logger = logger;
}
/// <summary>
/// 工单列表数据
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<List<plan_order_output>>> 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<plan_order, plan_order_output>();
foreach (var item in ret)
{
item.FBILL_NO = " " + item.FBILL_NO;
}
return Success(ret.ToList());
}
/// <summary>
/// 工单详情
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<plan_order_output>> getPlanOrderDetail(long fentryId)
{
var orderInfo = await _planOrderRep.FirstOrDefaultAsync(x=>x.FENTRY_ID == fentryId);
var ret = orderInfo.MapTo<plan_order, plan_order_output>();
return Success(ret);
}
/// <summary>
/// 动态月订单信息数据
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<MonthDataOutput>> getMonthData()
{
var ret = new MonthDataOutput() {
ProductQty = new ProductQtyDto(),
EqmtRate = new LineRateDto(),
ProductOKRate = new List<ProductOkRateDto>(),
};
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<string>() { "结案", "完工" };
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<string>();
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<decimal>();
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);
}
/// <summary>
/// 动态月订单信息数据
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<MonthDataOutput>> getMonthData1()
{
var ret = new MonthDataOutput()
{
ProductQty = new ProductQtyDto(),
EqmtRate = new LineRateDto(),
ProductOKRate = new List<ProductOkRateDto>(),
};
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<string>() { "结案", "完工" };
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<string>();
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<decimal>();
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);
}
/// <summary>
/// 动态月订单信息数据
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<MonthDataOutput>> getMonthData2()
{
var ret = new MonthDataOutput()
{
ProductQty = new ProductQtyDto(),
EqmtRate = new LineRateDto(),
ProductOKRate = new List<ProductOkRateDto>(),
};
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<string>() { "结案", "完工" };
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<string>();
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<decimal>();
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);
}
/// <summary>
/// 设备信息
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<List<EqmtInfoOutput>>> getEqmtDetailList()
{
List<EqmtInfoOutput> ret = new List<EqmtInfoOutput>();
//设备列表
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<EqmtPubData, EqmtInfoOutput>();
}
else
{
}
newOne.eqmt_name = eqmtList.Where(x => x.eqmt_id == item.eqmt_id).FirstOrDefault()?.line_name;
ret.Add(newOne);
}
return Success(ret);
}
}
}

@ -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;"
},
//<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
"SeedDBEnabled": false,

@ -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<string>();
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.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.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
//异常停机数据
#region 异常停机数据
/*
var except01 = new List<string>();
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
}
}

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

Loading…
Cancel
Save