first commit

This commit is contained in:
2026-09-02 16:31:50 +08:00
commit a461727193
911 changed files with 692450 additions and 0 deletions
@@ -0,0 +1,65 @@
using JSMachine.WMS.Infrastructure.Helper;
using JSMachine.WMS.PLC.ModbusImpl.Elevator.Enums;
using JSMachine.WMS.PLC.ModbusImpl.Elevator.Model;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JSMachine.WMS.PLC.ModbusImpl.Elevator.ModbusIO.Read
{
public static class ElevatorStatusRead
{
/// <summary>
/// 读取所有提升机状态
/// </summary>
/// <returns></returns>
public static async Task<List<ElevatorPlcStatus>> ReadAllElevatorStatus()
{
ElevatorPlcStatus elevatorStatusOne = await ReadElevatorStatus(1);
ElevatorPlcStatus elevatorStatusTwo = await ReadElevatorStatus(2);
elevatorStatusOne ??= new() { ElevatorNo = 1 };
elevatorStatusTwo ??= new() { ElevatorNo = 2 };
return [elevatorStatusOne, elevatorStatusTwo];
}
/// <summary>
/// 读取指定提升机状态
/// </summary>
/// <param name="elevatorNo"></param>
/// <returns></returns>
public static async Task<ElevatorPlcStatus> ReadElevatorStatus(int elevatorNo)
{
IModbusEngine modbusEngine = PLCManager.GetPLC(elevatorNo);
if (modbusEngine == null)
return null;
ushort[] data = await modbusEngine.ReadUshortsAsync(1, 0, 20);
if (data == null)
{
return null;
}
ElevatorPlcStatus elevatorStatus = new()
{
ElevatorNo = elevatorNo,
StockInPutdownChanelOne = data[2] == 1,
StockInPutdownChanelTwo = data[0] == 1,
StockInPickupChannelOne = data[7] == 1,
StockInPickupChannelTwo = data[5] == 1,
StockOutPutdownChanelOne = data[6] == 1,
StockOutPutdownChanelTwo = data[4] == 1,
StockOutPickupChanelOne = data[3] == 1,
StockOutPickupChanelTwo = data[1] == 1,
};
return elevatorStatus;
}
}
}
@@ -0,0 +1,40 @@
using JSMachine.WMS.PLC.ModbusImpl.Elevator.Model;
namespace JSMachine.WMS.PLC.ModbusImpl.PaperFeedGroundRack.ModbusIO.Write
{
public static class ElevatorWrite
{
public async static Task<bool> WriteElevator(ElevatorPlcStatus elevatorStatus)
{
IModbusEngine modbusEngine = PLCManager.GetPLC(elevatorStatus.ElevatorNo);
if (modbusEngine == null)
return false;
if (elevatorStatus.StockInPutdownChanelOne)
await modbusEngine.WriteUshortOneAsync(1, 10, elevatorStatus.StockInPutdownChanelOne ? (ushort)1 : (ushort)0);
if (elevatorStatus.StockInPutdownChanelTwo)
await modbusEngine.WriteUshortOneAsync(1, 8, elevatorStatus.StockInPutdownChanelTwo ? (ushort)1 : (ushort)0);
if (elevatorStatus.StockInPickupChannelOne)
await modbusEngine.WriteUshortOneAsync(1, 15, elevatorStatus.StockInPickupChannelOne ? (ushort)1 : (ushort)0);
if (elevatorStatus.StockInPickupChannelTwo)
await modbusEngine.WriteUshortOneAsync(1, 13, elevatorStatus.StockInPickupChannelTwo ? (ushort)1 : (ushort)0);
if (elevatorStatus.StockOutPutdownChanelOne)
await modbusEngine.WriteUshortOneAsync(1, 14, elevatorStatus.StockOutPutdownChanelOne ? (ushort)1 : (ushort)0);
if (elevatorStatus.StockOutPutdownChanelTwo)
await modbusEngine.WriteUshortOneAsync(1, 12, elevatorStatus.StockOutPutdownChanelTwo ? (ushort)1 : (ushort)0);
if (elevatorStatus.StockOutPickupChanelOne)
await modbusEngine.WriteUshortOneAsync(1, 11, elevatorStatus.StockOutPickupChanelOne ? (ushort)1 : (ushort)0);
if (elevatorStatus.StockOutPickupChanelTwo)
await modbusEngine.WriteUshortOneAsync(1, 9, elevatorStatus.StockOutPickupChanelTwo ? (ushort)1 : (ushort)0);
return true;
}
}
}