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=10‘000为平底gx=0为圆锥形底部gx=6’180为圆底。 [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 防液滴控制(ADC;0=关闭,1=开启)。在使用具有低粘度和高蒸汽压的移液液体时,应使用ADC,如乙醇。如果压力达到可能发生滴落的临界值,则尽可能多地抽出柱塞,以降低压力并防止液滴的形成。 [Numeric(Minimum = 0, Maximum = 1, Descr = "防液滴控制(ADC;0=关闭,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; } /// /// 通过电容式LLD在液体表面进行搜索的抽吸液体 /// 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; } /// /// 通过压力式LLD在液体表面进行搜索的抽吸液体 /// 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; } /// /// 固定位置吸液 /// 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=10‘000为平底gx=0为圆锥形底部gx=6’180为圆底。 [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 防液滴控制(ADC;0=关闭,1=开启)。在使用具有低粘度和高蒸汽压的移液液体时,应使用ADC,如乙醇。如果压力达到可能发生滴落的临界值,则尽可能多地抽出柱塞,以降低压力并防止液滴的形成。 [Numeric(Minimum = 0, Maximum = 1, Descr = "防液滴控制(ADC;0=关闭,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; } }