You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.9 KiB
C#

using Serilog;
using SlnMesnac.Plc;
using SlnMesnac.Repository;
using SlnMesnac.Repository.service;
using SlnMesnac.Serilog;
4 months ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
4 months ago
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2024 WenJY
* CLR4.0.30319.42000
* LAPTOP-E0N2L34V
* SlnMesnac.Business.base
* b00d95c1-a164-43a3-9f34-2a5d2efb3f34
*
* WenJY
* wenjy@mesnac.com
* 2024-04-12 17:36:19
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Business.@base
{
public class BaseBusiness
4 months ago
{
public readonly SerilogHelper _log;
4 months ago
public readonly PlcAbsractFactory _plc;
4 months ago
public readonly Ibase_cabinet_infoServices _ibase_Cabinet_InfoServices;
public readonly Ibase_busbar_infoServices _ibase_Busbar_InfoServices;
public BaseBusiness(SerilogHelper log,PlcAbsractFactory plc, Ibase_cabinet_infoServices base_Cabinet_InfoServices, Ibase_busbar_infoServices base_Busbar_InfoServices)
4 months ago
{
_log = log;
_plc = plc;
_ibase_Cabinet_InfoServices = base_Cabinet_InfoServices;
_ibase_Busbar_InfoServices = base_Busbar_InfoServices;
4 months ago
}
/// <summary>
/// 初始化轨道电机
4 months ago
/// </summary>
/// <param name="model">工作模式:1-自动2-巡检3-手动</param>
4 months ago
/// <exception cref="InvalidOperationException"></exception>
public async void InitEquip(int model)
4 months ago
{
try
4 months ago
{
int plcFlag = 0;
do
{
plcFlag = _plc.readInt32ByAddress("VD1508"); //PLC状态
if (plcFlag != 1)
{
_log.Info($"PLC状态不具备启动条件:VD1508值为{plcFlag}");
Task.Delay(1000).Wait();
continue;
}
if (!_plc.writeInt32ByAddress("VD1536", model)) //工作模式:1-自动2-巡检3-手动
{
throw new ArgumentException($"工作模式:自动模式写入PLC失败VD1536写{model}");
}
_log.Info($"工作模式写入PLC成功VD1536写{model}");
4 months ago
} while (plcFlag != 1);
}
catch (Exception e)
4 months ago
{
throw new InvalidOperationException($"初始化轨道电机异常:{e.Message}");
4 months ago
}
}
4 months ago
/// <summary>
/// 获取电柜信息
/// </summary>
/// <param name="cabinetInfos"></param>
public void GetCabinetInfos(int equipAddr,out List<base_cabinet_info> cabinetInfos)
{
cabinetInfos = _ibase_Cabinet_InfoServices.Query(x=>x.isChecked == 1 && x.isFlag == 1).ToList();
4 months ago
if (equipAddr > 20) //20 号柜子之后倒叙巡检
{
cabinetInfos.OrderByDescending(x => x.cabinetCode);
}
else //右侧原点,倒序巡检
4 months ago
{
cabinetInfos.OrderBy(x => x.cabinetCode);
4 months ago
}
}
/// <summary>
/// 获取指定电柜下的母排信息
/// </summary>
/// <param name="cabinetCode"></param>
/// <param name="busbarInfos"></param>
public void GetBusbarInfos(int cabinetCode,out List<base_busbar_info> busbarInfos)
{
busbarInfos = _ibase_Busbar_InfoServices.Query(x=>x.cabinetCode == cabinetCode && x.isChecked == 1).ToList();
}
4 months ago
}
}