C00225155-02/C00225155/MegaRobo.C00225155/Common/DevicesModels/SuckFluidBaseProp.cs

233 lines
13 KiB
C#
Raw Normal View History

2026-04-13 09:12:49 +00:00
using MegaRobo.Entities;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Common.DevicesModels
{
public enum SuckMode
{
[Description("电容式")]
MA,
[Description("电压式")]
ME,
[Description("固定高度")]
MG,
}
public enum DrainageMode
{
[Description("排空")]
ML,
[Description("一吸多分")]
MH,
}
public abstract class SuckFluidBaseProp
{
// 000000-125400 吸液量
[Numeric(Minimum = 0, Maximum = 125400, Descr = "吸液量ul")]
public uint da { get; set; }
// 0000-9999 过度吸气量[增量]
[Numeric(Minimum = 0, Maximum = 9999, Descr = "过度吸气量")]
public uint dc { get; set; } = 100;
// 00000-20000 液面以下高度
[Numeric(Minimum = 0, Maximum = 20000, Descr = "吸液跟随下降高度")]
public uint zd { get; set; } = 200;
// 00000..20000 容器底部的高度
[Numeric(Minimum = 0, Maximum = 20000, Descr = "容器底部几何形状的高度 平底为 0 ")]
public uint zk { get; set; } = 0; //600
// 00000..10000 容器底部的部分。此参数描述了管底部的几何形状图11。gx=10000为平底gx=0为圆锥形底部gx=6180为圆底。
[Numeric(Minimum = 0, Maximum = 10000, Default =10000, Descr = "容器底部的部分 gx=10000为平底 0为圆锥形底部 6180为圆底")]
public uint gx { get; set; } = 10000; //6180;
//15200 15100..33700 容器底部的位置。
[Numeric(Minimum = 15200, Maximum = 33700, Descr = "容器底部位置")]
public uint zh { get; set; } = 15200;
//33700 15100..33700 LLD搜索位置
[Numeric(Minimum = 15200, Maximum = 33700, Default = 33700, Descr = "LLD搜索位置,吸液位置")]
public uint zc { get; set; } = 26000;
// 0000..9999 渗透深度增加了液体表面以下尖端的渗透深度。
[Numeric(Minimum = 0, Maximum = 9999, Default =8, Descr = "浸入液面高度")]
public uint zi { get; set; } = 8U; //探入液面高度Tip头进入液面
//33700 15100..33700 结束遍历位置。在命令结尾处的横向位置。
[Numeric(Minimum = 15200, Maximum = 33700, Default = 33700, Descr = "结束遍历位置")]
public uint zg { get; set; } = 33700;
//0 000000..125400 排气空气量在吸入过程中首先吸收该空气量。它在分配结束时被吹掉。它受到液体粘度和蒸气压的影响。爆裂的体积有助于完全清空尖端
[Numeric(Minimum = 0, Maximum = 125400, Default = 0, Descr = "排气空气量在吸入过程中首先吸收该空气量")]
public uint df { get; set; } = 500;
//0 0000..9999 运输空气量[增量]空气在吸入或分配结束时被吸入,并在接下来的分配步骤中自动作为额外的量再次分配。它受到尖端几何形状和液体蒸汽压的影响。防止在运输过程中产生液滴的形成。这个参数在移液挥发性物质时很有用。
[Numeric(Minimum = 0, Maximum = 9999, Descr = "转移空气量")]
public uint dg { get; set; } = 200;
//280 0000..9999 离开高度[增加*]高度超过液体表面,在此期间,宙斯驱动缓慢地穿透或离开液体。
[Numeric(Minimum = 0, Maximum = 9999, Default = 280, Descr = "离开液面高度")]
public uint zq { get; set; } = 280;
// 000..999 吸入后的液体中沉淀时间[1/10秒]。该参数设置抽吸或离开液体前在液体中停留的时间。在设置该参数时,考虑了尖端的几何形状和液体粘度。如果沉淀时间太短,液体没有足够的时间来填充尖端,一旦尖端离开液体,不需要的空气就会被吸入。
[Numeric(Minimum = 0, Maximum = 999, Descr = "吸入后的液体中沉淀时间[1/10秒]")]
public uint to { get; set; } = 10;
//0..1 吸气模式(dj0=简单dj1=空杯)
[Numeric(Minimum = 0, Maximum = 1, Descr = "吸气模式(dj0=简单dj1=空杯)")]
public uint dj { get; set; } = 0;
//0..1 防液滴控制ADC0=关闭1=开启。在使用具有低粘度和高蒸汽压的移液液体时应使用ADC如乙醇。如果压力达到可能发生滴落的临界值则尽可能多地抽出柱塞以降低压力并防止液滴的形成。
[Numeric(Minimum = 0, Maximum = 1, Descr = "防液滴控制ADC0=关闭1=开启)")]
public uint bl { get; set; } = 0;
//0..1 堵塞检测
[Numeric(Minimum = 0, Maximum = 1, Descr = "堵塞检测")]
public uint gq { get; set; } = 0;
//1..4 CLLD灵敏度1=非常高高2=3=培养基低4=)。灵敏度可以调整到容器尺寸和要检测的液体体积(小体积->高灵敏度)。
//public uint cs ps {get;set;}
// 000000..125400 混合体积的增量。这是混合探针所需的体积。
[Numeric(Minimum = 0, Maximum = 125400, Descr = "混合体积的增量")]
public uint dm { get; set; }
//00..99 混合循环。混合循环次数。
[Numeric(Minimum = 0, Maximum = 99, Descr = "混合循环次数")]
public uint dn { get; set; }
// 00000..20000 表面进行混合体积的以下步骤。请参见“zd”参数的描述。
[Numeric(Minimum = 0, Maximum = 20000, Descr = "表面进行混合体积的以下步骤")]
public uint zy { get; set; }
//22350 00020..56000 混合流量。这是探头混合时的流量。
[Numeric(Minimum = 20, Maximum = 56000, Default = 22350, Descr = "混合流量")]
public uint _do { get; set; } = 22350; //22350
//22350 00020..56000 该参数对应于吸入或分配期间的柱塞速度。流量是最关键的参数,受尖端几何形状,液体粘度、密度和蒸汽压力:小尖端开放->慢流速,高粘度->慢流速,高密度->慢流速,高蒸汽压->快速流速。
[Numeric(Minimum = 20, Maximum = 56000, Default = 22350, Descr = "吸入速度1该参数对应于吸入或分配期间的柱塞速度")]
public uint dv { get; set; } = 22350;
//1000 00020..15000 交换速度[增量/秒]决定了抽吸或分配后尖端从液体中抽出的速度。该参数是根据液体的粘度和蒸汽压来选择的。使用较慢的速度可以防止粘性液体粘附在尖端的外部。
[Numeric(Minimum = 20, Maximum = 15000, Default = 1000, Descr = "抽吸或分配后尖端从液体中抽出的速度交换速度[增量/秒]")]
public uint zu { get; set; } = 1000; // 2000;
}
/// <summary>
/// 通过电容式LLD在液体表面进行搜索的抽吸液体
/// </summary>
public class SuckFluidByMA : SuckFluidBaseProp
{
public string CmdCode => "MA";
//1..4 CLLD灵敏度1=非常高高2=3=培养基低4=)。灵敏度可以调整到容器尺寸和要检测的液体体积(小体积->高灵敏度)。
[Numeric(Minimum = 1, Maximum = 4, Default = 2, Descr = "CLLD灵敏度")]
public uint cs { get; set; } = 1;
}
/// <summary>
/// 通过压力式LLD在液体表面进行搜索的抽吸液体
/// </summary>
public class SuckFluidByME : SuckFluidBaseProp
{
public string CmdCode => "ME";
//1..4 pLLD灵敏度1=非常高高2=3=一般低4=)。灵敏度可以调整到容器尺寸和要检测的液体体积(小体积->高灵敏度)。
[Numeric(Minimum = 1, Maximum = 4, Default = 2, Descr = "pLLD灵敏度(压力探测灵敏度)")]
public uint ps { get; set; } = 1;
}
/// <summary>
/// 固定位置吸液
/// </summary>
public class SuckFluidByMG
{
public string CmdCode => "MG";
[Numeric(Minimum = 0, Maximum = 125400, Descr = "吸液量")]
public uint da { get; set; }
[Numeric(Minimum = 0, Maximum = 9999, Default =100, Descr = "过度吸气量")]
public uint dc { get; set; } = 100;
[Numeric(Minimum = 15200, Maximum = 33700, Default = 33700, Descr = "吸液时Z轴高度")]
public uint za { get; set; } = 33700;
[Numeric(Minimum = 15200, Maximum = 33700, Default = 33700, Descr = "离开液面时的绝对位置")]
public uint zb { get; set; } = 33700;
[Numeric(Minimum = 0, Maximum = 20000, Default = 200, Descr = "吸液跟随下降高度")]
public uint zd { get; set; } = 200;
[Numeric(Minimum = 0, Maximum = 20000, Default = 0, Descr = "容器尾部几何形状与底部的高度 平底为0")]
public uint zk { get; set; } = 0;
//00000..10000 容器底部的部分。此参数描述了管底部的几何形状图11。gx=10000为平底gx=0为圆锥形底部gx=6180为圆底。
[Numeric(Minimum = 0, Maximum = 10000,Default =10000, Descr = "容器底部的部分 gx=10000为平底 0为圆锥形底部 6180为圆底")]
public uint gx { get; set; } = 10000; //6180;
//15200 15100..33700 容器底部的位置。
[Numeric(Minimum = 15200, Maximum = 33700, Descr = "容器底部位置")]
public uint zh { get; set; } = 15200;
//33700 15100..33700 结束遍历位置。在命令结尾处的横向位置。
[Numeric(Minimum = 15200, Maximum = 33700, Default = 33700, Descr = "结束遍历位置")]
public uint zg { get; set; } = 33700;
//0 000000..125400 排气空气量在吸入过程中首先吸收该空气量。它在分配结束时被吹掉。它受到液体粘度和蒸气压的影响。爆裂的体积有助于完全清空尖端
[Numeric(Minimum = 0, Maximum = 125400, Default = 500, Descr = "排气空气量在吸入过程中首先吸收该空气量")]
public uint df { get; set; } = 500;
//0 0000..9999 运输空气量[增量]空气在吸入或分配结束时被吸入,并在接下来的分配步骤中自动作为额外的量再次分配。它受到尖端几何形状和液体蒸汽压的影响。防止在运输过程中产生液滴的形成。这个参数在移液挥发性物质时很有用。
[Numeric(Minimum = 0, Maximum = 9999,Default =200, Descr = "转移空气量")]
public uint dg { get; set; } = 200;
// 000..999 吸入后的液体中沉淀时间[1/10秒]。该参数设置抽吸或离开液体前在液体中停留的时间。在设置该参数时,考虑了尖端的几何形状和液体粘度。如果沉淀时间太短,液体没有足够的时间来填充尖端,一旦尖端离开液体,不需要的空气就会被吸入。
[Numeric(Minimum = 0, Maximum = 999,Default =10, Descr = "吸入后的液体中沉淀时间[1/10秒]")]
public uint to { get; set; } = 10;
//0..1 吸气模式(dj0=简单dj1=空杯)
[Numeric(Minimum = 0, Maximum = 1, Descr = "吸气模式(dj0=简单dj1=空杯)")]
public uint dj { get; set; } = 0;
//0..1 防液滴控制ADC0=关闭1=开启。在使用具有低粘度和高蒸汽压的移液液体时应使用ADC如乙醇。如果压力达到可能发生滴落的临界值则尽可能多地抽出柱塞以降低压力并防止液滴的形成。
[Numeric(Minimum = 0, Maximum = 1, Descr = "防液滴控制ADC0=关闭1=开启)")]
public uint bl { get; set; } = 0;
//0..1 堵塞检测
[Numeric(Minimum = 0, Maximum = 1, Descr = "堵塞检测")]
public uint gq { get; set; }
// 000000..125400 混合体积的增量。这是混合探针所需的体积。
[Numeric(Minimum = 0, Maximum = 125400, Descr = "混合体积的增量")]
public uint dm { get; set; }
//00..99 混合循环。混合循环次数。
[Numeric(Minimum = 0, Maximum = 99, Descr = "混合循环次数")]
public uint dn { get; set; }
// 00000..20000 表面进行混合体积的以下步骤。请参见“zd”参数的描述。
[Numeric(Minimum = 0, Maximum = 20000, Descr = "表面进行混合体积的以下步骤")]
public uint zy { get; set; }
//22350 00020..56000 混合流量。这是探头混合时的流量。
[Numeric(Minimum = 20, Maximum = 56000, Default = 22350, Descr = "混合流量")]
public uint _do { get; set; } = 22350; //22350
//22350 00020..56000 该参数对应于吸入或分配期间的柱塞速度。流量是最关键的参数,受尖端几何形状,液体粘度、密度和蒸汽压力:小尖端开放->慢流速,高粘度->慢流速,高密度->慢流速,高蒸汽压->快速流速。
[Numeric(Minimum = 20, Maximum = 56000, Default = 22350, Descr = "该参数对应于吸入或分配期间的柱塞速度")]
public uint dv { get; set; } = 22350;
//1000 00020..15000 交换速度[增量/秒]决定了抽吸或分配后尖端从液体中抽出的速度。该参数是根据液体的粘度和蒸汽压来选择的。使用较慢的速度可以防止粘性液体粘附在尖端的外部。
[Numeric(Minimum = 20, Maximum = 15000, Default = 5000, Descr = "抽吸或分配后尖端从液体中抽出的速度交换速度[增量/秒]")]
public uint zu { get; set; } = 5000; // 2000;
}
}