Files
HeadgearViewingRange3M/Helpers/PlcConfiguration.cs
2026-04-01 20:29:45 +08:00

99 lines
3.1 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace MembranePoreTester.Communication
{
public class PlcConfiguration
{
public string IpAddress { get; set; }
public int Port { get; set; }
public byte SlaveId { get; set; } = 1; // 从站地址默认1
public ushort PressureRegister { get; set; }
public ushort WetFlowRegister { get; set; }
public ushort DryFlowRegister { get; set; }
public double PressureFactor { get; set; } = 1.0;
public double WetFlowFactor { get; set; } = 1.0;
public double DryFlowFactor { get; set; } = 1.0;
public ushort PressureRegisterStation1 { get; set; }
public ushort PressureRegisterStation2 { get; set; }
public ushort PressureRegisterStation3 { get; set; }
// 设备参数地址示例请根据实际PLC地址修改
public ushort UpperLampData1 { get; set; } = 350;
public ushort UpperLampData2 { get; set; } = 351;
public ushort UpperLampData3 { get; set; } = 352;
public ushort UpperLampData4 { get; set; } = 353;
public ushort UpperLampData5 { get; set; } = 354;
public ushort UpperLampData6 { get; set; } = 355;
public ushort LowerLampData1 { get; set; } = 356;
public ushort LowerLampData2 { get; set; } = 357;
public ushort LowerLampData3 { get; set; } = 358;
public ushort LowerLampData4 { get; set; } = 359;
public ushort LowerLampData5 { get; set; } = 360;
public ushort LowerLampData6 { get; set; } = 361;
public ushort LeftEyeAreaCoeff { get; set; } = 212;
public ushort RightEyeAreaCoeff { get; set; } = 214;
public ushort SaveRateCorrectionCoeff { get; set; } = 428;
public ushort MiddleLamp1 { get; set; } = 362;
public ushort MiddleLamp2 { get; set; } = 363;
public ushort MiddleLamp3 { get; set; } = 364;
public ushort MiddleLamp4 { get; set; } = 365;
public ushort MiddleLamp5 { get; set; } = 366;
public ushort MiddleLamp6 { get; set; } = 367;
public ushort MiddleLamp7 { get; set; } = 368;
public ushort MotorLimit { get; set; } = 330;
public ushort ResetCompensation { get; set; } = 340; // 新增复位补偿
}
public enum ParameterDataType
{
Int16, // 16位整数
Float32 // 32位浮点数
}
public interface IPlcService
{
Task<float> ReadPressureAsync(int stationId); // 按工位读取压力
Task<float> ReadWetFlowAsync();
Task<float> ReadDryFlowAsync();
Task WriteCoilAsync(ushort coilAddress, bool value); // 写线圈
Task WriteRegisterAsync(ushort registerAddress, ushort value); // 写寄存器
Task<bool> ReadCoilAsync(ushort coilAddress); // 新增:读取线圈状态
Task<ushort[]> ReadHoldingRegistersAsync(ushort startAddress, ushort count);
Task WriteSingleRegisterAsync(ushort registerAddress, ushort value);
float UshortToFloat(ushort P1, ushort P2);
Task WriteMultipleRegistersAsync(ushort registerAddress, float value);
}
}